feat: Optimize database by reopening bot tickets instead of creating new ones
parent
853f537361
commit
7bab4bf6b9
|
@ -89,6 +89,8 @@ import SettingTicket from "../../models/SettingTicket";
|
||||||
import mostRepeatedPhrase from "../../helpers/MostRepeatedPhrase";
|
import mostRepeatedPhrase from "../../helpers/MostRepeatedPhrase";
|
||||||
import ListWhatsAppsNumber from "../WhatsappService/ListWhatsAppsNumber";
|
import ListWhatsAppsNumber from "../WhatsappService/ListWhatsAppsNumber";
|
||||||
import { createObject, findObject, get } from "../../helpers/RedisClient";
|
import { createObject, findObject, get } from "../../helpers/RedisClient";
|
||||||
|
import FindOrCreateTicketServiceBot from "../TicketServices/FindOrCreateTicketServiceBot"
|
||||||
|
import ShowTicketService from "../TicketServices/ShowTicketService"
|
||||||
|
|
||||||
var lst: any[] = getWhatsappIds();
|
var lst: any[] = getWhatsappIds();
|
||||||
|
|
||||||
|
@ -663,13 +665,40 @@ const handleMessage = async (
|
||||||
)
|
)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
const ticket = await FindOrCreateTicketService(
|
let ticket;
|
||||||
|
|
||||||
|
const _botInfo = await BotIsOnQueue("botqueue");
|
||||||
|
|
||||||
|
if (_botInfo.isOnQueue) {
|
||||||
|
let ticket_obj: any = await FindOrCreateTicketServiceBot(
|
||||||
contact,
|
contact,
|
||||||
wbot.id!,
|
wbot.id!,
|
||||||
unreadMessages
|
unreadMessages
|
||||||
// groupContact
|
// 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") {
|
if (getSettingValue("oneContactChatWithManyWhats")?.value == "disabled") {
|
||||||
// Para responder para o cliente pelo mesmo whatsapp que ele enviou a mensagen
|
// Para responder para o cliente pelo mesmo whatsapp que ele enviou a mensagen
|
||||||
if (wbot.id != ticket.whatsappId) {
|
if (wbot.id != ticket.whatsappId) {
|
||||||
|
@ -739,6 +768,22 @@ const handleMessage = async (
|
||||||
} else {
|
} else {
|
||||||
console.log("MSG body: ", msg.body);
|
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);
|
const menuMsg: any = await menu(msg.body, wbot.id, contact.id);
|
||||||
|
|
||||||
console.log("menuMsg: ", menuMsg);
|
console.log("menuMsg: ", menuMsg);
|
||||||
|
|
Loading…
Reference in New Issue