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) {