Alteração para incluir o status 500 no erro a consulta a api da espacolazer

pull/20/head
adriano 2023-01-16 17:52:35 -03:00
parent ed42d76a6b
commit c952fa7960
3 changed files with 55 additions and 44 deletions

View File

@ -19,7 +19,7 @@ import hitPortalMonitoring from "../helpers/HitPortalMonitoring";
// type IndexQuery = { // type IndexQuery = {
// centro_custo: string; // centro_custo: string;
// }; // };
export const hit = async (req: Request, res: Response): Promise<Response> => { export const hit = async (req: Request, res: Response): Promise<Response> => {
// const { // const {
@ -32,47 +32,53 @@ export const hit = async (req: Request, res: Response): Promise<Response> => {
if (req.headers["auth"] === '0424bd59b807674191e7d77572075f33') { if (req.headers["auth"] === '0424bd59b807674191e7d77572075f33') {
let contact = await ContactByCustomField(req.body['centro_custo']) if (req.body['action'] === 'closed') {
console.log('--------------> contact: ', contact) }
else {
let contact = await ContactByCustomField(req.body['centro_custo'])
console.log('--------------> contact: ', contact)
if (contact) {
try {
let response = await hitPortalMonitoring(req.body['centro_custo'])
if (!response || response.length == 0) {
console.log('Empty result from hit portal monitoring. Centro_de_custo: ', req.body['centro_custo'])
return res.status(200).json({ "message": "Ok" });
}
const botInfo = await BotIsOnQueue('botqueue')
let ticket = await ShowTicketServiceByContactId(contact['contact.id'])
if (ticket.id && ticket.status == 'pending') {
await sendMessageHitMonitoring(response, ticket, contact);
}
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(response, ticket, contact);
}
if (contact) { } catch (error) {
try { console.log(`Error on try sending the message monitor: `, error)
let response = await hitPortalMonitoring(req.body['centro_custo'])
if (!response || response.length == 0) {
console.log('Empty result from hit portal monitoring. Centro_de_custo: ',req.body['centro_custo'])
return res.status(200).json({ "message": "Ok" });
}
const botInfo = await BotIsOnQueue('botqueue')
let ticket = await ShowTicketServiceByContactId(contact['contact.id'])
if (ticket.id && ticket.status == 'pending') {
await sendMessageHitMonitoring(response, ticket, contact);
} }
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(response, ticket, contact);
}
} catch (error) {
console.log(`Error on try sending the message monitor: `, error)
} }
@ -89,12 +95,12 @@ export const hit = async (req: Request, res: Response): Promise<Response> => {
async function sendMessageHitMonitoring(response: any, ticket: Ticket, contact: any) { async function sendMessageHitMonitoring(response: any, ticket: Ticket, contact: any) {
if (response && response.length > 0) { if (response && response.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: `*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 });
} }
} }

View File

@ -41,7 +41,7 @@ const endPointQuery = async (url: string, method: string, param: string = '') =>
} }
} catch (error) { } catch (error) {
console.error(error); console.error(`Erro ao consultar endpoint ${url}: ${error}`);
} }
return response return response

View File

@ -306,8 +306,9 @@ async function sendDelayedMessages(wbot: Session, ticket: Ticket, contact: Conta
let endPointResponse = await endPointQuery(msgAction.actions[1], 'get') let endPointResponse = await endPointQuery(msgAction.actions[1], 'get')
console.log('Object.entries(endPointResponse.data).length: ', Object.entries(endPointResponse.data).length) console.log('Object.entries(endPointResponse.data).length: ', Object.entries(endPointResponse.data).length)
// console.log('endPointResonse.status: ',typeof(endPointResponse.status))
if (endPointResponse && Object.entries(endPointResponse.data).length > 0) { if (endPointResponse && endPointResponse.status == 200 && Object.entries(endPointResponse.data).length > 0) {
// endPointResponse.data.categoria = 'ELOS' // endPointResponse.data.categoria = 'ELOS'
// endPointResponse.data.categoria = 'INFRAESTRUTURA' // endPointResponse.data.categoria = 'INFRAESTRUTURA'
@ -331,7 +332,7 @@ async function sendDelayedMessages(wbot: Session, ticket: Ticket, contact: Conta
if (['id_solicitante', 'centro_custo_departamento', 'departamento_do_formulario', 'centro_de_custo_do_departamento_do_formulario'].includes(response[i][0])) if (['id_solicitante', 'centro_custo_departamento', 'departamento_do_formulario', 'centro_de_custo_do_departamento_do_formulario'].includes(response[i][0]))
continue continue
msg_endpoint_response += `*${response[i][0]}*: ${String(response[i][1]).replace(/(<([^>]+)>)/gi, "")}\n` msg_endpoint_response += `*${response[i][0]}*: ${String(response[i][1]).replace(/(<([^>]+)>)/gi, "")}\n`
} }
@ -450,10 +451,14 @@ async function sendDelayedMessages(wbot: Session, ticket: Ticket, contact: Conta
// } // }
} }
else if (endPointResponse && Object.entries(endPointResponse.data).length == 0) { else if (endPointResponse && endPointResponse.status == 200 && Object.entries(endPointResponse.data).length == 0) {
botSendMessage(ticket, contact, wbot, `Não existe nenhum chamado para consulta com esse número!\n _Digite *0* para voltar ao menu principal._`) botSendMessage(ticket, contact, wbot, `Não existe nenhum chamado para consulta com esse número!\n _Digite *0* para voltar ao menu principal._`)
return return
} }
else if (endPointResponse && endPointResponse.status == 500) {
botSendMessage(ticket, contact, wbot, `Houve um erro ao realizar a consulta no sos espacolaser!\n _Digite *0* para voltar ao menu principal._`)
return
}
else { else {
botSendMessage(ticket, contact, wbot, `Desculpe, nao foi possível realizar a consulta!\n _Digite *0* para voltar ao menu principal._`) botSendMessage(ticket, contact, wbot, `Desculpe, nao foi possível realizar a consulta!\n _Digite *0* para voltar ao menu principal._`)
return return
@ -1081,7 +1086,7 @@ const handleMessage = async (
} }
else if (`${err}`.includes('[object Object]')) { else if (`${err}`.includes('[object Object]')) {
await _restore(whatsapp, 'auto_object_error') await _restore(whatsapp, 'auto_object_error')
} }