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 { useState } from 'react';
|
||||||
import { useToast } from '@/hooks/use-toast';
|
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) => {
|
export const useGroupCreation = (userEmail: string, onSuccess: () => void) => {
|
||||||
const { toast } = useToast();
|
const { toast } = useToast();
|
||||||
@ -39,55 +36,48 @@ export const useGroupCreation = (userEmail: string, onSuccess: () => void) => {
|
|||||||
|
|
||||||
setCadastrando(true);
|
setCadastrando(true);
|
||||||
try {
|
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
|
// Enviar webhook para N8N criar o grupo
|
||||||
const grupo = await findOrCreateWhatsAppGroup(nomeGrupo.trim());
|
const webhookUrl = 'https://webhookn8n.innova1001.com.br/webhook/criargrupofinance';
|
||||||
|
|
||||||
if (!grupo) {
|
const webhookData = {
|
||||||
throw new Error('Não foi possível cadastrar o grupo no banco de dados');
|
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}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 2. Criar grupo no WhatsApp via API com o nome escolhido pelo usuário
|
console.log('✅ [GRUPO] Webhook enviado com sucesso para N8N criar grupo');
|
||||||
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({
|
toast({
|
||||||
title: 'Sucesso!',
|
title: 'Sucesso!',
|
||||||
description: `Grupo "${nomeGrupo}" criado com sucesso no seu WhatsApp!`,
|
description: `Solicitação para criar grupo "${nomeGrupo}" enviada com sucesso!`,
|
||||||
variant: 'default',
|
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',
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// Atualizar a lista de grupos
|
// Atualizar a lista de grupos
|
||||||
onSuccess();
|
onSuccess();
|
||||||
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('Erro ao cadastrar grupo:', error);
|
console.error('❌ Erro ao enviar webhook para criar grupo:', error);
|
||||||
let errorMsg = 'Erro desconhecido';
|
let errorMsg = 'Erro desconhecido';
|
||||||
if (error instanceof Error) {
|
if (error instanceof Error) {
|
||||||
errorMsg = error.message;
|
errorMsg = error.message;
|
||||||
@ -95,7 +85,7 @@ export const useGroupCreation = (userEmail: string, onSuccess: () => void) => {
|
|||||||
|
|
||||||
toast({
|
toast({
|
||||||
title: 'Erro',
|
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',
|
variant: 'destructive',
|
||||||
});
|
});
|
||||||
} finally {
|
} finally {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user