novos ajustes para slm hit
parent
6c7bba5a38
commit
864c24381c
|
@ -19,6 +19,7 @@ import CheckIsValidContact from "../services/WbotServices/CheckIsValidContact";
|
|||
import Contact from "../models/Contact";
|
||||
import GetProfilePicUrl from "../services/WbotServices/GetProfilePicUrl";
|
||||
import CreateContactService from "../services/ContactServices/CreateContactService";
|
||||
import { resourceUsage } from "process";
|
||||
|
||||
|
||||
// type IndexQuery = {
|
||||
|
@ -60,7 +61,7 @@ export const hit = async (req: Request, res: Response): Promise<Response> => {
|
|||
if (!validNumber) {
|
||||
return res.status(200).json({ "message": "Ok" });
|
||||
}
|
||||
|
||||
|
||||
|
||||
// let contact = await Contact.findOne({ where: { number: validNumber } });
|
||||
let contact = await Contact.findOne({ where: { number: '5517988325936' } });
|
||||
|
@ -82,8 +83,8 @@ export const hit = async (req: Request, res: Response): Promise<Response> => {
|
|||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
if (req.body['action'] === 'atdfechou') {
|
||||
|
||||
|
@ -95,30 +96,37 @@ export const hit = async (req: Request, res: Response): Promise<Response> => {
|
|||
|
||||
if (contact) {
|
||||
|
||||
let data = req.body
|
||||
let str = ''
|
||||
let str2 = ''
|
||||
|
||||
str = `*Cliente*: ${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'
|
||||
let response: any = await hitPortalMonitoring({ 'params[n_chamado_web]': req.body['n_chamado_web'], })
|
||||
|
||||
if (!response || response.length == 0) {
|
||||
console.log('Empty result from hit portal monitoring. Centro_de_custo: ', req.body['cod_web'])
|
||||
return res.status(200).json({ "message": "Ok" });
|
||||
}
|
||||
|
||||
console.log('--------------> str: ', str)
|
||||
console.log('--------------> str2: ', str2)
|
||||
// let data = req.body
|
||||
// let str = ''
|
||||
// let str2 = ''
|
||||
|
||||
// str = `*Cliente*: ${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')
|
||||
|
||||
|
@ -126,7 +134,9 @@ export const hit = async (req: Request, res: Response): Promise<Response> => {
|
|||
|
||||
if (ticket.id && ticket.status == 'pending') {
|
||||
|
||||
await sendMessageHitMonitoring(`*Olá. Somos o grupo HIT.*\nO chamado da sua loja ${contact.name} foi fechado. Abaixo seguem informações sobre o incidente.\n\n*Situação do chamado*\n\n*Incidente:*\n\n ${str}\n\n*Atualizações*:\n\n${str2}`, ticket);
|
||||
// await sendMessageHitMonitoring(`*Olá. Somos o grupo HIT.*\nO chamado da sua loja ${contact.name} foi fechado. Abaixo seguem informações sobre o incidente.\n\n*Situação do chamado*\n\n*Incidente:*\n\n ${str}\n\n*Atualizações*:\n\n${str2}`, ticket);
|
||||
|
||||
await sendMessageHitMonitoring(response, ticket);
|
||||
|
||||
}
|
||||
else if (!ticket.id) {
|
||||
|
@ -137,8 +147,9 @@ export const hit = async (req: Request, res: Response): Promise<Response> => {
|
|||
|
||||
await UpdateTicketService({ ticketData: { queueId: botInfo.botQueueId }, ticketId: ticket.id });
|
||||
|
||||
await sendMessageHitMonitoring(`*Olá. Somos o grupo HIT.*\nO chamado da sua loja ${contact.name} foi fechado pela operadora. Abaixo seguem informações sobre o incidente.\n\n*Situação do chamado*\n\n*Incidente:*\n\n ${str}\n\n*Atualizações*:\n\n${str2}`, ticket);
|
||||
// await sendMessageHitMonitoring(`*Olá. Somos o grupo HIT.*\nO chamado da sua loja ${contact.name} foi fechado pela operadora. Abaixo seguem informações sobre o incidente.\n\n*Situação do chamado*\n\n*Incidente:*\n\n ${str}\n\n*Atualizações*:\n\n${str2}`, ticket);
|
||||
|
||||
await sendMessageHitMonitoring(response, ticket);
|
||||
|
||||
}
|
||||
|
||||
|
@ -158,7 +169,9 @@ export const hit = async (req: Request, res: Response): Promise<Response> => {
|
|||
|
||||
try {
|
||||
|
||||
let response = await hitPortalMonitoring(req.body['cod_web'])
|
||||
let response: any = await hitPortalMonitoring({ 'params[n_chamado_web]': req.body['n_chamado_web'], })
|
||||
|
||||
console.log('respone: ', response)
|
||||
|
||||
if (!response || response.length == 0) {
|
||||
console.log('Empty result from hit portal monitoring. Centro_de_custo: ', req.body['cod_web'])
|
||||
|
@ -171,7 +184,9 @@ export const hit = async (req: Request, res: Response): Promise<Response> => {
|
|||
|
||||
if (ticket.id && ticket.status == 'pending') {
|
||||
|
||||
await sendMessageHitMonitoring(`*Olá. Somos o grupo HIT.*\nAtualização do chamado para sua loja ${contact.name}. Abaixo seguem informações sobre o incidente para que possam acompanhar.\n\n*Situação do chamado*\n\n*Incidente*:\n\n ${response[0].header}\n${response[0].body}`, ticket);
|
||||
// await sendMessageHitMonitoring(`*Olá. Somos o grupo HIT.*\nAtualização do chamado para sua loja ${contact.name}. Abaixo seguem informações sobre o incidente para que possam acompanhar.\n\n*Situação do chamado*\n\n*Incidente*:\n\n ${response[0].header}\n${response[0].body}`, ticket);
|
||||
|
||||
await sendMessageHitMonitoring(response, ticket);
|
||||
|
||||
}
|
||||
else if (!ticket.id) {
|
||||
|
@ -182,7 +197,9 @@ export const hit = async (req: Request, res: Response): Promise<Response> => {
|
|||
|
||||
await UpdateTicketService({ ticketData: { queueId: botInfo.botQueueId }, ticketId: ticket.id });
|
||||
|
||||
await sendMessageHitMonitoring(`*Olá. Somos o grupo HIT.*\nAtualização do chamado para sua loja ${contact.name}. Abaixo seguem informações sobre o incidente para que possam acompanhar.\n\n*Situação do chamado*\n\n*Incidente*:\n\n ${response[0].header}\n${response[0].body}`, ticket);
|
||||
// await sendMessageHitMonitoring(`*Olá. Somos o grupo HIT.*\nAtualização do chamado para sua loja ${contact.name}. Abaixo seguem informações sobre o incidente para que possam acompanhar.\n\n*Situação do chamado*\n\n*Incidente*:\n\n ${response[0].header}\n${response[0].body}`, ticket);
|
||||
|
||||
await sendMessageHitMonitoring(response, ticket);
|
||||
|
||||
}
|
||||
|
||||
|
@ -198,16 +215,18 @@ export const hit = async (req: Request, res: Response): Promise<Response> => {
|
|||
}
|
||||
else {
|
||||
|
||||
console.log('status: atdatabriu --------------> contact: ', contact)
|
||||
console.log('status: atdatabriu ')
|
||||
|
||||
if (contact) {
|
||||
|
||||
try {
|
||||
|
||||
let response = await hitPortalMonitoring(req.body['cod_web'])
|
||||
let response: any = await hitPortalMonitoring({ 'params[n_chamado_web]': req.body['n_chamado_web'], })
|
||||
|
||||
console.log('response: ', response)
|
||||
|
||||
if (!response || response.length == 0) {
|
||||
console.log('Empty result from hit portal monitoring. Centro_de_custo: ', req.body['cod_web'])
|
||||
console.log('Empty result from hit portal monitoring. n_chamado_web: ', req.body['n_chamado_web'])
|
||||
return res.status(200).json({ "message": "Ok" });
|
||||
}
|
||||
|
||||
|
@ -217,7 +236,9 @@ export const hit = async (req: Request, res: Response): Promise<Response> => {
|
|||
|
||||
if (ticket.id && ticket.status == 'pending') {
|
||||
|
||||
await sendMessageHitMonitoring(`*Olá. Somos o grupo HIT.*\nIdentificamos em nossos monitoramentos que há um problema na internet da sua loja ${contact.name} e já estamos resolvendo. Abaixo seguem informações sobre o incidente para que possam acompanhar.\n\n*Situação do chamado*\n\n*Incidente*:\n\n ${response[0].header}\n${response[0].body}`, ticket);
|
||||
// await sendMessageHitMonitoring(`*Olá. Somos o grupo HIT.*\nIdentificamos em nossos monitoramentos que há um problema na internet da sua loja ${contact.name} e já estamos resolvendo. Abaixo seguem informações sobre o incidente para que possam acompanhar.\n\n*Situação do chamado*\n\n*Incidente*:\n\n ${response[0].header}\n${response[0].body}`, ticket);
|
||||
|
||||
await sendMessageHitMonitoring(response, ticket);
|
||||
|
||||
}
|
||||
else if (!ticket.id) {
|
||||
|
@ -228,7 +249,9 @@ export const hit = async (req: Request, res: Response): Promise<Response> => {
|
|||
|
||||
await UpdateTicketService({ ticketData: { queueId: botInfo.botQueueId }, ticketId: ticket.id });
|
||||
|
||||
await sendMessageHitMonitoring(`*Olá. Somos o grupo HIT.*\nIdentificamos em nossos monitoramentos que há um problema na internet da sua loja ${contact.name} e já estamos resolvendo. Abaixo seguem informações sobre o incidente para que possam acompanhar.\n\n*Situação do chamado*\n\n*Incidente*:\n\n ${response[0].header}\n${response[0].body}`, ticket);
|
||||
// await sendMessageHitMonitoring(`*Olá. Somos o grupo HIT.*\nIdentificamos em nossos monitoramentos que há um problema na internet da sua loja ${contact.name} e já estamos resolvendo. Abaixo seguem informações sobre o incidente para que possam acompanhar.\n\n*Situação do chamado*\n\n*Incidente*:\n\n ${response[0].header}\n${response[0].body}`, ticket);
|
||||
|
||||
await sendMessageHitMonitoring(response, ticket);
|
||||
|
||||
}
|
||||
|
||||
|
@ -253,7 +276,7 @@ export const hit = async (req: Request, res: Response): Promise<Response> => {
|
|||
|
||||
};
|
||||
|
||||
async function sendMessageHitMonitoring(msg: string, ticket: Ticket) {
|
||||
async function sendMessageHitMonitoring(msg: any, ticket: Ticket) {
|
||||
|
||||
if (msg && msg.length > 0) {
|
||||
|
||||
|
|
|
@ -3,7 +3,10 @@ const fs = require('fs')
|
|||
import axios from 'axios';
|
||||
import * as https from "https";
|
||||
|
||||
const endPointQuery = async (url: string, method: string, param: string = '') => {
|
||||
const endPointQuery = async (
|
||||
url: string,
|
||||
method: string,
|
||||
params: object) => {
|
||||
|
||||
let response: any = null
|
||||
|
||||
|
@ -26,14 +29,16 @@ const endPointQuery = async (url: string, method: string, param: string = '') =>
|
|||
|
||||
// const url = 'http://177.107.193.124:8095/labs/zabbix-frontend/api/api.php'
|
||||
|
||||
|
||||
response = await axios.post(url, {
|
||||
let payload = {
|
||||
'auth': '0424bd59b807674191e7d77572075f33',
|
||||
'jsonrpc': '2.0',
|
||||
'method': 'chamado.ematendimento',
|
||||
'params[codweb]': param,
|
||||
'method': 'omnihit.consultachamado',
|
||||
id: '101'
|
||||
}, {
|
||||
}
|
||||
|
||||
payload = {...payload, ...params}
|
||||
|
||||
response = await axios.post(url, payload, {
|
||||
httpsAgent,
|
||||
headers: { 'Content-Type': 'multipart/form-data' },
|
||||
});
|
||||
|
|
|
@ -6,91 +6,102 @@ import endPointQuery from "./EndpointQuery";
|
|||
import WhatsQueueIndex from "./WhatsQueueIndex";
|
||||
|
||||
|
||||
const hitPortalMonitoring = async (centro_de_custo: string) => {
|
||||
const hitPortalMonitoring = async (params: object) => {
|
||||
|
||||
let msg_endpoint: any = []
|
||||
|
||||
let response2 = await endPointQuery('http://177.107.193.124:8095/labs/zabbix-frontend/api/api.php', 'post', centro_de_custo.trim())
|
||||
let response2 = await endPointQuery('http://177.107.193.124:8095/labs/zabbix-frontend/api/api.php', 'post', params)
|
||||
|
||||
console.log('response2: ', response2.data.result)
|
||||
|
||||
if (response2 && response2.data.result) {
|
||||
|
||||
response2 = response2.data.result;
|
||||
|
||||
for (let i = 0; i < response2.length; i++) {
|
||||
|
||||
let data = ''
|
||||
let sub_data = '*Atualizações:*\n\n'
|
||||
|
||||
let properties: any = Object.entries(response2[i]);
|
||||
|
||||
for (let x = 0; x < properties.length; x++) {
|
||||
|
||||
if (typeof (properties[x][1]) != 'object') {
|
||||
|
||||
if (properties[x][0] === 'n_chamado_web') {
|
||||
properties[x][0] = 'Protocolo'
|
||||
}
|
||||
else if (properties[x][0] === 'nome_cliente') {
|
||||
properties[x][0] = 'Nome do cliente'
|
||||
}
|
||||
else if (properties[x][0] === 'quando_inicio') {
|
||||
properties[x][0] = 'Data de abertura'
|
||||
}
|
||||
else if (properties[x][0] === 'nome_filial') {
|
||||
properties[x][0] = 'Nome da filial'
|
||||
}
|
||||
else if (properties[x][0] === 'cod_web') {
|
||||
properties[x][0] = 'Codigo do cliente'
|
||||
}
|
||||
else if (properties[x][0] === 'id' || properties[x][0] === 'cliente_id') {
|
||||
continue
|
||||
}
|
||||
|
||||
data += `*${properties[x][0]}*: ${properties[x][1].replace(/(\r\n|\n|\r)/gm, "")}\n`
|
||||
|
||||
}
|
||||
else if (typeof (properties[x][1]) == 'object') {
|
||||
|
||||
const sub_properties = properties[x][1];
|
||||
|
||||
for (let k = 0; k < sub_properties.length; k++) {
|
||||
|
||||
const inner_properties: any = Object.entries(sub_properties[k]);
|
||||
|
||||
for (let y = 0; y < inner_properties.length; y++) {
|
||||
|
||||
if (inner_properties[y][0] === 'texto') {
|
||||
inner_properties[y][0] = 'Informação'
|
||||
}
|
||||
else if (inner_properties[y][0] === 'quando') {
|
||||
inner_properties[y][0] = 'Data da Informação'
|
||||
}
|
||||
else if (inner_properties[y][0] === 'login') {
|
||||
continue
|
||||
}
|
||||
|
||||
sub_data += `*${inner_properties[y][0]}*: ${inner_properties[y][1].replace(/(\r\n|\n|\r)/gm, "")}\n`
|
||||
|
||||
}
|
||||
|
||||
sub_data += '\n'
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
msg_endpoint.push({ header: data, body: sub_data })
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
else {
|
||||
msg_endpoint = null
|
||||
return response2.data.result
|
||||
} else {
|
||||
return null
|
||||
}
|
||||
|
||||
return msg_endpoint
|
||||
// let msg_endpoint: any = []
|
||||
|
||||
// let response2 = await endPointQuery('http://177.107.193.124:8095/labs/zabbix-frontend/api/api.php', 'post', centro_de_custo.trim())
|
||||
|
||||
// if (response2 && response2.data.result) {
|
||||
|
||||
// response2 = response2.data.result;
|
||||
|
||||
// for (let i = 0; i < response2.length; i++) {
|
||||
|
||||
// let data = ''
|
||||
// let sub_data = '*Atualizações:*\n\n'
|
||||
|
||||
// let properties: any = Object.entries(response2[i]);
|
||||
|
||||
// for (let x = 0; x < properties.length; x++) {
|
||||
|
||||
// if (typeof (properties[x][1]) != 'object') {
|
||||
|
||||
// if (properties[x][0] === 'n_chamado_web') {
|
||||
// properties[x][0] = 'Protocolo'
|
||||
// }
|
||||
// else if (properties[x][0] === 'nome_cliente') {
|
||||
// properties[x][0] = 'Nome do cliente'
|
||||
// }
|
||||
// else if (properties[x][0] === 'quando_inicio') {
|
||||
// properties[x][0] = 'Data de abertura'
|
||||
// }
|
||||
// else if (properties[x][0] === 'nome_filial') {
|
||||
// properties[x][0] = 'Nome da filial'
|
||||
// }
|
||||
// else if (properties[x][0] === 'cod_web') {
|
||||
// properties[x][0] = 'Codigo do cliente'
|
||||
// }
|
||||
// else if (properties[x][0] === 'id' || properties[x][0] === 'cliente_id') {
|
||||
// continue
|
||||
// }
|
||||
|
||||
// data += `*${properties[x][0]}*: ${properties[x][1].replace(/(\r\n|\n|\r)/gm, "")}\n`
|
||||
|
||||
// }
|
||||
// else if (typeof (properties[x][1]) == 'object') {
|
||||
|
||||
// const sub_properties = properties[x][1];
|
||||
|
||||
// for (let k = 0; k < sub_properties.length; k++) {
|
||||
|
||||
// const inner_properties: any = Object.entries(sub_properties[k]);
|
||||
|
||||
// for (let y = 0; y < inner_properties.length; y++) {
|
||||
|
||||
// if (inner_properties[y][0] === 'texto') {
|
||||
// inner_properties[y][0] = 'Informação'
|
||||
// }
|
||||
// else if (inner_properties[y][0] === 'quando') {
|
||||
// inner_properties[y][0] = 'Data da Informação'
|
||||
// }
|
||||
// else if (inner_properties[y][0] === 'login') {
|
||||
// continue
|
||||
// }
|
||||
|
||||
// sub_data += `*${inner_properties[y][0]}*: ${inner_properties[y][1].replace(/(\r\n|\n|\r)/gm, "")}\n`
|
||||
|
||||
// }
|
||||
|
||||
// sub_data += '\n'
|
||||
|
||||
// }
|
||||
|
||||
// }
|
||||
|
||||
// }
|
||||
|
||||
// msg_endpoint.push({ header: data, body: sub_data })
|
||||
|
||||
// }
|
||||
|
||||
// }
|
||||
// else {
|
||||
// msg_endpoint = null
|
||||
// }
|
||||
|
||||
// return msg_endpoint
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -71,6 +71,7 @@ import sendWhatsAppMessageSocket from "../../helpers/SendWhatsappMessageSocket";
|
|||
import { getWhatsappIds, setWhatsappId } from "../../helpers/WhatsappIdMultiSessionControl";
|
||||
import SendWhatsAppMedia from "./SendWhatsAppMedia";
|
||||
import AppError from "../../errors/AppError";
|
||||
import hitPortalMonitoring from "../../helpers/HitPortalMonitoring";
|
||||
|
||||
|
||||
|
||||
|
@ -221,7 +222,7 @@ const queryEndPointHit = async (centro_de_custo: string) => {
|
|||
|
||||
let msg_endpoint: any = []
|
||||
|
||||
let response2 = await endPointQuery('http://177.107.193.124:8095/labs/zabbix-frontend/api/api.php', 'post', centro_de_custo.trim())
|
||||
let response2 = await endPointQuery('http://177.107.193.124:8095/labs/zabbix-frontend/api/api.php', 'post', { 'params[cod_web]': centro_de_custo.trim(), })
|
||||
|
||||
if (response2 && response2.data.result) {
|
||||
|
||||
|
@ -382,22 +383,33 @@ async function sendDelayedMessages(wbot: Session, ticket: Ticket, contact: Conta
|
|||
cod_web = aux[aux.length - 1]
|
||||
}
|
||||
|
||||
// let url = msgAction.actions[1].replace(/\.php.*/, '.php')
|
||||
let params = msgAction.actions[1].split('api.php')[1].slice(1).split('/')
|
||||
|
||||
let msg_endpoint2 = await queryEndPointHit(String(cod_web))
|
||||
let url = msgAction.actions[1].replace(/\.php.*/, '.php')
|
||||
|
||||
let response: any = null
|
||||
|
||||
if (msg_endpoint2 && msg_endpoint2.length == 0) {
|
||||
if (params[0] === 'cod_web') {
|
||||
|
||||
response = await hitPortalMonitoring({ 'params[cod_web]': params[1], })
|
||||
|
||||
}
|
||||
else if (params[0] === 'n_chamado_web') {
|
||||
|
||||
response = await hitPortalMonitoring({ 'params[n_chamado_web]': params[1], })
|
||||
|
||||
}
|
||||
|
||||
if (response && response.trim() == 0) {
|
||||
botSendMessage(ticket, contact, wbot, `Não existe nenhum chamado para essa consulta!\n _Digite *0* para voltar ao menu principal._`)
|
||||
}
|
||||
else if (msg_endpoint2 && msg_endpoint2.length > 0) {
|
||||
await monitoramento_response2(msg_endpoint2, wbot, contact, ticket, cod_web, '\n\n', false)
|
||||
else if (response && response.trim().length > 0) {
|
||||
await SendWhatsAppMessage({ body: response, ticket });
|
||||
}
|
||||
else {
|
||||
botSendMessage(ticket, contact, wbot, `Houve um erro ao realizar a consulta!\n _Digite *0* para voltar ao menu principal._`)
|
||||
}
|
||||
|
||||
|
||||
} else if (msgAction.actions[0] == 'queue_transfer') {
|
||||
|
||||
console.log('>>>>>>>>>>>>>>> msgAction: ', msgAction, ' | msgAction.actions[1]: ', msgAction.actions[1])
|
||||
|
|
Loading…
Reference in New Issue