Atualização para enviar mensagens de quando o chamado é fechado pela hit

pull/20/head
adriano 2023-01-24 15:57:44 -03:00
parent c952fa7960
commit d30568a946
1 changed files with 93 additions and 9 deletions

View File

@ -28,16 +28,100 @@ export const hit = async (req: Request, res: Response): Promise<Response> => {
console.log('req.boy: ', req.body) console.log('req.boy: ', req.body)
console.log('req.boy: ', req.body['centro_custo']) console.log('req.boy: ', req.body['centro_custo'])
console.log('ACTION: ', req.body['action'])
if (req.headers["auth"] === '0424bd59b807674191e7d77572075f33') { if (req.headers["auth"] === '0424bd59b807674191e7d77572075f33') {
if (req.body['action'] === 'closed') { let contact = null
try {
contact = await ContactByCustomField(req.body['centro_custo'])
} catch (error) {
console.log('There was an error on try get centro_custo info: ', error)
} }
else {
let contact = await ContactByCustomField(req.body['centro_custo']) if (req.body['action'] === 'atdfechou') {
console.log('FECHOU')
try {
console.log('THE CONTACT: ', contact)
if (contact) {
let data = req.body
let str = ''
let str2 = ''
// const exclude = ["action", "centro_custo", "n_chamado_web", "historico"];
// for (const key in data) {
// if (exclude.includes(`${key}`)) {
// continue
// }
// str += `${key.replace('hostname', 'cliente')}: ${data[key]}\n`
// }
str = `*Cliente*: ${contact['contact.name']}`
let historico = data['historico']
for (const key in historico) {
const hist = Object.keys(historico[key]);
hist.forEach((keys, index) => {
str2 += `*${keys}*: ${historico[key][keys]}\n`
});
str2 += '\n'
}
console.log('--------------> str: ', str)
console.log('--------------> str2: ', str2)
const botInfo = await BotIsOnQueue('botqueue')
let ticket = await ShowTicketServiceByContactId(contact['contact.id'])
if (ticket.id && ticket.status == 'pending') {
await sendMessageHitMonitoring(`*Olá. Somos a TI Espaçolaser.*\nO chamado da sua loja ${contact['contact.name']} foi fechado pela operadora. Abaixo seguem informações sobre o incidente.\n\n*Situação do chamado na Operadora*\n\n*Incidente:*\n\n ${str}\n\n*Atualizações*:\n\n${str2}`, ticket);
}
else if (!ticket.id) {
ticket = await CreateTicketService({ contactId: contact['contact.id'], status: 'open', userId: botInfo.userIdBot });
console.log('botInfo.botQueueId: ', botInfo.botQueueId)
await UpdateTicketService({ ticketData: { queueId: botInfo.botQueueId }, ticketId: ticket.id });
await sendMessageHitMonitoring(`*Olá. Somos a TI Espaçolaser.*\nO chamado da sua loja ${contact['contact.name']} foi fechado pela operadora. Abaixo seguem informações sobre o incidente.\n\n*Situação do chamado na Operadora*\n\n*Incidente:*\n\n ${str}\n\n*Atualizações*:\n\n${str2}`, ticket);
}
}
} catch (error) {
console.log(`Error on try sending the monitor message closed: `, error)
}
}
else {
console.log('--------------> contact: ', contact) console.log('--------------> contact: ', contact)
@ -58,7 +142,7 @@ export const hit = async (req: Request, res: Response): Promise<Response> => {
if (ticket.id && ticket.status == 'pending') { if (ticket.id && ticket.status == 'pending') {
await sendMessageHitMonitoring(response, ticket, contact); await sendMessageHitMonitoring(`*Olá. Somos a TI Espaçolaser.*\nIdentificamos em nossos monitoramentos que há um problema na internet da sua loja ${contact['contact.name']} e já estamos resolvendo. Abaixo seguem informações sobre o incidente para que possam acompanhar.\n\n*Situação do chamado na Operadora*\n\n*Incidente*:\n\n ${response[0].header}\n${response[0].body}`, ticket);
} }
else if (!ticket.id) { else if (!ticket.id) {
@ -69,7 +153,7 @@ export const hit = async (req: Request, res: Response): Promise<Response> => {
await UpdateTicketService({ ticketData: { queueId: botInfo.botQueueId }, ticketId: ticket.id }); await UpdateTicketService({ ticketData: { queueId: botInfo.botQueueId }, ticketId: ticket.id });
await sendMessageHitMonitoring(response, ticket, contact); await sendMessageHitMonitoring(`*Olá. Somos a TI Espaçolaser.*\nIdentificamos em nossos monitoramentos que há um problema na internet da sua loja ${contact['contact.name']} e já estamos resolvendo. Abaixo seguem informações sobre o incidente para que possam acompanhar.\n\n*Situação do chamado na Operadora*\n\n*Incidente*:\n\n ${response[0].header}\n${response[0].body}`, ticket);
} }
@ -93,13 +177,13 @@ export const hit = async (req: Request, res: Response): Promise<Response> => {
return res.status(200).json({ "message": "Ok" }); return res.status(200).json({ "message": "Ok" });
}; };
async function sendMessageHitMonitoring(response: any, ticket: Ticket, contact: any) { async function sendMessageHitMonitoring(msg: string, ticket: Ticket) {
if (response && response.length > 0) { if (msg && msg.length > 0) {
console.log('MESSAGE WILL BE SENT!') console.log('MESSAGE WILL BE SENT!')
await SendWhatsAppMessage({ body: `*Olá. Somos a TI Espaçolaser.*\nIdentificamos em nossos monitoramentos que há um problema na internet da sua loja ${contact['contact.name']} e já estamos resolvendo. Abaixo seguem informações sobre o incidente para que possam acompanhar.\n\n*Situação do chamado na Operadora*\n\n*Incidente*:\n\n ${response[0].header}\n${response[0].body}`, ticket }); await SendWhatsAppMessage({ body: msg, ticket });
} }