diff --git a/src/api/integrations/chatbot/base-chatbot.controller.ts b/src/api/integrations/chatbot/base-chatbot.controller.ts index 3a472cd8..80a9a588 100644 --- a/src/api/integrations/chatbot/base-chatbot.controller.ts +++ b/src/api/integrations/chatbot/base-chatbot.controller.ts @@ -2,6 +2,7 @@ import { IgnoreJidDto } from '@api/dto/chatbot.dto'; import { InstanceDto } from '@api/dto/instance.dto'; import { PrismaRepository } from '@api/repository/repository.service'; import { WAMonitoringService } from '@api/services/monitor.service'; +import { Events } from '@api/types/wa.types'; import { Logger } from '@config/logger.config'; import { BadRequestException } from '@exceptions'; import { TriggerOperator, TriggerType } from '@prisma/client'; @@ -446,6 +447,16 @@ export abstract class BaseChatbotController { }, }); } + + const typebotData = { + remoteJid: data.remoteJid, + status: 'opened', + session, + }; + this.waMonitor.waInstances[instance.name].sendDataWebhook(Events.TYPEBOT_CHANGE_STATUS, typebotData); + return { ...request.data, session }; } catch (error) { this.logger.error(error); @@ -399,12 +408,14 @@ export class TypebotService extends BaseChatbotService { }, }); } else { + let statusChange = 'closed'; if (!settings?.keepOpen) { await prismaRepository.integrationSession.deleteMany({ where: { id: session.id, }, }); + statusChange = 'delete'; } else { await prismaRepository.integrationSession.update({ where: { @@ -415,6 +426,13 @@ export class TypebotService extends BaseChatbotService { }, }); } + + const typebotData = { + remoteJid: session.remoteJid, + status: statusChange, + session, + }; + instance.sendDataWebhook(Events.TYPEBOT_CHANGE_STATUS, typebotData); } } @@ -639,6 +657,7 @@ export class TypebotService extends BaseChatbotService { } if (keywordFinish && content.toLowerCase() === keywordFinish.toLowerCase()) { + let statusChange = 'closed'; if (keepOpen) { await this.prismaRepository.integrationSession.update({ where: { @@ -649,6 +668,7 @@ export class TypebotService extends BaseChatbotService { }, }); } else { + statusChange = 'delete'; await this.prismaRepository.integrationSession.deleteMany({ where: { botId: findTypebot.id, @@ -656,6 +676,14 @@ export class TypebotService extends BaseChatbotService { }, }); } + + const typebotData = { + remoteJid: remoteJid, + status: statusChange, + session, + }; + waInstance.sendDataWebhook(Events.TYPEBOT_CHANGE_STATUS, typebotData); + return; } @@ -788,6 +816,7 @@ export class TypebotService extends BaseChatbotService { } if (keywordFinish && content.toLowerCase() === keywordFinish.toLowerCase()) { + let statusChange = 'closed'; if (keepOpen) { await this.prismaRepository.integrationSession.update({ where: { @@ -798,6 +827,7 @@ export class TypebotService extends BaseChatbotService { }, }); } else { + statusChange = 'delete'; await this.prismaRepository.integrationSession.deleteMany({ where: { botId: findTypebot.id, @@ -806,6 +836,13 @@ export class TypebotService extends BaseChatbotService { }); } + const typebotData = { + remoteJid: remoteJid, + status: statusChange, + session, + }; + waInstance.sendDataWebhook(Events.TYPEBOT_CHANGE_STATUS, typebotData); + return; } @@ -881,6 +918,7 @@ export class TypebotService extends BaseChatbotService { } if (keywordFinish && content.toLowerCase() === keywordFinish.toLowerCase()) { + let statusChange = 'closed'; if (keepOpen) { await this.prismaRepository.integrationSession.update({ where: { @@ -891,6 +929,7 @@ export class TypebotService extends BaseChatbotService { }, }); } else { + statusChange = 'delete'; await this.prismaRepository.integrationSession.deleteMany({ where: { botId: findTypebot.id, @@ -898,6 +937,15 @@ export class TypebotService extends BaseChatbotService { }, }); } + + const typebotData = { + remoteJid: remoteJid, + status: statusChange, + session, + }; + + waInstance.sendDataWebhook(Events.TYPEBOT_CHANGE_STATUS, typebotData); + return; }