@xapp/stentor-service-promio 1.40.112 → 1.40.119

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -29,6 +29,33 @@ export interface PromioExternalLeadExtras {
29
29
  * The URL of the website the lead is on when the lead capture is complete
30
30
  */
31
31
  source?: string;
32
+ /**
33
+ * ID of the bot. Pass this in if you aren't using 'bot' or the STUDIO_APP_ID
34
+ */
35
+ botId?: string;
36
+ }
37
+ export interface PromioLeadTranscript {
38
+ /**
39
+ * What the end user asked
40
+ */
41
+ question: string;
42
+ /**
43
+ * How the bot responded
44
+ */
45
+ answer: string;
46
+ }
47
+ export interface PromioLead extends PromioExternalLeadExtras {
48
+ /**
49
+ * A transcript of the conversation that lead to the lead
50
+ */
51
+ transcript: PromioLeadTranscript[];
52
+ /**
53
+ * The fields and their value for the lead.
54
+ */
55
+ fields: {
56
+ name: string;
57
+ value: string;
58
+ }[];
32
59
  }
33
60
  export interface PromioResponse {
34
61
  Status: "Success" | undefined;
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.PromioService = void 0;
13
13
  const stentor_logger_1 = require("stentor-logger");
14
14
  require("isomorphic-fetch");
15
+ const util_1 = require("./util");
15
16
  const TIMEOUT_MS = 12000;
16
17
  class PromioService {
17
18
  constructor(props) {
@@ -41,11 +42,15 @@ class PromioService {
41
42
  if (!this.props.endPoint) {
42
43
  throw new Error("Promio: endpoint is not set");
43
44
  }
45
+ const transcript = (0, util_1.transformTranscript)(externalLead.transcript, extras === null || extras === void 0 ? void 0 : extras.botId);
44
46
  // Add a couple of items to the external lead
45
- const lead = externalLead;
46
- lead.externalId = extras === null || extras === void 0 ? void 0 : extras.externalId;
47
- lead.completed = extras === null || extras === void 0 ? void 0 : extras.completed;
48
- lead.source = extras === null || extras === void 0 ? void 0 : extras.source;
47
+ const lead = {
48
+ transcript,
49
+ completed: extras === null || extras === void 0 ? void 0 : extras.completed,
50
+ source: extras === null || extras === void 0 ? void 0 : extras.source,
51
+ externalId: extras === null || extras === void 0 ? void 0 : extras.externalId,
52
+ fields: externalLead.fields
53
+ };
49
54
  const url = `${this.props.endPoint}/?${new URLSearchParams({
50
55
  AuthToken: this.props.authToken,
51
56
  DataMap: `${this.props.dataMap}`
@@ -56,7 +61,7 @@ class PromioService {
56
61
  "Content-Type": "application/json"
57
62
  },
58
63
  timeout: TIMEOUT_MS,
59
- body: JSON.stringify(externalLead)
64
+ body: JSON.stringify(lead)
60
65
  };
61
66
  (0, stentor_logger_1.log)().info(`Promio: Sending Leads: ${JSON.stringify(externalLead, undefined, 2)}`);
62
67
  return fetch(url, opts)
@@ -1 +1 @@
1
- {"version":3,"file":"PromioService.js","sourceRoot":"","sources":["../src/PromioService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PromioService.js","sourceRoot":"","sources":["../src/PromioService.ts"],"names":[],"mappings":"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"}
package/lib/util.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ /*! Copyright (c) 2022, XAPPmedia */
2
+ import { Message } from "stentor-models";
3
+ import { PromioLeadTranscript } from "./PromioService";
4
+ export declare function transformTranscript(transcript: Message[], botId?: string): PromioLeadTranscript[];
package/lib/util.js ADDED
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.transformTranscript = void 0;
4
+ function transformTranscript(transcript, botId) {
5
+ const promioTranscript = [];
6
+ const current = {
7
+ question: "",
8
+ answer: ""
9
+ };
10
+ // This is very fragile at the moment
11
+ transcript.forEach((value, index) => {
12
+ const message = value.message;
13
+ let isFromBot = false;
14
+ if (value.from && value.from.id) {
15
+ isFromBot = value.from.id === botId || value.from.id === "bot" || value.from.id === process.env["STUDIO_APP_ID"];
16
+ }
17
+ // Either what they passed in, the app_id, or "bot" which is another possible default
18
+ if (isFromBot) {
19
+ // From the bot, the answer
20
+ current.answer = message;
21
+ }
22
+ else {
23
+ current.question = message;
24
+ }
25
+ if (index % 2) {
26
+ // push if we are on the add number
27
+ promioTranscript.push(Object.assign({}, current));
28
+ // clean it
29
+ current.answer = "";
30
+ current.question = "";
31
+ }
32
+ else {
33
+ // If we are at the end and not on a odd number
34
+ if (index === transcript.length - 1) {
35
+ promioTranscript.push(Object.assign({}, current));
36
+ }
37
+ }
38
+ });
39
+ return promioTranscript;
40
+ }
41
+ exports.transformTranscript = transformTranscript;
42
+ //# sourceMappingURL=util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":";;;AAKA,SAAgB,mBAAmB,CAAC,UAAqB,EAAE,KAAc;IAErE,MAAM,gBAAgB,GAA2B,EAAE,CAAC;IAEpD,MAAM,OAAO,GAAyB;QAClC,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,EAAE;KACb,CAAC;IAEF,qCAAqC;IACrC,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAEhC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAE9B,IAAI,SAAS,GAAY,KAAK,CAAC;QAC/B,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE;YAC7B,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;SACnH;QAED,qFAAqF;QACrF,IAAI,SAAS,EAAE;YACX,2BAA2B;YAC3B,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC;SAC5B;aAAM;YACH,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC;SAC9B;QAED,IAAI,KAAK,GAAG,CAAC,EAAE;YACX,mCAAmC;YACnC,gBAAgB,CAAC,IAAI,mBAAM,OAAO,EAAG,CAAC;YACtC,WAAW;YACX,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC;YACpB,OAAO,CAAC,QAAQ,GAAG,EAAE,CAAA;SACxB;aAAM;YACH,+CAA+C;YAC/C,IAAI,KAAK,KAAK,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;gBACjC,gBAAgB,CAAC,IAAI,mBAAM,OAAO,EAAG,CAAC;aACzC;SACJ;IAGL,CAAC,CAAC,CAAC;IAEH,OAAO,gBAAgB,CAAC;AAC5B,CAAC;AA5CD,kDA4CC"}
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
7
- "version": "1.40.112",
7
+ "version": "1.40.119",
8
8
  "description": "Service to interface the Promio CRM service",
9
9
  "types": "lib/index",
10
10
  "main": "lib/index",
@@ -19,8 +19,10 @@
19
19
  "@types/lodash": "4.14.180",
20
20
  "@xapp/config": "0.2.3",
21
21
  "chai": "4.3.6",
22
- "stentor-logger": "1.54.10",
23
- "stentor-models": "1.54.7",
22
+ "mocha": "9.2.2",
23
+ "stentor-logger": "1.54.12",
24
+ "stentor-models": "1.54.12",
25
+ "ts-node": "9.1.1",
24
26
  "typescript": "4.6.3"
25
27
  },
26
28
  "dependencies": {
@@ -33,7 +35,8 @@
33
35
  },
34
36
  "scripts": {
35
37
  "build": "tsc -d true -p .",
36
- "clean": "rm -rf ./lib/*"
38
+ "clean": "rm -rf ./lib/*",
39
+ "test": "mocha --recursive -r ts-node/register \"./src/**/*.test.ts\""
37
40
  },
38
- "gitHead": "15997c110a4a43de8bb7591dd50d2a690421b4b1"
41
+ "gitHead": "7cbaabb73da2d2b2b19e5c62c503211a7a1ab509"
39
42
  }