feat: back to bot ura when the user is waiting in a queue
parent
e80ed8d092
commit
52e63706c1
|
@ -528,7 +528,7 @@ const transferTicket = async (
|
||||||
ticket: Ticket,
|
ticket: Ticket,
|
||||||
sendGreetingMessage?: boolean
|
sendGreetingMessage?: boolean
|
||||||
) => {
|
) => {
|
||||||
const botInfo = await BotIsOnQueue("botqueue");
|
const botInfo = await BotIsOnQueue("botqueue");
|
||||||
|
|
||||||
const queuesWhatsGreetingMessage = await queuesOutBot(
|
const queuesWhatsGreetingMessage = await queuesOutBot(
|
||||||
wbot,
|
wbot,
|
||||||
|
@ -947,6 +947,36 @@ const handleMessage = async (
|
||||||
await botSendMessage(ticket, menuMsg.value);
|
await botSendMessage(ticket, menuMsg.value);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
} else if (
|
||||||
|
!msg.fromMe &&
|
||||||
|
msg.body == "#" &&
|
||||||
|
ticket.status == "pending" &&
|
||||||
|
ticket.queueId
|
||||||
|
) {
|
||||||
|
let choosenQueue = await ShowQueueService(botInfo.botQueueId);
|
||||||
|
|
||||||
|
await UpdateTicketService({
|
||||||
|
ticketData: {
|
||||||
|
status: "open",
|
||||||
|
userId: botInfo.userIdBot,
|
||||||
|
queueId: choosenQueue.id
|
||||||
|
},
|
||||||
|
ticketId: ticket.id
|
||||||
|
});
|
||||||
|
// const menuMsg: any = await menu(msg.body, wbot.id, contact.id);
|
||||||
|
// await botSendMessage(ticket, menuMsg.value);
|
||||||
|
|
||||||
|
// const data: any = await get({ key: "ura", parse: true });
|
||||||
|
|
||||||
|
// return await backUra(ticket.whatsappId, ticket.contactId, data);
|
||||||
|
|
||||||
|
const menuMsg: any = await menu(msg.body, wbot.id, contact.id);
|
||||||
|
|
||||||
|
console.log("menuMsg: ", menuMsg);
|
||||||
|
|
||||||
|
await botSendMessage(ticket, menuMsg.value);
|
||||||
|
|
||||||
|
// return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (msg && !msg.fromMe && ticket.status == "pending") {
|
if (msg && !msg.fromMe && ticket.status == "pending") {
|
||||||
|
@ -1017,7 +1047,6 @@ const menu = async (userTyped: string, whatsappId: any, contactId: any) => {
|
||||||
|
|
||||||
if (!option && userTyped != "0" && userTyped != "#") {
|
if (!option && userTyped != "0" && userTyped != "#") {
|
||||||
if (!existSubMenu()) {
|
if (!existSubMenu()) {
|
||||||
|
|
||||||
const response = await mainOptionsMenu(userTyped);
|
const response = await mainOptionsMenu(userTyped);
|
||||||
if (response) return response;
|
if (response) return response;
|
||||||
else {
|
else {
|
||||||
|
@ -1026,7 +1055,7 @@ const menu = async (userTyped: string, whatsappId: any, contactId: any) => {
|
||||||
contactId,
|
contactId,
|
||||||
"ura"
|
"ura"
|
||||||
);
|
);
|
||||||
|
|
||||||
uraOptionSelected = uraOptionSelected[4].split("|");
|
uraOptionSelected = uraOptionSelected[4].split("|");
|
||||||
|
|
||||||
if (uraOptionSelected.length == 1) {
|
if (uraOptionSelected.length == 1) {
|
||||||
|
@ -1089,36 +1118,8 @@ const menu = async (userTyped: string, whatsappId: any, contactId: any) => {
|
||||||
|
|
||||||
return data[1];
|
return data[1];
|
||||||
} else if (userTyped == "#") {
|
} else if (userTyped == "#") {
|
||||||
let uraOptionSelected = await findObject(whatsappId, contactId, "ura");
|
return await backUra(whatsappId, contactId, data);
|
||||||
|
}
|
||||||
uraOptionSelected = uraOptionSelected[4].split("|").filter(Boolean);
|
|
||||||
|
|
||||||
let id = uraOptionSelected[0];
|
|
||||||
|
|
||||||
let history = `|${uraOptionSelected[0]}`;
|
|
||||||
|
|
||||||
if (uraOptionSelected.length > 1) {
|
|
||||||
const idRemove = uraOptionSelected[uraOptionSelected.length - 1];
|
|
||||||
|
|
||||||
history = await historyUra(whatsappId, contactId, idRemove, true);
|
|
||||||
|
|
||||||
const lstIds = history.split("|").filter(Boolean);
|
|
||||||
|
|
||||||
id = lstIds[lstIds.length - 1];
|
|
||||||
}
|
|
||||||
|
|
||||||
await createObject({
|
|
||||||
whatsappId,
|
|
||||||
contactId,
|
|
||||||
identifier: "ura",
|
|
||||||
value: id,
|
|
||||||
history
|
|
||||||
});
|
|
||||||
|
|
||||||
let response: any = data.find((o: any) => o.id == id);
|
|
||||||
|
|
||||||
return response;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function existSubMenu() {
|
function existSubMenu() {
|
||||||
|
@ -1134,7 +1135,7 @@ const menu = async (userTyped: string, whatsappId: any, contactId: any) => {
|
||||||
|
|
||||||
const menuValues = data
|
const menuValues = data
|
||||||
.filter((m: any) => m.idmaster == currentMenu[3])
|
.filter((m: any) => m.idmaster == currentMenu[3])
|
||||||
.map((m: any) => m.value);
|
.map((m: any) => m.value);
|
||||||
|
|
||||||
let menuOption = data.find(
|
let menuOption = data.find(
|
||||||
(o: any) =>
|
(o: any) =>
|
||||||
|
@ -1261,6 +1262,38 @@ export {
|
||||||
mediaTypeWhatsappOfficial,
|
mediaTypeWhatsappOfficial,
|
||||||
botSendMessage
|
botSendMessage
|
||||||
};
|
};
|
||||||
|
async function backUra(whatsappId: any, contactId: any, data: any) {
|
||||||
|
let uraOptionSelected = await findObject(whatsappId, contactId, "ura");
|
||||||
|
|
||||||
|
uraOptionSelected = uraOptionSelected[4].split("|").filter(Boolean);
|
||||||
|
|
||||||
|
let id = uraOptionSelected[0];
|
||||||
|
|
||||||
|
let history = `|${uraOptionSelected[0]}`;
|
||||||
|
|
||||||
|
if (uraOptionSelected.length > 1) {
|
||||||
|
const idRemove = uraOptionSelected[uraOptionSelected.length - 1];
|
||||||
|
|
||||||
|
history = await historyUra(whatsappId, contactId, idRemove, true);
|
||||||
|
|
||||||
|
const lstIds = history.split("|").filter(Boolean);
|
||||||
|
|
||||||
|
id = lstIds[lstIds.length - 1];
|
||||||
|
}
|
||||||
|
|
||||||
|
await createObject({
|
||||||
|
whatsappId,
|
||||||
|
contactId,
|
||||||
|
identifier: "ura",
|
||||||
|
value: id,
|
||||||
|
history
|
||||||
|
});
|
||||||
|
|
||||||
|
let response: any = data.find((o: any) => o.id == id);
|
||||||
|
|
||||||
|
return response;
|
||||||
|
}
|
||||||
|
|
||||||
async function historyUra(
|
async function historyUra(
|
||||||
whatsappId: any,
|
whatsappId: any,
|
||||||
contactId: any,
|
contactId: any,
|
||||||
|
|
Loading…
Reference in New Issue