diff --git a/backend/package.json b/backend/package.json
index 98be155..f8e963f 100644
--- a/backend/package.json
+++ b/backend/package.json
@@ -18,7 +18,7 @@
"@google-cloud/dialogflow": "^4.6.0",
"@sentry/node": "^5.29.2",
"@types/pino": "^6.3.4",
- "actions-on-google": "^3.0.0",
+ "actions-on-google": "^3.0.0",
"axios": "^1.2.3",
"bcryptjs": "^2.4.3",
"cookie-parser": "^1.4.5",
@@ -46,8 +46,10 @@
"sequelize-typescript": "^1.1.0",
"socket.io": "^3.0.5",
"socket.io-client": "^4.5.4",
+ "swagger-ui-express": "^5.0.0",
"uuid": "^8.3.2",
"whatsapp-web.js": "github:pedroslopez/whatsapp-web.js",
+ "yamljs": "^0.3.0",
"yup": "^0.32.8"
},
"devDependencies": {
diff --git a/backend/src/app.ts b/backend/src/app.ts
index 7864346..d4e3adb 100644
--- a/backend/src/app.ts
+++ b/backend/src/app.ts
@@ -10,7 +10,12 @@ import "./database";
import uploadConfig from "./config/upload";
import AppError from "./errors/AppError";
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 });
@@ -26,6 +31,13 @@ app.use(cookieParser());
app.use(express.json());
app.use(Sentry.Handlers.requestHandler());
app.use("/public", express.static(uploadConfig.directory));
+
+app.get("/", (req: Request, res: Response) => {
+ res.send('
SLM/OMNIHIT api
Documentation');
+});
+
+app.use("/api-docs", swaggerUI.serve, swaggerUI.setup(swaggerDocument));
+
app.use(routes);
app.use(Sentry.Handlers.errorHandler());
@@ -39,6 +51,5 @@ app.use(async (err: Error, req: Request, res: Response, _: NextFunction) => {
logger.error(err);
return res.status(500).json({ error: "Internal server error" });
});
-
export default app;
diff --git a/backend/src/controllers/HitController.ts b/backend/src/controllers/HitController.ts
index 02789b1..97d2904 100644
--- a/backend/src/controllers/HitController.ts
+++ b/backend/src/controllers/HitController.ts
@@ -14,7 +14,10 @@ import SendWhatsAppMessage from "../services/WbotServices/SendWhatsAppMessage";
import { Op, where, Sequelize } from "sequelize";
import ShowTicketServiceByContactId from "../services/TicketServices/ShowTicketServiceByContactId";
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 Contact from "../models/Contact";
import GetProfilePicUrl from "../services/WbotServices/GetProfilePicUrl";
@@ -25,62 +28,59 @@ import ShowQuickAnswerService from "../services/QuickAnswerService/ShowQuickAnsw
import ShowQueryItemService from "../services/SLM/ShowQueryItemService";
import QueryItem from "../models/QueryItem";
-
-
// type IndexQuery = {
-// cod_web: string;
-// };
+// cod_web: string;
+// };
+
+// export const index = async (req: Request, res: Response): Promise => {}
export const hit = async (req: Request, res: Response): Promise => {
-
// const {
- // cod_web,
+ // cod_web,
// } = req.body as IndexQuery;
- console.log('req.boy: ', req.body)
- console.log("req.body['cod_web']: ", req.body['cod_web'])
- console.log("req.body['action']: ", req.body['action'])
- console.log("req.body['phone']: ", req.body['phone'])
- console.log("req.body['name']: ", req.body['name'])
- console.log("req.body['mensagem']: ", req.body['mensagem'])
+ console.log("req.boy: ", req.body);
+ console.log("req.body['cod_web']: ", req.body["cod_web"]);
+ console.log("req.body['action']: ", req.body["action"]);
+ console.log("req.body['phone']: ", req.body["phone"]);
+ console.log("req.body['name']: ", req.body["name"]);
+ 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') {
-
- let phone = req.body['phone']
- let name = req.body['name']
-
- if (!phone) return res.status(200).json({ "message": "Ok" });
+ if (!phone) return res.status(200).json({ message: "Ok" });
const regex = /^55/;
- phone = phone.match(/\d+/g).join('');
+ phone = phone.match(/\d+/g).join("");
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);
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: '5517988325936' } });
if (!contact) {
-
const profilePicUrl = await GetProfilePicUrl(validNumber);
contact = await CreateContactService({
name: name || phone,
number: validNumber,
- profilePicUrl: profilePicUrl,
+ profilePicUrl: profilePicUrl
});
const io = getIO();
@@ -88,149 +88,164 @@ export const hit = async (req: Request, res: Response): Promise => {
action: "create",
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 = ''
+ let response: any = "";
- if (['atdabriu', 'atdatualizou'].includes(req.body['action'])) {
+ if (["atdabriu", "atdatualizou"].includes(req.body["action"])) {
response = await hitPortalMonitoring({
- 'params[n_chamado_web]': req.body['n_chamado_web'],
- 'method': 'omnihit.consultachamado',
- })
+ "params[n_chamado_web]": req.body["n_chamado_web"],
+ method: "omnihit.consultachamado"
+ });
+ } else {
+ response = req.body["mensagem"];
}
- else {
- response = req.body['mensagem']
- }
-
-
-
if (!response || response.length == 0 || !contact) {
- console.log('Empty result from hit portal monitoring to n_chamado_web: ', req.body['n_chamado_web'])
- return res.status(200).json({ "message": "Ok" });
+ console.log(
+ "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) {
-
const defaultWhatsapp = await GetDefaultWhatsApp();
let ticket_obj: any = await FindOrCreateTicketServiceBot(
contact,
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 sendMessageInsertInfoSLM(req, ticket, ['atdabriu', 'atdatualizou'], contact.id);
-
- }
- else if (ticket.id && ticket.userId == botInfo.userIdBot) {
-
+ await sendMessageInsertInfoSLM(
+ req,
+ ticket,
+ ["atdabriu", "atdatualizou"],
+ contact.id
+ );
+ } 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);
- 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 sendMessageInsertInfoSLM(req, ticket, ['atdabriu', 'atdatualizou'], contact.id);
-
+ await sendMessageInsertInfoSLM(
+ req,
+ ticket,
+ ["atdabriu", "atdatualizou"],
+ contact.id
+ );
}
- }
- else {
- return res.status(401).json({ "message": "Token Inválido!" });
+ } else {
+ 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({
contactId,
- name: 'insert_protocol_info'
- })
+ name: "insert_protocol_info"
+ });
const n_chamado_web: QueryItem = await ShowQueryItemService({
contactId,
- name: 'n_chamado_web'
- })
+ name: "n_chamado_web"
+ });
await new Promise(f => setTimeout(f, 2000));
- if (params.includes(req.body['action'])) {
-
- if (insert_protocol_info &&
+ if (params.includes(req.body["action"])) {
+ if (
+ insert_protocol_info &&
insert_protocol_info?.status &&
- n_chamado_web?.queryItem) {
-
- await sendMessageHitMonitoring(`🔄 Houve uma atualização no chamado acima`, ticket);
+ n_chamado_web?.queryItem
+ ) {
+ await sendMessageHitMonitoring(
+ `🔄 Houve uma atualização no chamado acima`,
+ ticket
+ );
await new Promise(f => setTimeout(f, 1000));
- await sendMessageHitMonitoring(`✅ Protocolo *${n_chamado_web?.queryItem}* validado, digite a informação que deseja adicionar.`, ticket);
-
- }
- else {
-
+ await sendMessageHitMonitoring(
+ `✅ Protocolo *${n_chamado_web?.queryItem}* validado, digite a informação que deseja adicionar.`,
+ ticket
+ );
+ } else {
// 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 &&
- n_chamado_web?.queryItem) {
-
- if (req.body['n_chamado_web'] &&
- req.body['n_chamado_web'].trim() == n_chamado_web?.queryItem) {
-
- insert_protocol_info.update({ status: false })
+ n_chamado_web?.queryItem
+ ) {
+ if (
+ req.body["n_chamado_web"] &&
+ req.body["n_chamado_web"].trim() == n_chamado_web?.queryItem
+ ) {
+ insert_protocol_info.update({ status: false });
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) {
-
if (msg && msg.length > 0) {
-
- console.log('MESSAGE WILL BE SENT!')
+ console.log("MESSAGE WILL BE SENT!");
await SendWhatsAppMessage({ body: msg, ticket });
-
}
-
}
diff --git a/backend/swagger.yaml b/backend/swagger.yaml
new file mode 100644
index 0000000..64d73b0
--- /dev/null
+++ b/backend/swagger.yaml
@@ -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