From 1d75ec1514f7874d153771aefc2787506bcf9c53 Mon Sep 17 00:00:00 2001 From: adriano Date: Tue, 18 Jan 2022 10:47:19 -0300 Subject: [PATCH] =?UTF-8?q?ATEN=C3=87=C3=83O!=20Essa=20altera=C3=A7=C3=A3o?= =?UTF-8?q?=20=C3=A9=20uma=20adapta=C3=A7=C3=A3o=20para=20que=20possa=20se?= =?UTF-8?q?r=20enviado=20a=20ura=20padr=C3=A3o=20sem=20a=20alternativa=20d?= =?UTF-8?q?o=20usu=C3=A1rio=20escolher=20op=C3=A7=C3=B5es.=20Ex=201-..=202?= =?UTF-8?q?-..=20etc.=20Caso=20queira=20voltar=20para=20o=20comportamento?= =?UTF-8?q?=20padr=C3=A3o=20que=20=C3=A9=20utilizar=20as=20op=C3=A7=C3=B5e?= =?UTF-8?q?s=20definidas=20nas=20filas=20para=20que=20o=20usu=C3=A1rio=20p?= =?UTF-8?q?ossa=20escolher,=20voc=C3=AA=20precisa=20alterar=20o=20arquivo?= =?UTF-8?q?=20wbotMessageListener.ts=20e=20habilitar=20o=20seguintes=20tre?= =?UTF-8?q?chos=20de=20c=C3=B3digo:=20const=20selectedOption=20=3D=20msg.b?= =?UTF-8?q?ody;=20const=20choosenQueue=20=3D=20=20queues[+selectedOption?= =?UTF-8?q?=20-=201];?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FindOrCreateTicketService.ts | 13 +++-- .../WbotServices/wbotMessageListener.ts | 50 +++++++++---------- 2 files changed, 33 insertions(+), 30 deletions(-) diff --git a/backend/src/services/TicketServices/FindOrCreateTicketService.ts b/backend/src/services/TicketServices/FindOrCreateTicketService.ts index bf4c2b0..431c6d6 100644 --- a/backend/src/services/TicketServices/FindOrCreateTicketService.ts +++ b/backend/src/services/TicketServices/FindOrCreateTicketService.ts @@ -1,9 +1,11 @@ -import { subHours } from "date-fns"; +import { subHours, subMinutes } from "date-fns"; import { Op } from "sequelize"; import Contact from "../../models/Contact"; import Ticket from "../../models/Ticket"; import ShowTicketService from "./ShowTicketService"; + + const FindOrCreateTicketService = async ( contact: Contact, whatsappId: number, @@ -40,11 +42,15 @@ const FindOrCreateTicketService = async ( } } - if (!ticket && !groupContact) { + if (!ticket && !groupContact) { + ticket = await Ticket.findOne({ where: { updatedAt: { - [Op.between]: [+subHours(new Date(), 2), +new Date()] + //[Op.between]: [+subHours(new Date(), 2), +new Date()] + + // Tempo osioso para a ura responder thuanny + [Op.between]: [+subMinutes(new Date(), 4), +new Date()] }, contactId: contact.id }, @@ -61,6 +67,7 @@ const FindOrCreateTicketService = async ( } if (!ticket) { + ticket = await Ticket.create({ contactId: groupContact ? groupContact.id : contact.id, status: "pending", diff --git a/backend/src/services/WbotServices/wbotMessageListener.ts b/backend/src/services/WbotServices/wbotMessageListener.ts index aa6d0d9..db40a51 100644 --- a/backend/src/services/WbotServices/wbotMessageListener.ts +++ b/backend/src/services/WbotServices/wbotMessageListener.ts @@ -22,6 +22,8 @@ import FindOrCreateTicketService from "../TicketServices/FindOrCreateTicketServi import ShowWhatsAppService from "../WhatsappService/ShowWhatsAppService"; import { debounce } from "../../helpers/Debounce"; import UpdateTicketService from "../TicketServices/UpdateTicketService"; +import { date } from "faker"; + interface Session extends Client { id?: number; @@ -99,7 +101,7 @@ const verifyMediaMessage = async ( mediaUrl: media.filename, mediaType: media.mimetype.split("/")[0], quotedMsgId: quotedMsg?.id - }; + }; await ticket.update({ lastMessage: msg.body || media.filename }); const newMessage = await CreateMessageService({ messageData }); @@ -112,6 +114,8 @@ const verifyMessage = async ( ticket: Ticket, contact: Contact ) => { + + const quotedMsg = await verifyQuotedMessage(msg); const messageData = { id: msg.id.id, @@ -123,6 +127,7 @@ const verifyMessage = async ( read: msg.fromMe, quotedMsgId: quotedMsg?.id }; + await ticket.update({ lastMessage: msg.body }); @@ -136,22 +141,23 @@ const verifyQueue = async ( contact: Contact ) => { - const { queues, greetingMessage } = await ShowWhatsAppService(wbot.id!); - - console.log('---greetingMessage: ',greetingMessage) - + const { queues, greetingMessage } = await ShowWhatsAppService(wbot.id!); + if (queues.length === 1) { await UpdateTicketService({ ticketData: { queueId: queues[0].id }, ticketId: ticket.id - }); - + }); return; } + + //const selectedOption = msg.body; + //const choosenQueue = queues[+selectedOption - 1]; - const selectedOption = msg.body; + //apagar essa gambiarra e ativar as 2 linhas acima + const selectedOption = 1; + const choosenQueue = queues[+selectedOption - 1]; - const choosenQueue = queues[+selectedOption - 1]; if (choosenQueue) { await UpdateTicketService({ @@ -173,8 +179,6 @@ const verifyQueue = async ( const body = `\u200e${greetingMessage}\n${options}`; - console.log('BACKEND BODY TEST: ', body) - const debouncedSentMessage = debounce( async () => { const sentMessage = await wbot.sendMessage( @@ -211,7 +215,7 @@ const handleMessage = async ( msg: WbotMessage, wbot: Session ): Promise => { - if (!isValidMsg(msg)) { + if (!isValidMsg(msg)) { return; } @@ -228,14 +232,13 @@ const handleMessage = async ( // in this case, return and let this message be handled by "media_uploaded" event, when it will have "hasMedia = true" if (!msg.hasMedia && msg.type !== "chat" && msg.type !== "vcard") return; - - msgContact = await wbot.getContactById(msg.to); + msgContact = await wbot.getContactById(msg.to); } else { msgContact = await msg.getContact(); - console.log('---msgContact: ', msgContact, ' | msg.body: ', msg.body) - + console.log('-----msgContact TESTE MSG: ', msgContact, ' | msg.body: ', msg.body) + } const chat = await msg.getChat(); @@ -268,31 +271,24 @@ const handleMessage = async ( groupContact ); - console.log('---passou 1') - if (msg.hasMedia) { await verifyMediaMessage(msg, ticket, contact); } else { await verifyMessage(msg, ticket, contact); } - console.log('---passou 2 ') - //await verifyQueue(wbot, msg, ticket, contact); - - + //setTimeout(()=>verifyQueue(wbot, msg, ticket, contact), 3000); + if ( !ticket.queue && !chat.isGroup && !msg.fromMe && !ticket.userId && whatsapp.queues.length >= 1 - ) { + ) { await verifyQueue(wbot, msg, ticket, contact); - } - - - + } } catch (err) {