import { Message as WbotMessage } from "whatsapp-web.js"; import AppError from "../../errors/AppError"; import GetTicketWbot from "../../helpers/GetTicketWbot"; import GetWbotMessage from "../../helpers/GetWbotMessage"; import SerializeWbotMsgId from "../../helpers/SerializeWbotMsgId"; import Message from "../../models/Message"; import Ticket from "../../models/Ticket"; import ShowWhatsAppService from "../WhatsappService/ShowWhatsAppService"; import wbotByUserQueue from '../../helpers/GetWbotByUserQueue' interface Request { body: string; ticket: Ticket; quotedMsg?: Message; } const SendWhatsAppMessage = async ({ body, ticket, quotedMsg }: Request): Promise => { let quotedMsgSerializedId: string | undefined; if (quotedMsg) { await GetWbotMessage(ticket, quotedMsg.id); quotedMsgSerializedId = SerializeWbotMsgId(ticket, quotedMsg); } // test del const whatsapp = await ShowWhatsAppService(ticket.whatsappId); if(whatsapp.status!='CONNECTED'){ let whatsapps = await wbotByUserQueue(ticket.userId) if(whatsapps.length > 0){ await ticket.update({ whatsappId: whatsapps[0].id }); } } // const wbot = await GetTicketWbot(ticket); try { const sentMessage = await wbot.sendMessage( `${ticket.contact.number}@${ticket.isGroup ? "g" : "c"}.us`, body, { quotedMessageId: quotedMsgSerializedId, linkPreview: false } ); await ticket.update({ lastMessage: body }); return sentMessage; } catch (err) { throw new AppError("ERR_SENDING_WAPP_MSG"); } }; export default SendWhatsAppMessage;