From acd628028e487df51995da68130b415bda2cf551 Mon Sep 17 00:00:00 2001 From: Ricardo Paes Date: Wed, 23 Feb 2022 11:21:11 -0300 Subject: [PATCH] :sparkles: open more than one ticket per user as long as it is using another whatsapp --- backend/src/helpers/CheckContactOpenTickets.ts | 7 +++++-- .../src/services/TicketServices/CreateTicketService.ts | 2 +- .../services/TicketServices/FindOrCreateTicketService.ts | 9 ++++++--- .../src/services/TicketServices/UpdateTicketService.ts | 2 +- 4 files changed, 13 insertions(+), 7 deletions(-) diff --git a/backend/src/helpers/CheckContactOpenTickets.ts b/backend/src/helpers/CheckContactOpenTickets.ts index 3437cce..71de597 100644 --- a/backend/src/helpers/CheckContactOpenTickets.ts +++ b/backend/src/helpers/CheckContactOpenTickets.ts @@ -2,9 +2,12 @@ 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, + whatsappId: number +): Promise => { const ticket = await Ticket.findOne({ - where: { contactId, status: { [Op.or]: ["open", "pending"] } } + where: { contactId, whatsappId, status: { [Op.or]: ["open", "pending"] } } }); if (ticket) { diff --git a/backend/src/services/TicketServices/CreateTicketService.ts b/backend/src/services/TicketServices/CreateTicketService.ts index 276d5e5..890c0f9 100644 --- a/backend/src/services/TicketServices/CreateTicketService.ts +++ b/backend/src/services/TicketServices/CreateTicketService.ts @@ -17,7 +17,7 @@ const CreateTicketService = async ({ }: Request): Promise => { const defaultWhatsapp = await GetDefaultWhatsApp(userId); - await CheckContactOpenTickets(contactId); + await CheckContactOpenTickets(contactId, defaultWhatsapp.id); const { isGroup } = await ShowContactService(contactId); diff --git a/backend/src/services/TicketServices/FindOrCreateTicketService.ts b/backend/src/services/TicketServices/FindOrCreateTicketService.ts index bf4c2b0..702f59c 100644 --- a/backend/src/services/TicketServices/FindOrCreateTicketService.ts +++ b/backend/src/services/TicketServices/FindOrCreateTicketService.ts @@ -15,7 +15,8 @@ const FindOrCreateTicketService = async ( status: { [Op.or]: ["open", "pending"] }, - contactId: groupContact ? groupContact.id : contact.id + contactId: groupContact ? groupContact.id : contact.id, + whatsappId: whatsappId } }); @@ -26,7 +27,8 @@ const FindOrCreateTicketService = async ( if (!ticket && groupContact) { ticket = await Ticket.findOne({ where: { - contactId: groupContact.id + contactId: groupContact.id, + whatsappId: whatsappId }, order: [["updatedAt", "DESC"]] }); @@ -46,7 +48,8 @@ const FindOrCreateTicketService = async ( updatedAt: { [Op.between]: [+subHours(new Date(), 2), +new Date()] }, - contactId: contact.id + contactId: contact.id, + whatsappId: whatsappId }, order: [["updatedAt", "DESC"]] }); diff --git a/backend/src/services/TicketServices/UpdateTicketService.ts b/backend/src/services/TicketServices/UpdateTicketService.ts index 3efc5db..eaaadb9 100644 --- a/backend/src/services/TicketServices/UpdateTicketService.ts +++ b/backend/src/services/TicketServices/UpdateTicketService.ts @@ -36,7 +36,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({