diff --git a/packages/basic.gblib/services/DialogKeywords.ts b/packages/basic.gblib/services/DialogKeywords.ts index ea02cdb7..46514c6b 100644 --- a/packages/basic.gblib/services/DialogKeywords.ts +++ b/packages/basic.gblib/services/DialogKeywords.ts @@ -39,8 +39,8 @@ import { GBServer } from '../../../src/app'; import { GBDeployer } from '../../core.gbapp/services/GBDeployer'; import { SecService } from '../../security.gbapp/services/SecService'; import { SystemKeywords } from './SystemKeywords'; +import { GBMinService } from '../../core.gbapp/services/GBMinService'; var DateDiff = require('date-diff'); -const { DateTime } = require("luxon"); /** @@ -397,17 +397,7 @@ export class DialogKeywords { * */ public async userMobile(step) { - if (!step) { - return 'N/A'; - } - if (isNaN(step.context.activity['mobile'])) { - if (step.context.activity.from && !isNaN(step.context.activity.from.id)) { - return step.context.activity.from.id; - } - return 'No mobile available.'; - } else { - return step.context.activity['mobile']; - } + return GBMinService.userMobile(step); } /** diff --git a/packages/core.gbapp/services/GBConversationalService.ts b/packages/core.gbapp/services/GBConversationalService.ts index f7725aee..2e151f57 100644 --- a/packages/core.gbapp/services/GBConversationalService.ts +++ b/packages/core.gbapp/services/GBConversationalService.ts @@ -49,6 +49,7 @@ import { GBConfigService } from './GBConfigService'; import { Messages } from '../strings'; import { CollectionUtil, AzureText } from 'pragmatismo-io-framework'; import { GuaribasUser } from '../../security.gbapp/models'; +import { GBMinService } from './GBMinService'; const urlJoin = require('url-join'); const PasswordGenerator = require('strict-password-generator').default; const Nexmo = require('nexmo'); @@ -216,17 +217,7 @@ export class GBConversationalService { } public userMobile(step) { - if (!step) { - return 'N/A'; - } - if (isNaN(step.context.activity['mobile'])) { - if (step.context.activity.from && !isNaN(step.context.activity.from.id)) { - return step.context.activity.from.id; - } - return null; - } else { - return step.context.activity['mobile']; - } + return GBMinService.userMobile(step); } public async sendFile( diff --git a/packages/core.gbapp/services/GBMinService.ts b/packages/core.gbapp/services/GBMinService.ts index 76477437..a857ef10 100644 --- a/packages/core.gbapp/services/GBMinService.ts +++ b/packages/core.gbapp/services/GBMinService.ts @@ -764,7 +764,10 @@ export class GBMinService { } // TODO: Unify in util. - public userMobile(step) { + public static userMobile(step) { + let mobile = WhatsappDirectLine.mobiles[step.context.activity.conversation.id] + return mobile; + if (isNaN(step.context.activity['mobile'])) { if (step.context.activity.from && !isNaN(step.context.activity.from.id)) { return step.context.activity.from.id; @@ -932,7 +935,7 @@ export class GBMinService { } else { GBLog.info(`Person added to conversation: ${member.name}`); - if (this.userMobile(step)) { + if (GBMinService.userMobile(step)) { if (startDialog && !min["conversationWelcomed"][step.context.activity.conversation.id]) { user.welcomed = true; await min.userProfile.set(step.context, user); diff --git a/packages/whatsapp.gblib/services/WhatsappDirectLine.ts b/packages/whatsapp.gblib/services/WhatsappDirectLine.ts index 01c3e782..0afcc1ed 100644 --- a/packages/whatsapp.gblib/services/WhatsappDirectLine.ts +++ b/packages/whatsapp.gblib/services/WhatsappDirectLine.ts @@ -33,7 +33,6 @@ import urlJoin = require('url-join'); const Swagger = require('swagger-client'); -const rp = require('request-promise'); const fs = require('fs'); import { GBLog, GBMinInstance, GBService, IGBPackage } from 'botlib'; import { CollectionUtil } from 'pragmatismo-io-framework'; @@ -49,6 +48,7 @@ import { Messages } from '../strings'; export class WhatsappDirectLine extends GBService { public static conversationIds = {}; + public static mobiles = {}; public pollInterval = 5000; public directLineClientName = 'DirectLineClient'; @@ -293,6 +293,7 @@ export class WhatsappDirectLine extends GBService { const generatedConversationId = response.obj.conversationId; WhatsappDirectLine.conversationIds[from] = generatedConversationId; + WhatsappDirectLine.mobiles[generatedConversationId] = from; this.pollMessages(client, generatedConversationId, from, fromName); this.inputMessage(client, generatedConversationId, text, from, fromName);