From 5df3d3a5c6f2fa4754bc8d8aad53ebc366ff8892 Mon Sep 17 00:00:00 2001 From: Reagan Charana Date: Thu, 30 Mar 2023 17:03:49 +0300 Subject: [PATCH 1/5] :house: add conversation complete property --- .../convs-mgr/conversations/chats/src/lib/chat.interface.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libs/model/convs-mgr/conversations/chats/src/lib/chat.interface.ts b/libs/model/convs-mgr/conversations/chats/src/lib/chat.interface.ts index 7085755574..5058d8c7e5 100644 --- a/libs/model/convs-mgr/conversations/chats/src/lib/chat.interface.ts +++ b/libs/model/convs-mgr/conversations/chats/src/lib/chat.interface.ts @@ -51,6 +51,8 @@ export interface Chat extends IObject instructors?: string[]; lastMsg?: any; + + isConversationComplete?: number; } export interface ChatUserInfo { From 99a8f1e7d3df279c946042a305e5a63ceece70c7 Mon Sep 17 00:00:00 2001 From: Reagan Charana Date: Thu, 30 Mar 2023 18:55:46 +0300 Subject: [PATCH 2/5] :bug: :wrench: sort undefined template bug --- .../main/src/lib/handlers/send-outgoing-message.handler.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/libs/functions/bot-engine/main/src/lib/handlers/send-outgoing-message.handler.ts b/libs/functions/bot-engine/main/src/lib/handlers/send-outgoing-message.handler.ts index cc306bd411..25675dbb35 100644 --- a/libs/functions/bot-engine/main/src/lib/handlers/send-outgoing-message.handler.ts +++ b/libs/functions/bot-engine/main/src/lib/handlers/send-outgoing-message.handler.ts @@ -83,16 +83,20 @@ export class SendOutgoingMsgHandler extends FunctionHandler // Check if the last message sent was more than 24hours ago if ((Date.now() - latestMessageTime) > 86400000) { const templateConfig = communicationChannel.templateConfig; + if(templateConfig) { // Send the opt-in message template // Get the opt-in message template outgoingMessagePayload = activeChannel - .parseOutMessageTemplate(templateConfig, outgoingPayload.endUserPhoneNumber, outgoingPayload); + .parseOutMessageTemplate(templateConfig, outgoingPayload.endUserPhoneNumber, outgoingPayload); + } }} // STEP 5: Send the message await activeChannel.send(outgoingMessagePayload as any); + tools.Logger.error(() => `[WhatsAppSendOutgoingMsgHandler].execute - Success in sending message ${JSON.stringify(outgoingMessagePayload)}`); + return { success: true } as RestResult200; } catch (error) { tools.Logger.error(() => `[WhatsAppSendOutgoingMsgHandler].execute - Encountered an error ${error}`); From d4d4b903c8ada3d9d3ebfd5cf7c32a0bc099d16a Mon Sep 17 00:00:00 2001 From: Reagan Charana Date: Thu, 30 Mar 2023 18:56:15 +0300 Subject: [PATCH 3/5] :art: clean up code --- .../whatsapp/src/lib/models/whatsapp-active-channel.model.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libs/functions/bot-engine/whatsapp/src/lib/models/whatsapp-active-channel.model.ts b/libs/functions/bot-engine/whatsapp/src/lib/models/whatsapp-active-channel.model.ts index 4cda776135..1fe1b0b7aa 100644 --- a/libs/functions/bot-engine/whatsapp/src/lib/models/whatsapp-active-channel.model.ts +++ b/libs/functions/bot-engine/whatsapp/src/lib/models/whatsapp-active-channel.model.ts @@ -63,7 +63,7 @@ export class WhatsappActiveChannel implements ActiveChannel { // Create the message template payload which will be sent to whatsapp const messageTemplate = new WhatsappOutgoingMessageParser() - .parseOutMessageTemplate(templateConfig, phone, message); + .getMessageTemplateParserOut(templateConfig, phone, message); return messageTemplate; } @@ -106,7 +106,7 @@ export class WhatsappActiveChannel implements ActiveChannel this._tools.Logger.log(() => `[SendWhatsAppMessageModel].sendMessage: Success in sending message ${JSON.stringify(response.data)}`); // Mark the conversation as complete - this.endUserService.setConversationComplete(`w_${this.channel.n}_${whatsappMessage.to}`, +1).then(() => { + this.endUserService.setConversationComplete(`w_${this.channel.n}_${whatsappMessage.to}`, 1).then(() => { this._tools.Logger.log(() => `[SendWhatsAppMessageModel].sendMessage: Conversation marked as complete`); }).catch(err => { From 44d1d2326ebcdead71ac8000eb61026bb6c3c926 Mon Sep 17 00:00:00 2001 From: Reagan Charana Date: Thu, 30 Mar 2023 18:57:30 +0300 Subject: [PATCH 4/5] :lipstick: show blocked user stats on dashboard --- .../trainer-dashboard-stats.component.html | 2 +- .../trainer-dashboard-stats.component.ts | 12 +++++------- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/libs/features/convs-mgr/dashboard/src/lib/components/trainer-stats/trainer-dashboard-stats.component.html b/libs/features/convs-mgr/dashboard/src/lib/components/trainer-stats/trainer-dashboard-stats.component.html index 533ed9425e..7230b30a8b 100644 --- a/libs/features/convs-mgr/dashboard/src/lib/components/trainer-stats/trainer-dashboard-stats.component.html +++ b/libs/features/convs-mgr/dashboard/src/lib/components/trainer-stats/trainer-dashboard-stats.component.html @@ -16,7 +16,7 @@ -
{{pendingAssessments}}
+
{{pausedChats}}
Paused Chats
decrease diff --git a/libs/features/convs-mgr/dashboard/src/lib/components/trainer-stats/trainer-dashboard-stats.component.ts b/libs/features/convs-mgr/dashboard/src/lib/components/trainer-stats/trainer-dashboard-stats.component.ts index 9d27a67853..702ede178c 100644 --- a/libs/features/convs-mgr/dashboard/src/lib/components/trainer-stats/trainer-dashboard-stats.component.ts +++ b/libs/features/convs-mgr/dashboard/src/lib/components/trainer-stats/trainer-dashboard-stats.component.ts @@ -1,6 +1,6 @@ import { Component} from '@angular/core'; -import { Chat, ChatFlowStatus } from '@app/model/convs-mgr/conversations/chats'; +import { Chat, ChatFlowStatus, ChatStatus } from '@app/model/convs-mgr/conversations/chats'; import { ChatsStore } from '@app/state/convs-mgr/conversations/chats'; @Component({ @@ -14,7 +14,7 @@ export class TrainerStatsComponent engagedChats: number; activeChats: number; seekingAssistance: number; - pendingAssessments: number; + pausedChats: number; constructor(private _chats$: ChatsStore) { @@ -24,11 +24,9 @@ export class TrainerStatsComponent getChatStats(chats: Chat[]) { this.engagedChats = chats.length; - this.activeChats = chats.filter(chat => chat.flow !== ChatFlowStatus.Completed).length; - const helpRequests = chats.filter(chat => chat.flow === ChatFlowStatus.Paused).length; - const offlineRequests = chats.filter(chat => chat.flow === ChatFlowStatus.OnWaitlist).length; - this.seekingAssistance = helpRequests + offlineRequests; - this.pendingAssessments = chats.filter(chat => chat.flow === ChatFlowStatus.PendingAssessment).length; + this.activeChats = chats.filter(chat => chat.status === ChatStatus.Running).length; + this.seekingAssistance = chats.filter(chat => chat.isConversationComplete === -1).length; + this.pausedChats = chats.filter(chat => chat.status === (ChatStatus.PausedByAgent)).length; } } From 788354260bd883acdc1a07e4ec0c9ad5a0d4f2b6 Mon Sep 17 00:00:00 2001 From: Reagan Charana Date: Thu, 30 Mar 2023 18:57:57 +0300 Subject: [PATCH 5/5] :lipstick: allow filtering of blocked users on chat component --- .../components/chats-list/chats-list.component.html | 1 + .../lib/components/chats-list/chats-list.component.ts | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/libs/features/convs-mgr/conversations/chats/src/lib/components/chats-list/chats-list.component.html b/libs/features/convs-mgr/conversations/chats/src/lib/components/chats-list/chats-list.component.html index 2ffe1069ad..4a4ac5df98 100644 --- a/libs/features/convs-mgr/conversations/chats/src/lib/components/chats-list/chats-list.component.html +++ b/libs/features/convs-mgr/conversations/chats/src/lib/components/chats-list/chats-list.component.html @@ -13,6 +13,7 @@ --> +