ajustes slm
parent
baaa1a5db3
commit
95bec1f92e
|
@ -64,7 +64,7 @@ export const hit = async (req: Request, res: Response): Promise<Response> => {
|
|||
return res.status(200).json({ "message": "Ok" });
|
||||
}
|
||||
|
||||
validNumber = req.body['cod_web']==='0001' ? validNumber : '5517988325936'
|
||||
validNumber = req.body['cod_web'] === '0001' ? validNumber : '5517988325936'
|
||||
|
||||
let contact = await Contact.findOne({ where: { number: validNumber } });
|
||||
// let contact = await Contact.findOne({ where: { number: '5517988325936' } });
|
||||
|
@ -87,6 +87,7 @@ export const hit = async (req: Request, res: Response): Promise<Response> => {
|
|||
|
||||
}
|
||||
|
||||
// let response: any = `*Olá!*\r\n\r\n*Esperamos que esteja tudo bem com você. Somos o grupo HIT e estamos aqui para mantê-lo atualizado sobre o chamado referente à unidade 0001 - Hit World Teste. Queremos garantir que você esteja informado sobre o incidente e possa acompanhar tudo de perto.*\r\n\r\nPrezado cliente, se deseja adicionar alguma informação no protocolo 200-322442 digite 2\r\n\r\n\r\n*Protocolo:* 200-322442\r\n*Data de abertura:* 07/07/2023 16:51:29\r\n*Nome do cliente:* Hit World Teste\r\n*Nome da filial:* Hit World Teste\r\n*Código do cliente:* 0001\r\n\r\n*Informação de abertura:* teste de ativação Contato: Felipe Telefone: 11983534545\r\n*Data de abertura:* 07/07/2023 16:51:29\r\n\r\n`
|
||||
|
||||
let response: any = await hitPortalMonitoring({
|
||||
'params[n_chamado_web]': req.body['n_chamado_web'],
|
||||
|
@ -100,8 +101,8 @@ export const hit = async (req: Request, res: Response): Promise<Response> => {
|
|||
|
||||
const botInfo = await BotIsOnQueue('botqueue')
|
||||
|
||||
let ticket: any = await ShowTicketServiceByContactId(contact.id)
|
||||
|
||||
let ticket: any = await ShowTicketServiceByContactId(contact.id)
|
||||
|
||||
if (!ticket.dataValues.id) {
|
||||
|
||||
const defaultWhatsapp = await GetDefaultWhatsApp();
|
||||
|
@ -112,29 +113,33 @@ export const hit = async (req: Request, res: Response): Promise<Response> => {
|
|||
0,
|
||||
);
|
||||
|
||||
ticket = ticket_obj.ticket
|
||||
ticket = ticket_obj.ticket
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (ticket.id && ticket.status == 'pending') {
|
||||
|
||||
await sendMessageHitMonitoring(response, ticket);
|
||||
|
||||
await sendMessageInsertInfoSLM(req, ticket, ['atdabriu', 'atdatualizou']);
|
||||
|
||||
}
|
||||
else if (ticket.id && ticket.userId == botInfo.userIdBot) {
|
||||
|
||||
let queue = await ShowQueueService(botInfo.botQueueId);
|
||||
|
||||
await UpdateTicketService({ ticketData: { queueId: queue.id }, ticketId: ticket.id });
|
||||
await UpdateTicketService({ ticketData: { queueId: queue.id }, ticketId: ticket.id });
|
||||
|
||||
ticket = await ShowTicketService(ticket.id);
|
||||
ticket = await ShowTicketService(ticket.id);
|
||||
|
||||
let msg: any = { type: 'chat', from: `${contact.number}@c.us`, body: '0' }
|
||||
|
||||
await sendDialogflowAwswer(ticket.whatsappId, ticket, msg, contact, false);
|
||||
await sendDialogflowAwswer(ticket.whatsappId, ticket, msg, contact, false);
|
||||
|
||||
await sendMessageHitMonitoring(response, ticket);
|
||||
|
||||
await sendMessageInsertInfoSLM(req, ticket, ['atdabriu', 'atdatualizou']);
|
||||
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
@ -146,6 +151,17 @@ export const hit = async (req: Request, res: Response): Promise<Response> => {
|
|||
|
||||
};
|
||||
|
||||
async function sendMessageInsertInfoSLM(req: Request, ticket: any, params: any[]) {
|
||||
|
||||
if (params.includes(req.body['action'])) {
|
||||
|
||||
await new Promise(f => setTimeout(f, 1000));
|
||||
|
||||
await sendMessageHitMonitoring(`Se deseja adicionar alguma informação ao protocolo acima, digite 2.`, ticket);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
async function sendMessageHitMonitoring(msg: any, ticket: Ticket) {
|
||||
|
||||
if (msg && msg.length > 0) {
|
||||
|
|
|
@ -0,0 +1,26 @@
|
|||
import Whatsapp from "../models/Whatsapp";
|
||||
import ShowQueuesByUser from "../services/UserServices/ShowQueuesByUser";
|
||||
import ShowWhatsAppService from "../services/WhatsappService/ShowWhatsAppService";
|
||||
|
||||
async function whatsappQueueMatchingUserQueue(userId: number, whatsapp: Whatsapp, userProfile: string = 'user') {
|
||||
|
||||
const userQueues = await ShowQueuesByUser({ profile: userProfile, userId: userId });
|
||||
|
||||
if (!userQueues || userQueues && userQueues.length == 0) return
|
||||
|
||||
// console.log('-----> userQueues: ', userQueues);
|
||||
|
||||
let whats: any = await ShowWhatsAppService(whatsapp.id);
|
||||
|
||||
if (!whats.queues || whats.queues && whats.queues.length == 0) return
|
||||
|
||||
const whatsappQueues = whats.queues.map((e: any) => e.dataValues.name);
|
||||
|
||||
// console.log('-----> whatsappQueues: ', whatsappQueues);
|
||||
|
||||
const matchingQueue = userQueues.find(queue => whatsappQueues.includes(queue.name));
|
||||
|
||||
return matchingQueue
|
||||
}
|
||||
|
||||
export default whatsappQueueMatchingUserQueue
|
|
@ -14,6 +14,8 @@ import { splitDateTime } from "../../helpers/SplitDateTime";
|
|||
import TicketEmiterSumOpenClosedByUser from "../../helpers/OnlineReporEmiterInfoByUser";
|
||||
|
||||
import { createOrUpdateTicketCache } from '../../helpers/TicketCache'
|
||||
import User from "../../models/User";
|
||||
import whatsappQueueMatchingUserQueue from "../../helpers/whatsappQueueMatchingUserQueue";
|
||||
let flatten = require('flat')
|
||||
|
||||
|
||||
|
@ -21,23 +23,28 @@ let flatten = require('flat')
|
|||
interface Request {
|
||||
contactId: number;
|
||||
status: string;
|
||||
userId: number;
|
||||
userId: number;
|
||||
queueId?: number | undefined;
|
||||
}
|
||||
|
||||
const CreateTicketService = async ({
|
||||
contactId,
|
||||
status,
|
||||
userId,
|
||||
userId,
|
||||
queueId = undefined
|
||||
}: Request): Promise<Ticket> => {
|
||||
|
||||
|
||||
console.log('========> queueId: ', queueId)
|
||||
|
||||
|
||||
try {
|
||||
|
||||
const defaultWhatsapp = await GetDefaultWhatsApp(userId);
|
||||
const defaultWhatsapp = await GetDefaultWhatsApp(userId);
|
||||
|
||||
|
||||
if (!queueId) {
|
||||
const user = await User.findByPk(userId, { raw: true, })
|
||||
const matchingQueue = await whatsappQueueMatchingUserQueue(userId, defaultWhatsapp, user?.profile);
|
||||
queueId = matchingQueue ? matchingQueue.queueId : undefined
|
||||
}
|
||||
|
||||
await CheckContactOpenTickets(contactId);
|
||||
|
||||
|
|
|
@ -401,12 +401,12 @@ async function sendDelayedMessages(wbot: any, ticket: Ticket, contact: Contact,
|
|||
|
||||
if (valid && valid.data.result == 'open') {
|
||||
|
||||
botSendMessage(ticket, `Protocolo validado, por favor, pode digitar o texto a ser adicionado no histórico do protocolo *${params[1]}*`)
|
||||
botSendMessage(ticket, `✅ Protocolo validado, agora digite a informação que deseja adicionar.`)
|
||||
|
||||
}
|
||||
else if (valid && valid.data.result == 'notfound') {
|
||||
|
||||
botSendMessage(ticket, `Protocolo *${params[1]}* não encontrado!\n_Digite *0* para falar com a HIT._`)
|
||||
botSendMessage(ticket, `Protocolo *${params[1]}* não encontrado!`)
|
||||
|
||||
}
|
||||
else if (valid && valid.data.result == 'close') {
|
||||
|
@ -754,7 +754,7 @@ const transferTicket = async (queueIndex: number, wbot: any, ticket: Ticket) =>
|
|||
const botMsgActions = (params: string) => {
|
||||
|
||||
let lstActions = params.split('dialog_actions=')
|
||||
let bodyMsg = lstActions[0]
|
||||
let bodyMsg = lstActions[0].trim()
|
||||
let obj = {}
|
||||
|
||||
console.log('lstActions: ', lstActions[1].split('='))
|
||||
|
@ -1109,11 +1109,8 @@ const handleMessage = async (
|
|||
|
||||
if (last_messages.length > 0 && last_messages[0].body.includes('validado') && msg.body.trim() != '0') {
|
||||
|
||||
// botSendMessage(ticket,`Aguarde, inserindo informação...\n_Digite *0* para falar com a HIT._`)
|
||||
|
||||
await SendWhatsAppMessage({ body: `Aguarde inserindo informação, em breve te atualizaremos`, ticket })
|
||||
|
||||
|
||||
let aux_msg = last_messages[0].body
|
||||
|
||||
aux_msg = aux_msg.split('\n')[0]
|
||||
|
@ -1139,12 +1136,13 @@ const handleMessage = async (
|
|||
|
||||
if (response && response.data.result) {
|
||||
|
||||
botSendMessage(ticket, `${response.data.result}`)
|
||||
// botSendMessage(ticket, `${response.data.result}`)
|
||||
botSendMessage(ticket, `✅ A informação foi adicionada com sucesso e será armazenada no histórico do protocolo.`)
|
||||
|
||||
}
|
||||
else {
|
||||
|
||||
botSendMessage(ticket, `Ops! Houve um erro ao tentar inserir sua informação devido a um erro na comunicação com o servidor.Tente novamente mais tarde.\n_Digite *0* para falar com a HIT._`)
|
||||
botSendMessage(ticket, `Ops! Houve um erro ao tentar inserir sua informação devido a um erro na comunicação com o servidor.Tente novamente mais tarde.`)
|
||||
|
||||
}
|
||||
|
||||
|
@ -1177,13 +1175,13 @@ const handleMessage = async (
|
|||
return
|
||||
}
|
||||
|
||||
|
||||
if (msg && !msg.fromMe && ticket.status == 'pending') {
|
||||
|
||||
|
||||
if (msg && !msg.fromMe && ticket.status == 'pending') {
|
||||
|
||||
await setMessageAsRead(ticket)
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
} catch (err) {
|
||||
Sentry.captureException(err);
|
||||
|
|
Loading…
Reference in New Issue