Refactor: Send group creation webhook

Send a webhook to create a group instead of making a direct request. The webhook includes the user's email and WhatsApp information.
This commit is contained in:
gpt-engineer-app[bot] 2025-07-01 23:29:41 +00:00
parent b8375b3aad
commit 0e0b0919c4

View File

@ -1,9 +1,6 @@
import { useState } from 'react';
import { useToast } from '@/hooks/use-toast';
import { findOrCreateWhatsAppGroup } from '@/services/whatsAppGroupsService';
import { createWhatsAppGroup, updateGroupRemoteJid } from '@/services/whatsAppGroupCreationService';
import { createEvolutionWebhook } from '@/services/whatsApp/webhookService';
export const useGroupCreation = (userEmail: string, onSuccess: () => void) => {
const { toast } = useToast();
@ -39,55 +36,48 @@ export const useGroupCreation = (userEmail: string, onSuccess: () => void) => {
setCadastrando(true);
try {
console.log("Iniciando processo de cadastro de grupo...");
console.log("🔔 [GRUPO] Enviando webhook para criar grupo via N8N");
// 1. Cadastrar grupo no banco de dados local
const grupo = await findOrCreateWhatsAppGroup(nomeGrupo.trim());
// Enviar webhook para N8N criar o grupo
const webhookUrl = 'https://webhookn8n.innova1001.com.br/webhook/criargrupofinance';
if (!grupo) {
throw new Error('Não foi possível cadastrar o grupo no banco de dados');
}
// 2. Criar grupo no WhatsApp via API com o nome escolhido pelo usuário
try {
const groupResponse = await createWhatsAppGroup(userEmail, nomeGrupo.trim());
console.log('Resposta da criação do grupo:', groupResponse);
// 3. Atualizar remote_jid no banco de dados
if (groupResponse.id) {
await updateGroupRemoteJid(grupo.id, groupResponse.id);
// 4. Enviar webhook para N8N APENAS UMA VEZ - removido daqui para evitar loop
// O webhook será enviado apenas no CreateGroupFormSimple.tsx
toast({
title: 'Sucesso!',
description: `Grupo "${nomeGrupo}" criado com sucesso no seu WhatsApp!`,
variant: 'default',
});
} else {
toast({
title: 'Atenção',
description: 'Grupo cadastrado no sistema, mas não foi possível criar no WhatsApp',
variant: 'destructive',
});
}
} catch (apiError) {
console.error('Erro ao criar grupo via API:', apiError);
toast({
title: 'Atenção',
description: 'Grupo cadastrado no sistema, mas houve erro ao criar no WhatsApp. Verifique sua conexão.',
variant: 'destructive',
});
const webhookData = {
email: userEmail,
whatsapp: userInstance.whatsapp || '',
nomeGrupo: nomeGrupo.trim(),
instancia: userInstance.instancia_zap,
timestamp: new Date().toISOString()
};
console.log('🔔 Enviando dados para webhook criar grupo:', webhookData);
const response = await fetch(webhookUrl, {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(webhookData)
});
if (!response.ok) {
const errorText = await response.text();
console.error(`❌ Erro ao enviar webhook criar grupo: ${response.status} - ${errorText}`);
throw new Error(`Erro ao criar grupo via N8N: ${response.status}`);
}
console.log('✅ [GRUPO] Webhook enviado com sucesso para N8N criar grupo');
toast({
title: 'Sucesso!',
description: `Solicitação para criar grupo "${nomeGrupo}" enviada com sucesso!`,
variant: 'default',
});
// Atualizar a lista de grupos
onSuccess();
} catch (error) {
console.error('Erro ao cadastrar grupo:', error);
console.error('❌ Erro ao enviar webhook para criar grupo:', error);
let errorMsg = 'Erro desconhecido';
if (error instanceof Error) {
errorMsg = error.message;
@ -95,7 +85,7 @@ export const useGroupCreation = (userEmail: string, onSuccess: () => void) => {
toast({
title: 'Erro',
description: `Não foi possível registrar o grupo: ${errorMsg}`,
description: `Não foi possível solicitar criação do grupo: ${errorMsg}`,
variant: 'destructive',
});
} finally {