projeto-hit/backend/src/controllers/HitController.ts

78 lines
2.4 KiB
TypeScript
Raw Normal View History

import { Request, Response } from "express";
import BotIsOnQueue from "../helpers/BotIsOnQueue";
import GetDefaultWhatsApp from "../helpers/GetDefaultWhatsApp";
import { getIO } from "../libs/socket";
import { getWbot } from "../libs/wbot";
import Ticket from "../models/Ticket";
import ContactByCustomField from "../services/HitServices/ShowContactByCustomFieldValueService";
import ShowQueueService from "../services/QueueService/ShowQueueService";
import CreateTicketService from "../services/TicketServices/CreateTicketService";
import ShowTicketService from "../services/TicketServices/ShowTicketService";
import UpdateTicketService from "../services/TicketServices/UpdateTicketService";
import SendWhatsAppMessage from "../services/WbotServices/SendWhatsAppMessage";
import { Op, where, Sequelize } from "sequelize";
import ShowTicketServiceByContactId from "../services/TicketServices/ShowTicketServiceByContactId";
// type IndexQuery = {
// centro_custo: string;
// };
export const hit = async (req: Request, res: Response): Promise<Response> => {
// const {
// centro_custo,
// } = req.body as IndexQuery;
console.log('req.boy: ', req.body)
console.log('req.boy: ', req.body['centro_custo'])
if (req.headers["auth"] === '0424bd59b807674191e7d77572075f33') {
let contact = await ContactByCustomField(req.body['centro_custo'])
// console.log('--------------> contact: ', contact)
if (contact) {
try {
const botInfo = await BotIsOnQueue('botqueue')
let ticket = await ShowTicketServiceByContactId(contact['contact.id'])
if (ticket.id && ticket.status == 'pending') {
await SendWhatsAppMessage({ body: 'Resposta da operadora', 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 SendWhatsAppMessage({ body: 'Ola isso é um teste', ticket });
}
} catch (error) {
console.log(`Error on try sending the message monitor: `, error)
}
}
}
else {
res.status(401).json({ "message": "Token Inválido!" });
}
return res.status(200).json({ "message": "Ok" });
};