adição de documentação dos endpoints para integração com SLM
parent
280c006d02
commit
5203ad0d23
|
@ -18,7 +18,7 @@
|
||||||
"@google-cloud/dialogflow": "^4.6.0",
|
"@google-cloud/dialogflow": "^4.6.0",
|
||||||
"@sentry/node": "^5.29.2",
|
"@sentry/node": "^5.29.2",
|
||||||
"@types/pino": "^6.3.4",
|
"@types/pino": "^6.3.4",
|
||||||
"actions-on-google": "^3.0.0",
|
"actions-on-google": "^3.0.0",
|
||||||
"axios": "^1.2.3",
|
"axios": "^1.2.3",
|
||||||
"bcryptjs": "^2.4.3",
|
"bcryptjs": "^2.4.3",
|
||||||
"cookie-parser": "^1.4.5",
|
"cookie-parser": "^1.4.5",
|
||||||
|
@ -46,8 +46,10 @@
|
||||||
"sequelize-typescript": "^1.1.0",
|
"sequelize-typescript": "^1.1.0",
|
||||||
"socket.io": "^3.0.5",
|
"socket.io": "^3.0.5",
|
||||||
"socket.io-client": "^4.5.4",
|
"socket.io-client": "^4.5.4",
|
||||||
|
"swagger-ui-express": "^5.0.0",
|
||||||
"uuid": "^8.3.2",
|
"uuid": "^8.3.2",
|
||||||
"whatsapp-web.js": "github:pedroslopez/whatsapp-web.js",
|
"whatsapp-web.js": "github:pedroslopez/whatsapp-web.js",
|
||||||
|
"yamljs": "^0.3.0",
|
||||||
"yup": "^0.32.8"
|
"yup": "^0.32.8"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
|
|
@ -10,7 +10,12 @@ import "./database";
|
||||||
import uploadConfig from "./config/upload";
|
import uploadConfig from "./config/upload";
|
||||||
import AppError from "./errors/AppError";
|
import AppError from "./errors/AppError";
|
||||||
import routes from "./routes";
|
import routes from "./routes";
|
||||||
import { logger } from "./utils/logger";
|
import { logger } from "./utils/logger";
|
||||||
|
|
||||||
|
// Swagger SLM
|
||||||
|
const swaggerUI = require("swagger-ui-express");
|
||||||
|
const YAML = require("yamljs");
|
||||||
|
const swaggerDocument = YAML.load("./swagger.yaml");
|
||||||
|
|
||||||
Sentry.init({ dsn: process.env.SENTRY_DSN });
|
Sentry.init({ dsn: process.env.SENTRY_DSN });
|
||||||
|
|
||||||
|
@ -26,6 +31,13 @@ app.use(cookieParser());
|
||||||
app.use(express.json());
|
app.use(express.json());
|
||||||
app.use(Sentry.Handlers.requestHandler());
|
app.use(Sentry.Handlers.requestHandler());
|
||||||
app.use("/public", express.static(uploadConfig.directory));
|
app.use("/public", express.static(uploadConfig.directory));
|
||||||
|
|
||||||
|
app.get("/", (req: Request, res: Response) => {
|
||||||
|
res.send('<h1>SLM/OMNIHIT api</h1><a href="/api-docs">Documentation</a>');
|
||||||
|
});
|
||||||
|
|
||||||
|
app.use("/api-docs", swaggerUI.serve, swaggerUI.setup(swaggerDocument));
|
||||||
|
|
||||||
app.use(routes);
|
app.use(routes);
|
||||||
|
|
||||||
app.use(Sentry.Handlers.errorHandler());
|
app.use(Sentry.Handlers.errorHandler());
|
||||||
|
@ -39,6 +51,5 @@ app.use(async (err: Error, req: Request, res: Response, _: NextFunction) => {
|
||||||
logger.error(err);
|
logger.error(err);
|
||||||
return res.status(500).json({ error: "Internal server error" });
|
return res.status(500).json({ error: "Internal server error" });
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
export default app;
|
export default app;
|
||||||
|
|
|
@ -14,7 +14,10 @@ import SendWhatsAppMessage from "../services/WbotServices/SendWhatsAppMessage";
|
||||||
import { Op, where, Sequelize } from "sequelize";
|
import { Op, where, Sequelize } from "sequelize";
|
||||||
import ShowTicketServiceByContactId from "../services/TicketServices/ShowTicketServiceByContactId";
|
import ShowTicketServiceByContactId from "../services/TicketServices/ShowTicketServiceByContactId";
|
||||||
import hitPortalMonitoring from "../helpers/HitPortalMonitoring";
|
import hitPortalMonitoring from "../helpers/HitPortalMonitoring";
|
||||||
import { sendDialogflowAwswer, verifyContact } from "../services/WbotServices/wbotMessageListener";
|
import {
|
||||||
|
sendDialogflowAwswer,
|
||||||
|
verifyContact
|
||||||
|
} from "../services/WbotServices/wbotMessageListener";
|
||||||
import CheckIsValidContact from "../services/WbotServices/CheckIsValidContact";
|
import CheckIsValidContact from "../services/WbotServices/CheckIsValidContact";
|
||||||
import Contact from "../models/Contact";
|
import Contact from "../models/Contact";
|
||||||
import GetProfilePicUrl from "../services/WbotServices/GetProfilePicUrl";
|
import GetProfilePicUrl from "../services/WbotServices/GetProfilePicUrl";
|
||||||
|
@ -25,62 +28,59 @@ import ShowQuickAnswerService from "../services/QuickAnswerService/ShowQuickAnsw
|
||||||
import ShowQueryItemService from "../services/SLM/ShowQueryItemService";
|
import ShowQueryItemService from "../services/SLM/ShowQueryItemService";
|
||||||
import QueryItem from "../models/QueryItem";
|
import QueryItem from "../models/QueryItem";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// type IndexQuery = {
|
// type IndexQuery = {
|
||||||
// cod_web: string;
|
// cod_web: string;
|
||||||
// };
|
// };
|
||||||
|
|
||||||
|
// export const index = async (req: Request, res: Response): Promise<Response> => {}
|
||||||
|
|
||||||
export const hit = async (req: Request, res: Response): Promise<Response> => {
|
export const hit = async (req: Request, res: Response): Promise<Response> => {
|
||||||
|
|
||||||
// const {
|
// const {
|
||||||
// cod_web,
|
// cod_web,
|
||||||
// } = req.body as IndexQuery;
|
// } = req.body as IndexQuery;
|
||||||
|
|
||||||
console.log('req.boy: ', req.body)
|
console.log("req.boy: ", req.body);
|
||||||
console.log("req.body['cod_web']: ", req.body['cod_web'])
|
console.log("req.body['cod_web']: ", req.body["cod_web"]);
|
||||||
console.log("req.body['action']: ", req.body['action'])
|
console.log("req.body['action']: ", req.body["action"]);
|
||||||
console.log("req.body['phone']: ", req.body['phone'])
|
console.log("req.body['phone']: ", req.body["phone"]);
|
||||||
console.log("req.body['name']: ", req.body['name'])
|
console.log("req.body['name']: ", req.body["name"]);
|
||||||
console.log("req.body['mensagem']: ", req.body['mensagem'])
|
console.log("req.body['mensagem']: ", req.body["mensagem"]);
|
||||||
|
|
||||||
|
if (req.headers["auth"] === "0424bd59b807674191e7d77572075f33") {
|
||||||
|
let phone = req.body["phone"];
|
||||||
|
let name = req.body["name"];
|
||||||
|
|
||||||
if (req.headers["auth"] === '0424bd59b807674191e7d77572075f33') {
|
if (!phone) return res.status(200).json({ message: "Ok" });
|
||||||
|
|
||||||
let phone = req.body['phone']
|
|
||||||
let name = req.body['name']
|
|
||||||
|
|
||||||
if (!phone) return res.status(200).json({ "message": "Ok" });
|
|
||||||
|
|
||||||
const regex = /^55/;
|
const regex = /^55/;
|
||||||
|
|
||||||
phone = phone.match(/\d+/g).join('');
|
phone = phone.match(/\d+/g).join("");
|
||||||
|
|
||||||
if (!regex.test(phone)) {
|
if (!regex.test(phone)) {
|
||||||
phone = '55' + phone;
|
phone = "55" + phone;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (phone.length < 7) return res.status(200).json({ "message": "Ok" });
|
if (phone.length < 7) return res.status(200).json({ message: "Ok" });
|
||||||
|
|
||||||
let validNumber = await CheckIsValidContact(phone);
|
let validNumber = await CheckIsValidContact(phone);
|
||||||
|
|
||||||
if (!validNumber) {
|
if (!validNumber) {
|
||||||
return res.status(200).json({ "message": "Ok" });
|
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: validNumber } });
|
||||||
// let contact = await Contact.findOne({ where: { number: '5517988325936' } });
|
// let contact = await Contact.findOne({ where: { number: '5517988325936' } });
|
||||||
|
|
||||||
if (!contact) {
|
if (!contact) {
|
||||||
|
|
||||||
const profilePicUrl = await GetProfilePicUrl(validNumber);
|
const profilePicUrl = await GetProfilePicUrl(validNumber);
|
||||||
|
|
||||||
contact = await CreateContactService({
|
contact = await CreateContactService({
|
||||||
name: name || phone,
|
name: name || phone,
|
||||||
number: validNumber,
|
number: validNumber,
|
||||||
profilePicUrl: profilePicUrl,
|
profilePicUrl: profilePicUrl
|
||||||
});
|
});
|
||||||
|
|
||||||
const io = getIO();
|
const io = getIO();
|
||||||
|
@ -88,149 +88,164 @@ export const hit = async (req: Request, res: Response): Promise<Response> => {
|
||||||
action: "create",
|
action: "create",
|
||||||
contact
|
contact
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 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 = `*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 = ''
|
let response: any = "";
|
||||||
|
|
||||||
if (['atdabriu', 'atdatualizou'].includes(req.body['action'])) {
|
if (["atdabriu", "atdatualizou"].includes(req.body["action"])) {
|
||||||
response = await hitPortalMonitoring({
|
response = await hitPortalMonitoring({
|
||||||
'params[n_chamado_web]': req.body['n_chamado_web'],
|
"params[n_chamado_web]": req.body["n_chamado_web"],
|
||||||
'method': 'omnihit.consultachamado',
|
method: "omnihit.consultachamado"
|
||||||
})
|
});
|
||||||
|
} else {
|
||||||
|
response = req.body["mensagem"];
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
response = req.body['mensagem']
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (!response || response.length == 0 || !contact) {
|
if (!response || response.length == 0 || !contact) {
|
||||||
console.log('Empty result from hit portal monitoring to n_chamado_web: ', req.body['n_chamado_web'])
|
console.log(
|
||||||
return res.status(200).json({ "message": "Ok" });
|
"Empty result from hit portal monitoring to n_chamado_web: ",
|
||||||
|
req.body["n_chamado_web"]
|
||||||
|
);
|
||||||
|
return res.status(200).json({ message: "Ok" });
|
||||||
}
|
}
|
||||||
|
|
||||||
const botInfo = await BotIsOnQueue('botqueue')
|
const botInfo = await BotIsOnQueue("botqueue");
|
||||||
|
|
||||||
let ticket: any = await ShowTicketServiceByContactId(contact.id)
|
let ticket: any = await ShowTicketServiceByContactId(contact.id);
|
||||||
|
|
||||||
if (!ticket.dataValues.id) {
|
if (!ticket.dataValues.id) {
|
||||||
|
|
||||||
const defaultWhatsapp = await GetDefaultWhatsApp();
|
const defaultWhatsapp = await GetDefaultWhatsApp();
|
||||||
|
|
||||||
let ticket_obj: any = await FindOrCreateTicketServiceBot(
|
let ticket_obj: any = await FindOrCreateTicketServiceBot(
|
||||||
contact,
|
contact,
|
||||||
defaultWhatsapp.id!,
|
defaultWhatsapp.id!,
|
||||||
0,
|
0
|
||||||
);
|
);
|
||||||
|
|
||||||
ticket = ticket_obj.ticket
|
ticket = ticket_obj.ticket;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ticket.id && ticket.status == "pending") {
|
||||||
if (ticket.id && ticket.status == 'pending') {
|
|
||||||
|
|
||||||
await sendMessageHitMonitoring(response, ticket);
|
await sendMessageHitMonitoring(response, ticket);
|
||||||
|
|
||||||
await sendMessageInsertInfoSLM(req, ticket, ['atdabriu', 'atdatualizou'], contact.id);
|
await sendMessageInsertInfoSLM(
|
||||||
|
req,
|
||||||
}
|
ticket,
|
||||||
else if (ticket.id && ticket.userId == botInfo.userIdBot) {
|
["atdabriu", "atdatualizou"],
|
||||||
|
contact.id
|
||||||
|
);
|
||||||
|
} else if (ticket.id && ticket.userId == botInfo.userIdBot) {
|
||||||
let queue = await ShowQueueService(botInfo.botQueueId);
|
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' }
|
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 sendMessageHitMonitoring(response, ticket);
|
||||||
|
|
||||||
await sendMessageInsertInfoSLM(req, ticket, ['atdabriu', 'atdatualizou'], contact.id);
|
await sendMessageInsertInfoSLM(
|
||||||
|
req,
|
||||||
|
ticket,
|
||||||
|
["atdabriu", "atdatualizou"],
|
||||||
|
contact.id
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
return res.status(401).json({ message: "Token Inválido!" });
|
||||||
return res.status(401).json({ "message": "Token Inválido!" });
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return res.status(200).json({ message: "Ok" });
|
||||||
return res.status(200).json({ "message": "Ok" });
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
async function sendMessageInsertInfoSLM(req: Request, ticket: any, params: any[], contactId: number) {
|
async function sendMessageInsertInfoSLM(
|
||||||
|
req: Request,
|
||||||
|
ticket: any,
|
||||||
|
params: any[],
|
||||||
|
contactId: number
|
||||||
|
) {
|
||||||
const insert_protocol_info: QueryItem = await ShowQueryItemService({
|
const insert_protocol_info: QueryItem = await ShowQueryItemService({
|
||||||
contactId,
|
contactId,
|
||||||
name: 'insert_protocol_info'
|
name: "insert_protocol_info"
|
||||||
})
|
});
|
||||||
|
|
||||||
const n_chamado_web: QueryItem = await ShowQueryItemService({
|
const n_chamado_web: QueryItem = await ShowQueryItemService({
|
||||||
contactId,
|
contactId,
|
||||||
name: 'n_chamado_web'
|
name: "n_chamado_web"
|
||||||
})
|
});
|
||||||
|
|
||||||
await new Promise(f => setTimeout(f, 2000));
|
await new Promise(f => setTimeout(f, 2000));
|
||||||
|
|
||||||
if (params.includes(req.body['action'])) {
|
if (params.includes(req.body["action"])) {
|
||||||
|
if (
|
||||||
if (insert_protocol_info &&
|
insert_protocol_info &&
|
||||||
insert_protocol_info?.status &&
|
insert_protocol_info?.status &&
|
||||||
n_chamado_web?.queryItem) {
|
n_chamado_web?.queryItem
|
||||||
|
) {
|
||||||
await sendMessageHitMonitoring(`🔄 Houve uma atualização no chamado acima`, ticket);
|
await sendMessageHitMonitoring(
|
||||||
|
`🔄 Houve uma atualização no chamado acima`,
|
||||||
|
ticket
|
||||||
|
);
|
||||||
|
|
||||||
await new Promise(f => setTimeout(f, 1000));
|
await new Promise(f => setTimeout(f, 1000));
|
||||||
|
|
||||||
await sendMessageHitMonitoring(`✅ Protocolo *${n_chamado_web?.queryItem}* validado, digite a informação que deseja adicionar.`, ticket);
|
await sendMessageHitMonitoring(
|
||||||
|
`✅ Protocolo *${n_chamado_web?.queryItem}* validado, digite a informação que deseja adicionar.`,
|
||||||
}
|
ticket
|
||||||
else {
|
);
|
||||||
|
} else {
|
||||||
// await new Promise(f => setTimeout(f, 1000));
|
// await new Promise(f => setTimeout(f, 1000));
|
||||||
|
|
||||||
await sendMessageHitMonitoring(`Se deseja adicionar alguma informação ao protocolo acima, digite 2.`, ticket);
|
await sendMessageHitMonitoring(
|
||||||
|
`Se deseja adicionar alguma informação ao protocolo acima, digite 2.`,
|
||||||
|
ticket
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
} else if (req.body["action"] == "atdfechou") {
|
||||||
|
if (
|
||||||
}
|
insert_protocol_info &&
|
||||||
else if (req.body['action'] == 'atdfechou') {
|
|
||||||
|
|
||||||
if (insert_protocol_info &&
|
|
||||||
insert_protocol_info?.status &&
|
insert_protocol_info?.status &&
|
||||||
n_chamado_web?.queryItem) {
|
n_chamado_web?.queryItem
|
||||||
|
) {
|
||||||
if (req.body['n_chamado_web'] &&
|
if (
|
||||||
req.body['n_chamado_web'].trim() == n_chamado_web?.queryItem) {
|
req.body["n_chamado_web"] &&
|
||||||
|
req.body["n_chamado_web"].trim() == n_chamado_web?.queryItem
|
||||||
insert_protocol_info.update({ status: false })
|
) {
|
||||||
|
insert_protocol_info.update({ status: false });
|
||||||
|
|
||||||
await new Promise(f => setTimeout(f, 1000));
|
await new Promise(f => setTimeout(f, 1000));
|
||||||
|
|
||||||
await sendMessageHitMonitoring(`O Protocolo *${n_chamado_web?.queryItem}* foi encerrado. Não é mais possível adicionar informação. Se desejar consultar o historico digite 1`, ticket);
|
await sendMessageHitMonitoring(
|
||||||
|
`O Protocolo *${n_chamado_web?.queryItem}* foi encerrado. Não é mais possível adicionar informação. Se desejar consultar o historico digite 1`,
|
||||||
|
ticket
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async function sendMessageHitMonitoring(msg: any, ticket: Ticket) {
|
async function sendMessageHitMonitoring(msg: any, ticket: Ticket) {
|
||||||
|
|
||||||
if (msg && msg.length > 0) {
|
if (msg && msg.length > 0) {
|
||||||
|
console.log("MESSAGE WILL BE SENT!");
|
||||||
console.log('MESSAGE WILL BE SENT!')
|
|
||||||
|
|
||||||
await SendWhatsAppMessage({ body: msg, ticket });
|
await SendWhatsAppMessage({ body: msg, ticket });
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,435 @@
|
||||||
|
openapi: 3.0.0
|
||||||
|
info:
|
||||||
|
title: SLM-OMNIHIT-INTEGRATION
|
||||||
|
description: This API describes the endpoints and parameters to integrate the omnihit application with the SLM from hit telecommunications.
|
||||||
|
contact: {}
|
||||||
|
version: "1.0"
|
||||||
|
servers:
|
||||||
|
- url: http://177.107.192.247:8095/labs/monitoramentohit/api/api.php
|
||||||
|
variables: {}
|
||||||
|
- url: http://172.31.187.4:8080/omnihit/incidente
|
||||||
|
variables: {}
|
||||||
|
paths:
|
||||||
|
/labs/monitoramentohit/api/api.php consultachamadostatus:
|
||||||
|
post:
|
||||||
|
tags:
|
||||||
|
- SLM
|
||||||
|
summary: Consulta status do chamado
|
||||||
|
description: Consulta status do chamado
|
||||||
|
operationId: Consultastatusdochamado
|
||||||
|
parameters: []
|
||||||
|
requestBody:
|
||||||
|
content:
|
||||||
|
application/x-www-form-urlencoded:
|
||||||
|
encoding: {}
|
||||||
|
schema:
|
||||||
|
required:
|
||||||
|
- auth
|
||||||
|
- jsonrpc
|
||||||
|
- method
|
||||||
|
- id
|
||||||
|
- params[n_chamado_web]
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
auth:
|
||||||
|
type: string
|
||||||
|
example: 0123ce68c916783282f6c66451164g22
|
||||||
|
jsonrpc:
|
||||||
|
type: number
|
||||||
|
format: double
|
||||||
|
example: 2
|
||||||
|
method:
|
||||||
|
type: string
|
||||||
|
example: omnihit.consultachamadostatus
|
||||||
|
id:
|
||||||
|
type: integer
|
||||||
|
format: int32
|
||||||
|
example: 101
|
||||||
|
params[n_chamado_web]:
|
||||||
|
type: string
|
||||||
|
example: 200-322094
|
||||||
|
required: false
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: ""
|
||||||
|
headers: {}
|
||||||
|
content:
|
||||||
|
text/plain:
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example:
|
||||||
|
jsonrpc: "2.0"
|
||||||
|
result: close
|
||||||
|
id: "101"
|
||||||
|
example:
|
||||||
|
jsonrpc: "2.0"
|
||||||
|
result: close
|
||||||
|
id: "101"
|
||||||
|
deprecated: false
|
||||||
|
security: []
|
||||||
|
servers:
|
||||||
|
- url: http://177.107.192.247:8095/labs/monitoramentohit/api/api.php
|
||||||
|
variables: {}
|
||||||
|
/labs/monitoramentohit/api/api.php consultachamado:
|
||||||
|
post:
|
||||||
|
tags:
|
||||||
|
- SLM
|
||||||
|
summary: Consulta chamado
|
||||||
|
description: Consulta chamado
|
||||||
|
operationId: Consultachamado
|
||||||
|
parameters: []
|
||||||
|
requestBody:
|
||||||
|
content:
|
||||||
|
application/x-www-form-urlencoded:
|
||||||
|
encoding: {}
|
||||||
|
schema:
|
||||||
|
required:
|
||||||
|
- jsonrpc
|
||||||
|
- method
|
||||||
|
- id
|
||||||
|
- params[n_chamado_web]
|
||||||
|
- auth
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
jsonrpc:
|
||||||
|
type: number
|
||||||
|
format: double
|
||||||
|
example: 2
|
||||||
|
method:
|
||||||
|
type: string
|
||||||
|
example: omnihit.consultachamado
|
||||||
|
id:
|
||||||
|
type: integer
|
||||||
|
format: int32
|
||||||
|
example: 101
|
||||||
|
params[n_chamado_web]:
|
||||||
|
type: string
|
||||||
|
example: 200-323882
|
||||||
|
auth:
|
||||||
|
type: string
|
||||||
|
example: 0123ce68c916783282f6c66451164g22
|
||||||
|
required: false
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: ""
|
||||||
|
headers: {}
|
||||||
|
content:
|
||||||
|
text/plain:
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example:
|
||||||
|
jsonrpc: "2.0"
|
||||||
|
result: "Olá! Sou o atendente Inteligente do grupo HIT! \U0001F916\r\nEspero que você esteja bem. Estou aqui para mantê-lo atualizado sobre o chamado referente à unidade 0001 - Hit World Teste. Meu objetivo é garantir que você esteja plenamente informado sobre o incidente e possa acompanhar todos os detalhes de perto. ❗\r\n\r\n*Protocolo:* 200-323882\r\n*Data de abertura:* 17/07/2023 16:38:08\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 Felipe Ribeiro 16:37\r\n*Contato:* Felipe Ribeiro *Telefone:* 17988310949\r\n*Data de abertura:* 17/07/2023 16:38:08\r\n\r\n*Status do Chamado:* Aguardando\r\n*Atualização do chamado pelo cliente:* Este é um teste de integração SLM X WA para o Adriano 16:41h\r\n*Data da atualização:* 17/07/2023 16:41:21\r\n\r\n*Status do Chamado:* Em Atendimento\r\n*Atualização do chamado pela HIT:* Este é um teste de integração do SLM X WA do Alan Oliveira\r\n*Data da atualização:* 17/07/2023 16:43:28\r\n\r\n*Status do Chamado:* Fechado\r\n*Atualização do chamado pela HIT:* Teste de integração SLM X WA realizado com sucesso por Alan e Adriano 16:45h\r\n*Status de Encerramento:* Chamado concluído\r\n*Data do encerramento:* 17/07/2023 16:45:17\r\n"
|
||||||
|
id: "101"
|
||||||
|
example:
|
||||||
|
jsonrpc: "2.0"
|
||||||
|
result: "Olá! Sou o atendente Inteligente do grupo HIT! \U0001F916\r\nEspero que você esteja bem. Estou aqui para mantê-lo atualizado sobre o chamado referente à unidade 0001 - Hit World Teste. Meu objetivo é garantir que você esteja plenamente informado sobre o incidente e possa acompanhar todos os detalhes de perto. ❗\r\n\r\n*Protocolo:* 200-323882\r\n*Data de abertura:* 17/07/2023 16:38:08\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 Felipe Ribeiro 16:37\r\n*Contato:* Felipe Ribeiro *Telefone:* 17988310949\r\n*Data de abertura:* 17/07/2023 16:38:08\r\n\r\n*Status do Chamado:* Aguardando\r\n*Atualização do chamado pelo cliente:* Este é um teste de integração SLM X WA para o Adriano 16:41h\r\n*Data da atualização:* 17/07/2023 16:41:21\r\n\r\n*Status do Chamado:* Em Atendimento\r\n*Atualização do chamado pela HIT:* Este é um teste de integração do SLM X WA do Alan Oliveira\r\n*Data da atualização:* 17/07/2023 16:43:28\r\n\r\n*Status do Chamado:* Fechado\r\n*Atualização do chamado pela HIT:* Teste de integração SLM X WA realizado com sucesso por Alan e Adriano 16:45h\r\n*Status de Encerramento:* Chamado concluído\r\n*Data do encerramento:* 17/07/2023 16:45:17\r\n"
|
||||||
|
id: "101"
|
||||||
|
deprecated: false
|
||||||
|
security: []
|
||||||
|
servers:
|
||||||
|
- url: http://177.107.192.247:8095/labs/monitoramentohit/api/api.php
|
||||||
|
variables: {}
|
||||||
|
/labs/monitoramentohit/api/api.php chamadoaddobs:
|
||||||
|
post:
|
||||||
|
tags:
|
||||||
|
- SLM
|
||||||
|
summary: Insere info SLM
|
||||||
|
description: Insere info SLM
|
||||||
|
operationId: InsereinfoSLM
|
||||||
|
parameters: []
|
||||||
|
requestBody:
|
||||||
|
content:
|
||||||
|
application/x-www-form-urlencoded:
|
||||||
|
encoding: {}
|
||||||
|
schema:
|
||||||
|
required:
|
||||||
|
- auth
|
||||||
|
- jsonrpc
|
||||||
|
- method
|
||||||
|
- id
|
||||||
|
- params[n_chamado_web]
|
||||||
|
- params[obs]
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
auth:
|
||||||
|
type: string
|
||||||
|
example: 0424bd59b807674191e7d77572075f33
|
||||||
|
jsonrpc:
|
||||||
|
type: number
|
||||||
|
format: double
|
||||||
|
example: 2
|
||||||
|
method:
|
||||||
|
type: string
|
||||||
|
example: omnihit.chamadoaddobs
|
||||||
|
id:
|
||||||
|
type: integer
|
||||||
|
format: int32
|
||||||
|
example: 101
|
||||||
|
params[n_chamado_web]:
|
||||||
|
type: string
|
||||||
|
example: 200-324398
|
||||||
|
params[obs]:
|
||||||
|
type: string
|
||||||
|
example: O tecnico já esta na unidade para prestar o suporte necessario.
|
||||||
|
required: false
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: ""
|
||||||
|
headers: {}
|
||||||
|
content:
|
||||||
|
text/plain:
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example:
|
||||||
|
jsonrpc: "2.0"
|
||||||
|
result: Informação adicionada com sucesso.
|
||||||
|
id: "101"
|
||||||
|
example:
|
||||||
|
jsonrpc: "2.0"
|
||||||
|
result: Informação adicionada com sucesso.
|
||||||
|
id: "101"
|
||||||
|
deprecated: false
|
||||||
|
security: []
|
||||||
|
servers:
|
||||||
|
- url: http://177.107.192.247:8095/labs/monitoramentohit/api/api.php
|
||||||
|
variables: {}
|
||||||
|
/omnihit/incidente atdfechou:
|
||||||
|
post:
|
||||||
|
tags:
|
||||||
|
- OMNIHIT
|
||||||
|
summary: Webhook omnihit fechamento do chamado
|
||||||
|
operationId: Webhookomnihitfechamentodochamado
|
||||||
|
parameters:
|
||||||
|
- name: auth
|
||||||
|
in: header
|
||||||
|
description: ""
|
||||||
|
required: true
|
||||||
|
style: simple
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example: 0424bd59b807674191e7d77572075f33
|
||||||
|
requestBody:
|
||||||
|
description: ""
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- $ref: "#/components/schemas/WebhookomnihitfechamentodochamadoRequest"
|
||||||
|
- example:
|
||||||
|
n_chamado_web: 200-323934
|
||||||
|
action: atdfechou
|
||||||
|
phone: +55 17 988310949
|
||||||
|
name: ADRIANO TESTE
|
||||||
|
mensagem: "*Olá!*\r\n\r\n*Sou o atendente Inteligente do grupo HIT Communications! \U0001F916*\r\n\r\nGostaria de informar que o chamado referente à unidade 0001 - Hit World Teste foi encerrado. Estou à disposição para qualquer outra assistência através do mesmo número, na opção 4 - Suporte Técnico, ou em qualquer outro setor. A equipe da HIT Communications está pronta para auxiliá-lo em qualquer situação. \U0001F9E1\r\n\r\n*Protocolo:* 200-323882\r\n*Data de abertura:* 17/07/2023 16:38:08\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 Felipe Ribeiro 16:37\r\n*Contato:* Felipe Ribeiro *Telefone:* 17988310949\r\n*Data de abertura:* 17/07/2023 16:38:08\r\n\r\n*Status do Chamado:* Aguardando\r\n*Atualização do chamado pelo cliente:* Este é um teste de integração SLM X WA para o Adriano 16:41h\r\n*Data da atualização:* 17/07/2023 16:41:21\r\n\r\n*Status do Chamado:* Em Atendimento\r\n*Atualização do chamado pela HIT:* Este é um teste de integração do SLM X WA do Alan Oliveira\r\n*Data da atualização:* 17/07/2023 16:43:28\r\n\r\n*Status do Chamado:* Fechado\r\n*Atualização do chamado pela HIT:* Teste de integração SLM X WA realizado com sucesso por Alan e Adriano 16:45h\r\n*Status de Encerramento:* Chamado concluído\r\n*Data do encerramento:* 17/07/2023 16:45:17\r\n\r\n\r\n"
|
||||||
|
example:
|
||||||
|
n_chamado_web: 200-323934
|
||||||
|
action: atdfechou
|
||||||
|
phone: +55 17 988310949
|
||||||
|
name: ADRIANO TESTE
|
||||||
|
mensagem: "*Olá!*\r\n\r\n*Sou o atendente Inteligente do grupo HIT Communications! \U0001F916*\r\n\r\nGostaria de informar que o chamado referente à unidade 0001 - Hit World Teste foi encerrado. Estou à disposição para qualquer outra assistência através do mesmo número, na opção 4 - Suporte Técnico, ou em qualquer outro setor. A equipe da HIT Communications está pronta para auxiliá-lo em qualquer situação. \U0001F9E1\r\n\r\n*Protocolo:* 200-323882\r\n*Data de abertura:* 17/07/2023 16:38:08\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 Felipe Ribeiro 16:37\r\n*Contato:* Felipe Ribeiro *Telefone:* 17988310949\r\n*Data de abertura:* 17/07/2023 16:38:08\r\n\r\n*Status do Chamado:* Aguardando\r\n*Atualização do chamado pelo cliente:* Este é um teste de integração SLM X WA para o Adriano 16:41h\r\n*Data da atualização:* 17/07/2023 16:41:21\r\n\r\n*Status do Chamado:* Em Atendimento\r\n*Atualização do chamado pela HIT:* Este é um teste de integração do SLM X WA do Alan Oliveira\r\n*Data da atualização:* 17/07/2023 16:43:28\r\n\r\n*Status do Chamado:* Fechado\r\n*Atualização do chamado pela HIT:* Teste de integração SLM X WA realizado com sucesso por Alan e Adriano 16:45h\r\n*Status de Encerramento:* Chamado concluído\r\n*Data do encerramento:* 17/07/2023 16:45:17\r\n\r\n\r\n"
|
||||||
|
required: true
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: ""
|
||||||
|
headers: {}
|
||||||
|
content:
|
||||||
|
text/plain:
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example:
|
||||||
|
message: Ok
|
||||||
|
example:
|
||||||
|
message: Ok
|
||||||
|
deprecated: false
|
||||||
|
security: []
|
||||||
|
servers:
|
||||||
|
- url: http://172.31.187.4:8080/omnihit/incidente
|
||||||
|
variables: {}
|
||||||
|
/omnihit/incidente atdabriu:
|
||||||
|
post:
|
||||||
|
tags:
|
||||||
|
- OMNIHIT
|
||||||
|
summary: Webhook omnihit abertura do chamado
|
||||||
|
operationId: Webhookomnihitaberturadochamado
|
||||||
|
parameters:
|
||||||
|
- name: auth
|
||||||
|
in: header
|
||||||
|
description: ""
|
||||||
|
required: true
|
||||||
|
style: simple
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example: 0424bd59b807674191e7d77572075f33
|
||||||
|
requestBody:
|
||||||
|
description: ""
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- $ref: "#/components/schemas/WebhookomnihitaberturadochamadoRequest"
|
||||||
|
- example:
|
||||||
|
n_chamado_web: 200-323934
|
||||||
|
action: atdabriu
|
||||||
|
phone: +55 17 988310949
|
||||||
|
name: ADRIANO TESTE
|
||||||
|
mensagem: ""
|
||||||
|
example:
|
||||||
|
n_chamado_web: 200-323934
|
||||||
|
action: atdabriu
|
||||||
|
phone: +55 17 988310949
|
||||||
|
name: ADRIANO TESTE
|
||||||
|
mensagem: ""
|
||||||
|
required: true
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: ""
|
||||||
|
headers: {}
|
||||||
|
content:
|
||||||
|
text/plain:
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example:
|
||||||
|
message: Ok
|
||||||
|
example:
|
||||||
|
message: Ok
|
||||||
|
deprecated: false
|
||||||
|
security: []
|
||||||
|
servers:
|
||||||
|
- url: http://172.31.187.4:8080/omnihit/incidente
|
||||||
|
variables: {}
|
||||||
|
/omnihit/incidente atdatualizou:
|
||||||
|
post:
|
||||||
|
tags:
|
||||||
|
- OMNIHIT
|
||||||
|
summary: Webhook omnihit atualizacao do chamado
|
||||||
|
operationId: Webhookomnihitatualizacaodochamado
|
||||||
|
parameters:
|
||||||
|
- name: auth
|
||||||
|
in: header
|
||||||
|
description: ""
|
||||||
|
required: true
|
||||||
|
style: simple
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example: 0424bd59b807674191e7d77572075f33
|
||||||
|
requestBody:
|
||||||
|
description: ""
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- $ref: "#/components/schemas/WebhookomnihitatualizacaodochamadoRequest"
|
||||||
|
- example:
|
||||||
|
n_chamado_web: 200-323934
|
||||||
|
action: atdatualizou
|
||||||
|
phone: +55 17 988310949
|
||||||
|
name: ADRIANO TESTE
|
||||||
|
mensagem: ""
|
||||||
|
example:
|
||||||
|
n_chamado_web: 200-323934
|
||||||
|
action: atdatualizou
|
||||||
|
phone: +55 17 988310949
|
||||||
|
name: ADRIANO TESTE
|
||||||
|
mensagem: ""
|
||||||
|
required: true
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: ""
|
||||||
|
headers: {}
|
||||||
|
content:
|
||||||
|
text/plain:
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example:
|
||||||
|
message: Ok
|
||||||
|
example:
|
||||||
|
message: Ok
|
||||||
|
deprecated: false
|
||||||
|
security: []
|
||||||
|
servers:
|
||||||
|
- url: http://172.31.187.4:8080/omnihit/incidente
|
||||||
|
variables: {}
|
||||||
|
components:
|
||||||
|
schemas:
|
||||||
|
WebhookomnihitfechamentodochamadoRequest:
|
||||||
|
title: WebhookomnihitfechamentodochamadoRequest
|
||||||
|
required:
|
||||||
|
- n_chamado_web
|
||||||
|
- action
|
||||||
|
- phone
|
||||||
|
- name
|
||||||
|
- mensagem
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
n_chamado_web:
|
||||||
|
type: string
|
||||||
|
action:
|
||||||
|
type: string
|
||||||
|
phone:
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
mensagem:
|
||||||
|
type: string
|
||||||
|
example:
|
||||||
|
n_chamado_web: 200-323934
|
||||||
|
action: atdfechou
|
||||||
|
phone: +55 17 988310949
|
||||||
|
name: ADRIANO TESTE
|
||||||
|
mensagem: "*Olá!*\r\n\r\n*Sou o atendente Inteligente do grupo HIT Communications! \U0001F916*\r\n\r\nGostaria de informar que o chamado referente à unidade 0001 - Hit World Teste foi encerrado. Estou à disposição para qualquer outra assistência através do mesmo número, na opção 4 - Suporte Técnico, ou em qualquer outro setor. A equipe da HIT Communications está pronta para auxiliá-lo em qualquer situação. \U0001F9E1\r\n\r\n*Protocolo:* 200-323882\r\n*Data de abertura:* 17/07/2023 16:38:08\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 Felipe Ribeiro 16:37\r\n*Contato:* Felipe Ribeiro *Telefone:* 17988310949\r\n*Data de abertura:* 17/07/2023 16:38:08\r\n\r\n*Status do Chamado:* Aguardando\r\n*Atualização do chamado pelo cliente:* Este é um teste de integração SLM X WA para o Adriano 16:41h\r\n*Data da atualização:* 17/07/2023 16:41:21\r\n\r\n*Status do Chamado:* Em Atendimento\r\n*Atualização do chamado pela HIT:* Este é um teste de integração do SLM X WA do Alan Oliveira\r\n*Data da atualização:* 17/07/2023 16:43:28\r\n\r\n*Status do Chamado:* Fechado\r\n*Atualização do chamado pela HIT:* Teste de integração SLM X WA realizado com sucesso por Alan e Adriano 16:45h\r\n*Status de Encerramento:* Chamado concluído\r\n*Data do encerramento:* 17/07/2023 16:45:17\r\n\r\n\r\n"
|
||||||
|
WebhookomnihitaberturadochamadoRequest:
|
||||||
|
title: WebhookomnihitaberturadochamadoRequest
|
||||||
|
required:
|
||||||
|
- n_chamado_web
|
||||||
|
- action
|
||||||
|
- phone
|
||||||
|
- name
|
||||||
|
- mensagem
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
n_chamado_web:
|
||||||
|
type: string
|
||||||
|
action:
|
||||||
|
type: string
|
||||||
|
phone:
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
mensagem:
|
||||||
|
type: string
|
||||||
|
example:
|
||||||
|
n_chamado_web: 200-323934
|
||||||
|
action: atdabriu
|
||||||
|
phone: +55 17 988310949
|
||||||
|
name: ADRIANO TESTE
|
||||||
|
mensagem: ""
|
||||||
|
WebhookomnihitatualizacaodochamadoRequest:
|
||||||
|
title: WebhookomnihitatualizacaodochamadoRequest
|
||||||
|
required:
|
||||||
|
- n_chamado_web
|
||||||
|
- action
|
||||||
|
- phone
|
||||||
|
- name
|
||||||
|
- mensagem
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
n_chamado_web:
|
||||||
|
type: string
|
||||||
|
action:
|
||||||
|
type: string
|
||||||
|
phone:
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
mensagem:
|
||||||
|
type: string
|
||||||
|
example:
|
||||||
|
n_chamado_web: 200-323934
|
||||||
|
action: atdatualizou
|
||||||
|
phone: +55 17 988310949
|
||||||
|
name: ADRIANO TESTE
|
||||||
|
mensagem: ""
|
||||||
|
tags:
|
||||||
|
- name: SLM
|
||||||
|
- name: OMNIHIT
|
Loading…
Reference in New Issue