Fix: Debug info not showing correct data
The AI will investigate why the debug information is not reflecting the expected data from the database, potentially due to incorrect database connection or data retrieval issues.
This commit is contained in:
parent
ea7398237e
commit
e7b414724b
@ -39,20 +39,31 @@ const CreateGroupForm = ({ userEmail, onSuccess }: CreateGroupFormProps) => {
|
|||||||
|
|
||||||
setCheckingInstance(true);
|
setCheckingInstance(true);
|
||||||
try {
|
try {
|
||||||
console.log('🔍 === VERIFICAÇÃO DE INSTÂNCIA ===');
|
console.log('🔍 === VERIFICAÇÃO DE INSTÂNCIA INICIADA ===');
|
||||||
console.log('🔍 Verificando instância para o usuário:', userEmail);
|
console.log('🔍 Email fornecido:', userEmail);
|
||||||
|
console.log('🔍 Tipo do email:', typeof userEmail);
|
||||||
|
console.log('🔍 Email length:', userEmail.length);
|
||||||
|
|
||||||
|
// TESTE: Verificar se o email está sendo usado corretamente
|
||||||
|
const emailTrimmed = userEmail.trim().toLowerCase();
|
||||||
|
console.log('📧 Email após trim/lower:', emailTrimmed);
|
||||||
|
|
||||||
const instanceData = await getUserWhatsAppInstance(userEmail);
|
const instanceData = await getUserWhatsAppInstance(userEmail);
|
||||||
console.log('📊 === DADOS DA INSTÂNCIA RETORNADOS ===');
|
console.log('📊 === DADOS RETORNADOS DA FUNÇÃO ===');
|
||||||
console.log('📊 Dados completos:', JSON.stringify(instanceData, null, 2));
|
console.log('📊 instanceData completo:', JSON.stringify(instanceData, null, 2));
|
||||||
|
|
||||||
if (instanceData) {
|
if (instanceData) {
|
||||||
console.log('🔍 === VERIFICAÇÃO DETALHADA ===');
|
console.log('🔍 === ANÁLISE DETALHADA DOS DADOS ===');
|
||||||
console.log('✅ instancia_zap existe?', !!instanceData.instancia_zap);
|
console.log('✅ instanceData existe:', !!instanceData);
|
||||||
console.log('📝 instancia_zap valor:', instanceData.instancia_zap);
|
console.log('📝 instancia_zap valor:', instanceData.instancia_zap);
|
||||||
console.log('✅ instancia_zap não é vazio?', instanceData.instancia_zap?.trim() !== '');
|
console.log('📝 instancia_zap tipo:', typeof instanceData.instancia_zap);
|
||||||
|
console.log('✅ instancia_zap não é null:', instanceData.instancia_zap !== null);
|
||||||
|
console.log('✅ instancia_zap não é vazio após trim:', instanceData.instancia_zap?.trim() !== '');
|
||||||
console.log('📝 status_instancia valor:', instanceData.status_instancia);
|
console.log('📝 status_instancia valor:', instanceData.status_instancia);
|
||||||
console.log('✅ status_instancia é "conectado"?', instanceData.status_instancia === 'conectado');
|
console.log('📝 status_instancia tipo:', typeof instanceData.status_instancia);
|
||||||
|
console.log('✅ status_instancia é "conectado":', instanceData.status_instancia === 'conectado');
|
||||||
|
} else {
|
||||||
|
console.log('❌ instanceData é null ou undefined');
|
||||||
}
|
}
|
||||||
|
|
||||||
// LÓGICA CORRETA: Verificar se tem instância E se está conectada
|
// LÓGICA CORRETA: Verificar se tem instância E se está conectada
|
||||||
@ -60,26 +71,27 @@ const CreateGroupForm = ({ userEmail, onSuccess }: CreateGroupFormProps) => {
|
|||||||
instanceData &&
|
instanceData &&
|
||||||
instanceData.instancia_zap &&
|
instanceData.instancia_zap &&
|
||||||
instanceData.instancia_zap.trim() !== '' &&
|
instanceData.instancia_zap.trim() !== '' &&
|
||||||
instanceData.status_instancia === 'conectado' // DEVE ESTAR CONECTADO
|
instanceData.status_instancia === 'conectado'
|
||||||
);
|
);
|
||||||
|
|
||||||
console.log('🎯 === RESULTADO DA VALIDAÇÃO ===');
|
console.log('🎯 === RESULTADO FINAL DA VALIDAÇÃO ===');
|
||||||
console.log('🎯 hasValidInstance:', hasValidInstance);
|
console.log('🎯 hasValidInstance:', hasValidInstance);
|
||||||
|
|
||||||
if (hasValidInstance) {
|
if (hasValidInstance) {
|
||||||
setHasWhatsAppInstance(true);
|
setHasWhatsAppInstance(true);
|
||||||
setUserInstance(instanceData);
|
setUserInstance(instanceData);
|
||||||
console.log('✅ Usuário tem instância WhatsApp conectada - liberando cadastro de grupo');
|
console.log('✅ USUÁRIO TEM INSTÂNCIA VÁLIDA - Liberando cadastro de grupo');
|
||||||
} else {
|
} else {
|
||||||
setHasWhatsAppInstance(false);
|
setHasWhatsAppInstance(false);
|
||||||
setUserInstance(instanceData);
|
setUserInstance(instanceData);
|
||||||
console.log('❌ Usuário não tem instância conectada:', {
|
console.log('❌ USUÁRIO NÃO TEM INSTÂNCIA VÁLIDA:', {
|
||||||
instancia_zap: instanceData?.instancia_zap,
|
temInstanceData: !!instanceData,
|
||||||
status_instancia: instanceData?.status_instancia
|
instancia_zap: instanceData?.instancia_zap || 'NULL',
|
||||||
|
status_instancia: instanceData?.status_instancia || 'NULL'
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('💥 Erro ao verificar instância do usuário:', error);
|
console.error('💥 ERRO CRÍTICO ao verificar instância do usuário:', error);
|
||||||
setHasWhatsAppInstance(false);
|
setHasWhatsAppInstance(false);
|
||||||
setUserInstance(null);
|
setUserInstance(null);
|
||||||
} finally {
|
} finally {
|
||||||
@ -218,35 +230,50 @@ const CreateGroupForm = ({ userEmail, onSuccess }: CreateGroupFormProps) => {
|
|||||||
</AlertDescription>
|
</AlertDescription>
|
||||||
</Alert>
|
</Alert>
|
||||||
|
|
||||||
{/* Informações de debug DETALHADAS */}
|
{/* Informações de debug SUPER DETALHADAS */}
|
||||||
<div className="mt-4 p-4 bg-gray-100 rounded text-sm">
|
<div className="mt-4 p-4 bg-gray-100 rounded text-sm">
|
||||||
<p><strong>📊 STATUS DETALHADO DA INSTÂNCIA:</strong></p>
|
<p><strong>🔧 DEBUG COMPLETO - CONEXÃO COM BANCO:</strong></p>
|
||||||
<div className="mt-2 space-y-1">
|
<div className="mt-2 space-y-1">
|
||||||
<p><strong>Email consultado:</strong> {userEmail || 'Não definido'}</p>
|
<p><strong>Email original:</strong> {userEmail || 'Não definido'}</p>
|
||||||
<p><strong>instancia_zap:</strong>
|
<p><strong>Email processado:</strong> {userEmail?.trim().toLowerCase() || 'Não processado'}</p>
|
||||||
<span className={userInstance?.instancia_zap ? 'text-green-600' : 'text-red-600'}>
|
|
||||||
{userInstance?.instancia_zap || 'NULL/Vazio'}
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
<p><strong>status_instancia:</strong>
|
|
||||||
<span className={userInstance?.status_instancia === 'conectado' ? 'text-green-600' : 'text-red-600'}>
|
|
||||||
{userInstance?.status_instancia || 'NULL/Vazio'}
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
<p><strong>whatsapp:</strong> {userInstance?.whatsapp || 'NULL/Vazio'}</p>
|
|
||||||
|
|
||||||
<div className="mt-3 p-2 bg-yellow-100 rounded">
|
<div className="mt-3 p-2 bg-blue-100 rounded">
|
||||||
<p><strong>🔍 VALIDAÇÕES:</strong></p>
|
<p><strong>📊 DADOS DO BANCO DE DADOS:</strong></p>
|
||||||
<p>✓ Instância existe? {userInstance ? '✅ SIM' : '❌ NÃO'}</p>
|
{userInstance ? (
|
||||||
<p>✓ instancia_zap preenchida? {(userInstance?.instancia_zap && userInstance.instancia_zap.trim() !== '') ? '✅ SIM' : '❌ NÃO'}</p>
|
<>
|
||||||
<p>✓ Status é "conectado"? {userInstance?.status_instancia === 'conectado' ? '✅ SIM' : '❌ NÃO'}</p>
|
<p><strong>instancia_zap:</strong>
|
||||||
|
<span className={userInstance.instancia_zap ? 'text-green-600' : 'text-red-600'}>
|
||||||
|
"{userInstance.instancia_zap || 'NULL'}" (tipo: {typeof userInstance.instancia_zap})
|
||||||
|
</span>
|
||||||
|
</p>
|
||||||
|
<p><strong>status_instancia:</strong>
|
||||||
|
<span className={userInstance.status_instancia === 'conectado' ? 'text-green-600' : 'text-red-600'}>
|
||||||
|
"{userInstance.status_instancia || 'NULL'}" (tipo: {typeof userInstance.status_instancia})
|
||||||
|
</span>
|
||||||
|
</p>
|
||||||
|
<p><strong>whatsapp:</strong> "{userInstance.whatsapp || 'NULL'}"</p>
|
||||||
|
</>
|
||||||
|
) : (
|
||||||
|
<p className="text-red-600">❌ Nenhum dado retornado do banco de dados!</p>
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{userInstance?.instancia_zap && userInstance?.status_instancia !== 'conectado' && (
|
<div className="mt-3 p-2 bg-yellow-100 rounded">
|
||||||
<p className="text-red-600 font-medium mt-2">
|
<p><strong>🔍 VALIDAÇÕES STEP-BY-STEP:</strong></p>
|
||||||
⚠️ Instância encontrada, mas não está conectada. Status atual: "{userInstance.status_instancia}"
|
<p>1. Dados existem? {userInstance ? '✅ SIM' : '❌ NÃO'}</p>
|
||||||
</p>
|
<p>2. instancia_zap preenchida? {(userInstance?.instancia_zap && userInstance.instancia_zap.trim() !== '') ? '✅ SIM' : '❌ NÃO'}</p>
|
||||||
)}
|
<p>3. Status é "conectado"? {userInstance?.status_instancia === 'conectado' ? '✅ SIM' : '❌ NÃO'}</p>
|
||||||
|
|
||||||
|
{userInstance?.instancia_zap && userInstance?.status_instancia !== 'conectado' && (
|
||||||
|
<p className="text-red-600 font-medium mt-2">
|
||||||
|
⚠️ Instância encontrada mas status incorreto: "{userInstance.status_instancia}"
|
||||||
|
</p>
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="mt-3 text-xs text-gray-600">
|
||||||
|
<p>💡 Abra o Console do navegador (F12) para ver logs detalhados da consulta ao banco de dados</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</CardContent>
|
</CardContent>
|
||||||
|
|||||||
@ -1,3 +1,4 @@
|
|||||||
|
|
||||||
import { supabase } from "@/integrations/supabase/client";
|
import { supabase } from "@/integrations/supabase/client";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -43,46 +44,56 @@ export async function getUserWhatsAppInstance(userEmail: string): Promise<{
|
|||||||
console.log('🔍 getUserWhatsAppInstance - Email recebido:', userEmail);
|
console.log('🔍 getUserWhatsAppInstance - Email recebido:', userEmail);
|
||||||
|
|
||||||
const normalizedEmail = userEmail.trim().toLowerCase();
|
const normalizedEmail = userEmail.trim().toLowerCase();
|
||||||
console.log('📧 Email normalizado:', normalizedEmail);
|
console.log('📧 Email normalizado para consulta:', normalizedEmail);
|
||||||
|
|
||||||
const { data, error } = await supabase
|
// TESTE DIRETO: Vamos fazer uma consulta mais específica
|
||||||
|
console.log('🔎 FAZENDO CONSULTA DIRETA NO BANCO...');
|
||||||
|
const { data, error, count } = await supabase
|
||||||
.from('usuarios')
|
.from('usuarios')
|
||||||
.select('instancia_zap, status_instancia, whatsapp')
|
.select('email, instancia_zap, status_instancia, whatsapp', { count: 'exact' })
|
||||||
.eq('email', normalizedEmail)
|
.eq('email', normalizedEmail);
|
||||||
.maybeSingle();
|
|
||||||
|
console.log('📊 RESULTADO DA CONSULTA DIRETA:');
|
||||||
|
console.log('- Total de registros encontrados:', count);
|
||||||
|
console.log('- Dados retornados:', JSON.stringify(data, null, 2));
|
||||||
|
console.log('- Erro na consulta:', error);
|
||||||
|
|
||||||
if (error) {
|
if (error) {
|
||||||
console.error('❌ Erro ao buscar instância WhatsApp:', error);
|
console.error('❌ Erro na consulta Supabase:', error);
|
||||||
throw error;
|
throw error;
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log('📊 DADOS RETORNADOS DO BANCO:');
|
if (!data || data.length === 0) {
|
||||||
console.log('- Raw data:', JSON.stringify(data, null, 2));
|
console.log('⚠️ NENHUM REGISTRO ENCONTRADO para o email:', normalizedEmail);
|
||||||
|
|
||||||
if (!data) {
|
|
||||||
console.log('⚠️ Nenhum usuário encontrado com o email:', normalizedEmail);
|
|
||||||
|
|
||||||
// Vamos fazer uma busca alternativa para ver se o usuário existe com email diferente
|
// Fazer uma consulta geral para ver todos os emails no banco
|
||||||
const { data: allUsers, error: allError } = await supabase
|
console.log('🔍 CONSULTANDO TODOS OS EMAILS NO BANCO:');
|
||||||
|
const { data: allEmails, error: allError } = await supabase
|
||||||
.from('usuarios')
|
.from('usuarios')
|
||||||
.select('email, instancia_zap, status_instancia, whatsapp');
|
.select('email, instancia_zap, status_instancia');
|
||||||
|
|
||||||
if (!allError && allUsers) {
|
if (!allError && allEmails) {
|
||||||
console.log('📋 TODOS OS USUÁRIOS NO BANCO:');
|
console.log('📋 TODOS OS EMAILS ENCONTRADOS NO BANCO:');
|
||||||
allUsers.forEach((user, index) => {
|
allEmails.forEach((user, index) => {
|
||||||
console.log(`${index + 1}. Email: "${user.email}" | Instancia: "${user.instancia_zap}" | Status: "${user.status_instancia}"`);
|
console.log(`${index + 1}. Email no banco: "${user.email}" | Instancia: "${user.instancia_zap}" | Status: "${user.status_instancia}"`);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log('✅ Usuário encontrado! Dados da instância:');
|
const userData = data[0];
|
||||||
console.log(`- instancia_zap: "${data.instancia_zap}" (tipo: ${typeof data.instancia_zap})`);
|
console.log('✅ USUÁRIO ENCONTRADO! Dados extraídos:');
|
||||||
console.log(`- status_instancia: "${data.status_instancia}" (tipo: ${typeof data.status_instancia})`);
|
console.log(`- Email do banco: "${userData.email}"`);
|
||||||
console.log(`- whatsapp: "${data.whatsapp}" (tipo: ${typeof data.whatsapp})`);
|
console.log(`- instancia_zap: "${userData.instancia_zap}" (tipo: ${typeof userData.instancia_zap})`);
|
||||||
|
console.log(`- status_instancia: "${userData.status_instancia}" (tipo: ${typeof userData.status_instancia})`);
|
||||||
|
console.log(`- whatsapp: "${userData.whatsapp}" (tipo: ${typeof userData.whatsapp})`);
|
||||||
|
|
||||||
return data;
|
return {
|
||||||
|
instancia_zap: userData.instancia_zap,
|
||||||
|
status_instancia: userData.status_instancia,
|
||||||
|
whatsapp: userData.whatsapp
|
||||||
|
};
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('💥 Erro crítico ao buscar instância WhatsApp:', error);
|
console.error('💥 Erro crítico ao buscar instância WhatsApp:', error);
|
||||||
throw error;
|
throw error;
|
||||||
@ -136,23 +147,25 @@ export async function removeUserWhatsAppInstance(userEmail: string): Promise<voi
|
|||||||
*/
|
*/
|
||||||
export async function getUserDebugInfo(userEmail: string): Promise<any> {
|
export async function getUserDebugInfo(userEmail: string): Promise<any> {
|
||||||
try {
|
try {
|
||||||
console.log('Buscando informações completas do usuário para debug:', userEmail);
|
console.log('🔍 Buscando informações COMPLETAS do usuário para debug:', userEmail);
|
||||||
|
|
||||||
|
const normalizedEmail = userEmail.trim().toLowerCase();
|
||||||
|
console.log('📧 Email normalizado para debug:', normalizedEmail);
|
||||||
|
|
||||||
const { data, error } = await supabase
|
const { data, error } = await supabase
|
||||||
.from('usuarios')
|
.from('usuarios')
|
||||||
.select('*')
|
.select('*')
|
||||||
.eq('email', userEmail.trim().toLowerCase())
|
.eq('email', normalizedEmail);
|
||||||
.maybeSingle();
|
|
||||||
|
|
||||||
if (error) {
|
if (error) {
|
||||||
console.error('Erro ao buscar informações completas do usuário:', error);
|
console.error('❌ Erro ao buscar informações completas do usuário:', error);
|
||||||
throw error;
|
throw error;
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log('Informações completas do usuário encontradas:', data);
|
console.log('📊 DADOS COMPLETOS DO USUÁRIO:', JSON.stringify(data, null, 2));
|
||||||
return data;
|
return data && data.length > 0 ? data[0] : null;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('Erro ao buscar informações completas do usuário:', error);
|
console.error('💥 Erro ao buscar informações completas do usuário:', error);
|
||||||
throw error;
|
throw error;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user