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 = ""; let body = "";
if (botOptions.length > 0) { if (botOptions.length > 0) {
@ -439,26 +448,26 @@ const _clear_lst = () => {
const handleMessage = async (msg: any, wbot: any): Promise<void> => { const handleMessage = async (msg: any, wbot: any): Promise<void> => {
// if (!msg.fromMe) { // 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) { if (index == -1) {
// console.log('-----------------> LST: ', lst):q // console.log('-----------------> LST: ', lst):q
lst.push({ id: msg.id.id }); lst.push({ id: msg.id.id });
setWhatsappId(msg.id.id); setWhatsappId(msg.id.id);
} else { } else {
console.log("IGNORED ID: ", msg.id.id); 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)) { if (!isValidMsg(msg)) {
@ -628,43 +637,18 @@ const handleMessage = async (msg: any, wbot: any): Promise<void> => {
ticketHasQueue = true; ticketHasQueue = true;
} }
if (ticketHasQueue) { if (ticketHasQueue && ticket.status != "open") {
// MESSAGE TO HOLIDAY const outService = await outOfService();
const holiday: any = await isHoliday();
if (holiday && holiday.set) { if (outService.length > 0) {
if (msg.fromMe && holiday.msg == msg.body) { const { type, msg: msgOutService } = outService[0];
console.log("HOLIDAY MESSAGE IGNORED");
if (msg.fromMe && msgOutService == msg.body) {
console.log(`${type} message ignored`);
return; return;
} }
botSendMessage(ticket, holiday.msg); botSendMessage(ticket, msgOutService);
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);
return; 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 }; export { wbotMessageListener, handleMessage, handleMsgAck, lst };