From f689cdfb70d4fdc42b7d9344c49ffae853e27b69 Mon Sep 17 00:00:00 2001 From: Jonatan Rinckus Date: Thu, 17 Dec 2020 21:28:11 -0300 Subject: [PATCH 1/2] implementing on my external message --- src/data/modules/integrations/receiveMessage.ts | 14 ++++++++++++++ src/db/models/definitions/integrations.ts | 3 ++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/data/modules/integrations/receiveMessage.ts b/src/data/modules/integrations/receiveMessage.ts index 22c61c45d..60fb4aca9 100644 --- a/src/data/modules/integrations/receiveMessage.ts +++ b/src/data/modules/integrations/receiveMessage.ts @@ -97,6 +97,20 @@ export const receiveRpcMessage = async msg => { } if (action === 'create-conversation-message') { + if (doc.isMe) { + let conversation = await Conversations.findById(doc.conversationId); + + let userId = conversation?.assignedUserId; + + if (!userId) { + const integration = await Integrations.findOne({ _id: doc.integrationId }); + + userId = integration?.defaultSenderId || integration?.createdUserId; + } + + doc.userId = userId; + } + const message = await ConversationMessages.createMessage(doc); const conversationDoc: { diff --git a/src/db/models/definitions/integrations.ts b/src/db/models/definitions/integrations.ts index 59b61ad60..6b6c047fb 100644 --- a/src/db/models/definitions/integrations.ts +++ b/src/db/models/definitions/integrations.ts @@ -117,6 +117,7 @@ export interface IIntegration { export interface IIntegrationDocument extends IIntegration, Document { _id: string; createdUserId: string; + defaultSenderId: string; // TODO remove formData?: ILeadData; leadData?: ILeadDataDocument; @@ -301,7 +302,7 @@ const webhookDataSchema = new Schema( export const integrationSchema = new Schema({ _id: field({ pkey: true }), createdUserId: field({ type: String, label: 'Created by' }), - + defaultSenderId: field({ type: String, label: 'Default sender' }), kind: field({ type: String, enum: KIND_CHOICES.ALL, From 1ea12e8dde245710cc45ce128d9e7e3cf6e7223b Mon Sep 17 00:00:00 2001 From: Jonatan Rinckus Date: Fri, 18 Dec 2020 20:40:13 -0300 Subject: [PATCH 2/2] implemented external message --- src/data/modules/flow/index.ts | 2 +- src/data/modules/integrations/receiveMessage.ts | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/data/modules/flow/index.ts b/src/data/modules/flow/index.ts index acdc6821d..a84570dc8 100644 --- a/src/data/modules/flow/index.ts +++ b/src/data/modules/flow/index.ts @@ -60,7 +60,7 @@ const checkIfIsCondition = (condition: IFlowActionValueCondition, content: strin }; const handleMessage = async (msg: IMessageDocument) => { - if (msg.isGroupMsg || !msg.content) return; + if (msg.isGroupMsg || !msg.content || !msg.customerId) return; let conversation = await Conversations.getConversation(msg.conversationId); diff --git a/src/data/modules/integrations/receiveMessage.ts b/src/data/modules/integrations/receiveMessage.ts index 60fb4aca9..935a97b18 100644 --- a/src/data/modules/integrations/receiveMessage.ts +++ b/src/data/modules/integrations/receiveMessage.ts @@ -106,6 +106,18 @@ export const receiveRpcMessage = async msg => { const integration = await Integrations.findOne({ _id: doc.integrationId }); userId = integration?.defaultSenderId || integration?.createdUserId; + + if (!userId) { + const user = await Users.findOne({ isOwner: true }); + + userId = user?._id; + } + + if (userId && conversation) { + conversation.assignedUserId = userId; + + await Conversations.updateOne({ _id: conversation._id }, { assignedUserId: conversation.assignedUserId }); + } } doc.userId = userId;