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:
parent
b8375b3aad
commit
0e0b0919c4
@ -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 {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user