From d23a826385fb0341ebca689fe8fa8a7a961e62d9 Mon Sep 17 00:00:00 2001 From: adriano Date: Mon, 19 Jun 2023 09:24:48 -0300 Subject: [PATCH] =?UTF-8?q?Atualiza=C3=A7=C3=A3o=20em=20andamento?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/helpers/CheckContactOpenTickets.ts | 6 +++-- .../TicketServices/CreateTicketService.ts | 7 ++++-- .../TicketServices/UpdateTicketService.ts | 2 +- .../WhatsappService/ListWhatsAppsNumber.ts | 22 ++++++++++++++----- 4 files changed, 26 insertions(+), 11 deletions(-) diff --git a/backend/src/helpers/CheckContactOpenTickets.ts b/backend/src/helpers/CheckContactOpenTickets.ts index 3437cce..4739606 100644 --- a/backend/src/helpers/CheckContactOpenTickets.ts +++ b/backend/src/helpers/CheckContactOpenTickets.ts @@ -2,14 +2,16 @@ import { Op } from "sequelize"; import AppError from "../errors/AppError"; import Ticket from "../models/Ticket"; -const CheckContactOpenTickets = async (contactId: number): Promise => { +const CheckContactOpenTickets = async (contactId: number | string, whatsappId: number | string): Promise => { + const ticket = await Ticket.findOne({ - where: { contactId, status: { [Op.or]: ["open", "pending"] } } + where: { contactId, whatsappId, status: { [Op.or]: ["open", "pending"] } } }); if (ticket) { throw new AppError("ERR_OTHER_OPEN_TICKET"); } + }; export default CheckContactOpenTickets; diff --git a/backend/src/services/TicketServices/CreateTicketService.ts b/backend/src/services/TicketServices/CreateTicketService.ts index de5e049..34eef8f 100644 --- a/backend/src/services/TicketServices/CreateTicketService.ts +++ b/backend/src/services/TicketServices/CreateTicketService.ts @@ -44,15 +44,18 @@ const CreateTicketService = async ({ const defaultWhatsapp = await GetDefaultWhatsApp(userId); + // console.log('defaultWhatsapp: ',defaultWhatsapp) + // console.log('JSON.parse(JSON.stringify(defaultWhatsapp)): ',JSON.parse(JSON.stringify(defaultWhatsapp))) + + const user = await User.findByPk(userId, { raw: true, }) console.log('user.profile: ', user?.profile) - const matchingQueue = await whatsappQueueMatchingUserQueue(userId, defaultWhatsapp, user?.profile); console.log('matchingQueue: ', matchingQueue) const queueId = matchingQueue ? matchingQueue.queueId : undefined - await CheckContactOpenTickets(contactId); + await CheckContactOpenTickets(contactId, defaultWhatsapp.id); const { isGroup } = await ShowContactService(contactId); diff --git a/backend/src/services/TicketServices/UpdateTicketService.ts b/backend/src/services/TicketServices/UpdateTicketService.ts index 8855932..bb55360 100644 --- a/backend/src/services/TicketServices/UpdateTicketService.ts +++ b/backend/src/services/TicketServices/UpdateTicketService.ts @@ -49,7 +49,7 @@ const UpdateTicketService = async ({ const oldUserId = ticket.user?.id; if (oldStatus === "closed") { - await CheckContactOpenTickets(ticket.contact.id); + await CheckContactOpenTickets(ticket.contact.id, ticket.whatsappId); } await ticket.update({ diff --git a/backend/src/services/WhatsappService/ListWhatsAppsNumber.ts b/backend/src/services/WhatsappService/ListWhatsAppsNumber.ts index 44b5589..9b45f17 100644 --- a/backend/src/services/WhatsappService/ListWhatsAppsNumber.ts +++ b/backend/src/services/WhatsappService/ListWhatsAppsNumber.ts @@ -1,7 +1,7 @@ import Whatsapp from "../../models/Whatsapp"; -const ListWhatsAppsNumber = async (whatsappId: string | number, status: string): Promise => { +const ListWhatsAppsNumber = async (whatsappId: string | number, status?: string): Promise => { // const whatsapp = await Whatsapp.findOne({ // raw: true, @@ -10,13 +10,23 @@ const ListWhatsAppsNumber = async (whatsappId: string | number, status: string): const whatsapp = await Whatsapp.findByPk(whatsappId, { raw: true }) + let whatsapps: any = [] + if (whatsapp) { - const whatsapps = await Whatsapp.findAll({ - raw: true, - where: { number: whatsapp.number, status: status }, - attributes: ['id', 'number', 'status', 'isDefault', 'url'] - }); + if (status) { + whatsapps = await Whatsapp.findAll({ + raw: true, + where: { number: whatsapp.number, status: status }, + attributes: ['id', 'number', 'status', 'isDefault', 'url'] + }); + } else { + whatsapps = await Whatsapp.findAll({ + raw: true, + where: { number: whatsapp.number }, + attributes: ['id', 'number', 'status', 'isDefault', 'url'] + }); + } return { whatsapps, whatsapp };