From 7bab4bf6b9743a7bf6b9387595cccbc1015f5e41 Mon Sep 17 00:00:00 2001 From: adriano Date: Wed, 7 Feb 2024 17:52:07 -0300 Subject: [PATCH] feat: Optimize database by reopening bot tickets instead of creating new ones --- .../WbotServices/wbotMessageListener.ts | 57 +++++++++++++++++-- 1 file changed, 51 insertions(+), 6 deletions(-) diff --git a/backend/src/services/WbotServices/wbotMessageListener.ts b/backend/src/services/WbotServices/wbotMessageListener.ts index 8047d02..8d60993 100644 --- a/backend/src/services/WbotServices/wbotMessageListener.ts +++ b/backend/src/services/WbotServices/wbotMessageListener.ts @@ -89,6 +89,8 @@ import SettingTicket from "../../models/SettingTicket"; import mostRepeatedPhrase from "../../helpers/MostRepeatedPhrase"; import ListWhatsAppsNumber from "../WhatsappService/ListWhatsAppsNumber"; import { createObject, findObject, get } from "../../helpers/RedisClient"; +import FindOrCreateTicketServiceBot from "../TicketServices/FindOrCreateTicketServiceBot" +import ShowTicketService from "../TicketServices/ShowTicketService" var lst: any[] = getWhatsappIds(); @@ -663,12 +665,39 @@ const handleMessage = async ( ) return; - const ticket = await FindOrCreateTicketService( - contact, - wbot.id!, - unreadMessages - // groupContact - ); + let ticket; + + const _botInfo = await BotIsOnQueue("botqueue"); + + if (_botInfo.isOnQueue) { + let ticket_obj: any = await FindOrCreateTicketServiceBot( + contact, + wbot.id!, + unreadMessages + // groupContact + ); + + ticket = ticket_obj.ticket; + + if (ticket_obj.created) { + let queue = await ShowQueueService(_botInfo.botQueueId); + + await UpdateTicketService({ + ticketData: { queueId: queue.id }, + ticketId: ticket.id + }); + + ticket = await ShowTicketService(ticket.id); + } + } else { + ticket = await FindOrCreateTicketService( + contact, + wbot.id!, + unreadMessages + // groupContact + ); + } + if (getSettingValue("oneContactChatWithManyWhats")?.value == "disabled") { // Para responder para o cliente pelo mesmo whatsapp que ele enviou a mensagen @@ -739,6 +768,22 @@ const handleMessage = async ( } else { console.log("MSG body: ", msg.body); + if (msg.type != "chat") { + botSendMessage( + ticket, + `Desculpe, nao compreendi!\nEnvie apenas texto quando estiver interagindo com o bot!\n _Digite *0* para voltar ao menu principal._` + ); + return; + } + + if (msg.type == "chat" && String(msg.body).length > 120) { + botSendMessage( + ticket, + `Desculpe, nao compreendi!\nTexto acima de 120 caracteres!\n _Digite *0* para voltar ao menu principal._` + ); + return; + } + const menuMsg: any = await menu(msg.body, wbot.id, contact.id); console.log("menuMsg: ", menuMsg);