refactor: otimização do codigo que trata o expediente de atendimento

adriano 2023-10-18 11:32:06 -03:00
parent c57811c9f6
commit fd5d9829e4
1 changed files with 57 additions and 46 deletions

View File

@ -290,6 +290,15 @@ const verifyQueue = async (
}
//
const outService = await outOfService();
if (outService.length > 0) {
const { type, msg: msgOutService } = outService[0];
console.log(`${type} message ignored on queue`);
botSendMessage(ticket, msgOutService);
return;
}
let body = "";
if (botOptions.length > 0) {
@ -439,26 +448,26 @@ const _clear_lst = () => {
const handleMessage = async (msg: any, wbot: any): Promise<void> => {
// if (!msg.fromMe) {
_clear_lst();
_clear_lst();
let index = lst.findIndex((x: any) => x.id == msg.id.id);
let index = lst.findIndex((x: any) => x.id == msg.id.id);
console.log("INDEX: ", index);
console.log("INDEX: ", index);
if (index == -1) {
// console.log('-----------------> LST: ', lst):q
if (index == -1) {
// console.log('-----------------> LST: ', lst):q
lst.push({ id: msg.id.id });
lst.push({ id: msg.id.id });
setWhatsappId(msg.id.id);
} else {
console.log("IGNORED ID: ", msg.id.id);
setWhatsappId(msg.id.id);
} else {
console.log("IGNORED ID: ", msg.id.id);
return;
}
return;
}
// console.log('LIST OF ID MESSAGE lst: ', lst)
// console.log('LIST OF ID MESSAGE lst: ', lst)
// }
if (!isValidMsg(msg)) {
@ -628,43 +637,18 @@ const handleMessage = async (msg: any, wbot: any): Promise<void> => {
ticketHasQueue = true;
}
if (ticketHasQueue) {
// MESSAGE TO HOLIDAY
const holiday: any = await isHoliday();
if (ticketHasQueue && ticket.status != "open") {
const outService = await outOfService();
if (holiday && holiday.set) {
if (msg.fromMe && holiday.msg == msg.body) {
console.log("HOLIDAY MESSAGE IGNORED");
if (outService.length > 0) {
const { type, msg: msgOutService } = outService[0];
if (msg.fromMe && msgOutService == msg.body) {
console.log(`${type} message ignored`);
return;
}
botSendMessage(ticket, holiday.msg);
return;
}
// MESSAGES TO SATURDAY OR SUNDAY
const weekend: any = await isWeekend();
if (weekend && weekend.set) {
if (msg.fromMe && weekend.msg == msg.body) {
console.log("WEEKEND MESSAGE IGNORED");
return;
}
botSendMessage(ticket, weekend.msg);
return;
}
// MESSAGE TO BUSINESS TIME
const businessTime = await isOutBusinessTime();
if (businessTime && businessTime.set) {
if (msg.fromMe && businessTime.msg == msg.body) {
console.log("BUSINESS TIME MESSAGE IGNORED");
return;
}
botSendMessage(ticket, businessTime.msg);
botSendMessage(ticket, msgOutService);
return;
}
}
@ -723,4 +707,31 @@ const wbotMessageListener = (wbot: Session): void => {
});
};
const outOfService = async () => {
// MESSAGE TO HOLIDAY
const holiday: any = await isHoliday();
let objs: any = [];
if (holiday && holiday.set) {
objs.push({ type: "holiday", msg: holiday.msg });
}
// MESSAGES TO SATURDAY OR SUNDAY
const weekend: any = await isWeekend();
if (weekend && weekend.set) {
objs.push({ type: "weekend", msg: weekend.msg });
}
// MESSAGE TO BUSINESS TIME
const businessTime = await isOutBusinessTime();
if (businessTime && businessTime.set) {
objs.push({ type: "businessTime", msg: businessTime.msg });
}
return objs;
};
export { wbotMessageListener, handleMessage, handleMsgAck, lst };