@botonic/plugin-hubtype-analytics 0.22.0-alpha.2 → 0.22.0-alpha.4
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.
- package/lib/cjs/event-models/ht-event-agent-rating.d.ts +6 -0
- package/lib/cjs/event-models/ht-event-agent-rating.js +12 -0
- package/lib/cjs/event-models/ht-event-agent-rating.js.map +1 -0
- package/lib/cjs/event-models/ht-event-bot-ai-model.d.ts +8 -0
- package/lib/cjs/event-models/ht-event-bot-ai-model.js +14 -0
- package/lib/cjs/event-models/ht-event-bot-ai-model.js.map +1 -0
- package/lib/cjs/event-models/ht-event-bot-faq.d.ts +6 -0
- package/lib/cjs/event-models/ht-event-bot-faq.js +12 -0
- package/lib/cjs/event-models/ht-event-bot-faq.js.map +1 -0
- package/lib/cjs/event-models/ht-event-bot-keyword-model.d.ts +6 -0
- package/lib/cjs/event-models/ht-event-bot-keyword-model.js +12 -0
- package/lib/cjs/event-models/ht-event-bot-keyword-model.js.map +1 -0
- package/lib/cjs/event-models/ht-event-bot-rating.d.ts +8 -0
- package/lib/cjs/event-models/ht-event-bot-rating.js +14 -0
- package/lib/cjs/event-models/ht-event-bot-rating.js.map +1 -0
- package/lib/cjs/event-models/ht-event-channel-rating.d.ts +6 -0
- package/lib/cjs/event-models/ht-event-channel-rating.js +12 -0
- package/lib/cjs/event-models/ht-event-channel-rating.js.map +1 -0
- package/lib/cjs/event-models/ht-event-faq-useful.d.ts +7 -0
- package/lib/cjs/event-models/ht-event-faq-useful.js +13 -0
- package/lib/cjs/event-models/ht-event-faq-useful.js.map +1 -0
- package/lib/cjs/event-models/ht-event-handoff-fail.d.ts +8 -0
- package/lib/cjs/event-models/ht-event-handoff-fail.js +14 -0
- package/lib/cjs/event-models/ht-event-handoff-fail.js.map +1 -0
- package/lib/cjs/event-models/ht-event-handoff-success.d.ts +8 -0
- package/lib/cjs/event-models/ht-event-handoff-success.js +14 -0
- package/lib/cjs/event-models/ht-event-handoff-success.js.map +1 -0
- package/lib/cjs/event-models/ht-event.d.ts +8 -0
- package/lib/cjs/event-models/ht-event.js +59 -0
- package/lib/cjs/event-models/ht-event.js.map +1 -0
- package/lib/cjs/index.d.ts +16 -0
- package/lib/cjs/index.js +42 -0
- package/lib/cjs/index.js.map +1 -0
- package/lib/cjs/types.d.ts +117 -0
- package/lib/cjs/types.js +20 -0
- package/lib/cjs/types.js.map +1 -0
- package/lib/esm/event-models/ht-event-agent-rating.d.ts +6 -0
- package/lib/esm/event-models/ht-event-agent-rating.js +8 -0
- package/lib/esm/event-models/ht-event-agent-rating.js.map +1 -0
- package/lib/esm/event-models/ht-event-bot-ai-model.d.ts +8 -0
- package/lib/esm/event-models/ht-event-bot-ai-model.js +10 -0
- package/lib/esm/event-models/ht-event-bot-ai-model.js.map +1 -0
- package/lib/esm/event-models/ht-event-bot-faq.d.ts +6 -0
- package/lib/esm/event-models/ht-event-bot-faq.js +8 -0
- package/lib/esm/event-models/ht-event-bot-faq.js.map +1 -0
- package/lib/esm/event-models/ht-event-bot-keyword-model.d.ts +6 -0
- package/lib/esm/event-models/ht-event-bot-keyword-model.js +8 -0
- package/lib/esm/event-models/ht-event-bot-keyword-model.js.map +1 -0
- package/lib/esm/event-models/ht-event-bot-rating.d.ts +8 -0
- package/lib/esm/event-models/ht-event-bot-rating.js +10 -0
- package/lib/esm/event-models/ht-event-bot-rating.js.map +1 -0
- package/lib/esm/event-models/ht-event-channel-rating.d.ts +6 -0
- package/lib/esm/event-models/ht-event-channel-rating.js +8 -0
- package/lib/esm/event-models/ht-event-channel-rating.js.map +1 -0
- package/lib/esm/event-models/ht-event-faq-useful.d.ts +7 -0
- package/lib/esm/event-models/ht-event-faq-useful.js +9 -0
- package/lib/esm/event-models/ht-event-faq-useful.js.map +1 -0
- package/lib/esm/event-models/ht-event-handoff-fail.d.ts +8 -0
- package/lib/esm/event-models/ht-event-handoff-fail.js +10 -0
- package/lib/esm/event-models/ht-event-handoff-fail.js.map +1 -0
- package/lib/esm/event-models/ht-event-handoff-success.d.ts +8 -0
- package/lib/esm/event-models/ht-event-handoff-success.js +10 -0
- package/lib/esm/event-models/ht-event-handoff-success.js.map +1 -0
- package/lib/esm/event-models/ht-event.d.ts +8 -0
- package/lib/esm/event-models/ht-event.js +55 -0
- package/lib/esm/event-models/ht-event.js.map +1 -0
- package/lib/esm/index.d.ts +16 -0
- package/lib/esm/index.js +38 -0
- package/lib/esm/index.js.map +1 -0
- package/lib/esm/types.d.ts +117 -0
- package/lib/esm/types.js +17 -0
- package/lib/esm/types.js.map +1 -0
- package/package.json +22 -17
- package/src/event-models/ht-event-agent-rating.ts +11 -0
- package/src/event-models/ht-event-bot-ai-model.ts +15 -0
- package/src/event-models/ht-event-bot-faq.ts +11 -0
- package/src/event-models/ht-event-bot-keyword-model.ts +12 -0
- package/src/event-models/ht-event-bot-rating.ts +15 -0
- package/src/event-models/ht-event-channel-rating.ts +11 -0
- package/src/event-models/ht-event-faq-useful.ts +13 -0
- package/src/event-models/ht-event-handoff-fail.ts +15 -0
- package/src/event-models/ht-event-handoff-success.ts +15 -0
- package/src/event-models/ht-event.ts +61 -0
- package/src/index.ts +30 -18
- package/src/types.ts +76 -49
- package/tsconfig.esm.json +0 -11
- package/tsconfig.json +0 -13
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { HtEvent } from './ht-event';
|
|
2
|
+
export class HtEventBotRating extends HtEvent {
|
|
3
|
+
constructor(event, requestData) {
|
|
4
|
+
super(event, requestData);
|
|
5
|
+
this.rating = event.event_data.rating;
|
|
6
|
+
this.free_comment = event.event_data.free_comment;
|
|
7
|
+
this.selected_options = event.event_data.selected_options;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=ht-event-bot-rating.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ht-event-bot-rating.js","sourceRoot":"","sources":["../../../src/event-models/ht-event-bot-rating.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpC,MAAM,OAAO,gBAAiB,SAAQ,OAAO;IAK3C,YAAY,KAAqB,EAAE,WAAwB;QACzD,KAAK,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;QACzB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAA;QACrC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,UAAU,CAAC,YAAY,CAAA;QACjD,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAA;IAC3D,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ht-event-channel-rating.js","sourceRoot":"","sources":["../../../src/event-models/ht-event-channel-rating.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpC,MAAM,OAAO,oBAAqB,SAAQ,OAAO;IAG/C,YAAY,KAAyB,EAAE,WAAwB;QAC7D,KAAK,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;QACzB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAA;IACvC,CAAC;CACF"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { HtEvent } from './ht-event';
|
|
2
|
+
export class HtEventFaqUseful extends HtEvent {
|
|
3
|
+
constructor(event, requestData) {
|
|
4
|
+
super(event, requestData);
|
|
5
|
+
this.faq_name = event.event_data.faq_name;
|
|
6
|
+
this.useful = event.event_data.useful;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=ht-event-faq-useful.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ht-event-faq-useful.js","sourceRoot":"","sources":["../../../src/event-models/ht-event-faq-useful.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpC,MAAM,OAAO,gBAAiB,SAAQ,OAAO;IAI3C,YAAY,KAAqB,EAAE,WAAwB;QACzD,KAAK,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;QACzB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAA;QACzC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAA;IACvC,CAAC;CACF"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { EventHandoffFail, RequestData } from '../types';
|
|
2
|
+
import { HtEvent } from './ht-event';
|
|
3
|
+
export declare class HtEventHandoffFail extends HtEvent {
|
|
4
|
+
queue_open: boolean;
|
|
5
|
+
available_agents: boolean;
|
|
6
|
+
threshold_reached: boolean;
|
|
7
|
+
constructor(event: EventHandoffFail, requestData: RequestData);
|
|
8
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { HtEvent } from './ht-event';
|
|
2
|
+
export class HtEventHandoffFail extends HtEvent {
|
|
3
|
+
constructor(event, requestData) {
|
|
4
|
+
super(event, requestData);
|
|
5
|
+
this.queue_open = event.event_data.queue_open;
|
|
6
|
+
this.available_agents = event.event_data.available_agents;
|
|
7
|
+
this.threshold_reached = event.event_data.threshold_reached;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=ht-event-handoff-fail.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ht-event-handoff-fail.js","sourceRoot":"","sources":["../../../src/event-models/ht-event-handoff-fail.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpC,MAAM,OAAO,kBAAmB,SAAQ,OAAO;IAK7C,YAAY,KAAuB,EAAE,WAAwB;QAC3D,KAAK,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;QACzB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,UAAU,CAAA;QAC7C,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAA;QACzD,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAA;IAC7D,CAAC;CACF"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { EventHandoffSuccess, RequestData } from '../types';
|
|
2
|
+
import { HtEvent } from './ht-event';
|
|
3
|
+
export declare class HtEventHandoffSuccess extends HtEvent {
|
|
4
|
+
queue_open: boolean;
|
|
5
|
+
available_agents: boolean;
|
|
6
|
+
threshold_reached: boolean;
|
|
7
|
+
constructor(event: EventHandoffSuccess, requestData: RequestData);
|
|
8
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { HtEvent } from './ht-event';
|
|
2
|
+
export class HtEventHandoffSuccess extends HtEvent {
|
|
3
|
+
constructor(event, requestData) {
|
|
4
|
+
super(event, requestData);
|
|
5
|
+
this.queue_open = event.event_data.queue_open;
|
|
6
|
+
this.available_agents = event.event_data.available_agents;
|
|
7
|
+
this.threshold_reached = event.event_data.threshold_reached;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=ht-event-handoff-success.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ht-event-handoff-success.js","sourceRoot":"","sources":["../../../src/event-models/ht-event-handoff-success.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpC,MAAM,OAAO,qBAAsB,SAAQ,OAAO;IAKhD,YAAY,KAA0B,EAAE,WAAwB;QAC9D,KAAK,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;QACzB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,UAAU,CAAA;QAC7C,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAA;QACzD,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAA;IAC7D,CAAC;CACF"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { BaseEventData, EventName, HtEventProps, RequestData } from '../types';
|
|
2
|
+
export declare class HtEvent {
|
|
3
|
+
chat: string;
|
|
4
|
+
event_type: EventName;
|
|
5
|
+
event_data: BaseEventData;
|
|
6
|
+
protected constructor(event: HtEventProps, requestData: RequestData);
|
|
7
|
+
static create(requestData: RequestData, htEventProps: HtEventProps): HtEvent;
|
|
8
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { EventName } from '../types';
|
|
2
|
+
import { HtEventAgentRating } from './ht-event-agent-rating';
|
|
3
|
+
import { HtEventBotAiModel } from './ht-event-bot-ai-model';
|
|
4
|
+
import { HtEventBotFaq } from './ht-event-bot-faq';
|
|
5
|
+
import { HtEventBotKeywordModel } from './ht-event-bot-keyword-model';
|
|
6
|
+
import { HtEventBotRating } from './ht-event-bot-rating';
|
|
7
|
+
import { HtEventChannelRating } from './ht-event-channel-rating';
|
|
8
|
+
import { HtEventFaqUseful } from './ht-event-faq-useful';
|
|
9
|
+
import { HtEventHandoffFail } from './ht-event-handoff-fail';
|
|
10
|
+
import { HtEventHandoffSuccess } from './ht-event-handoff-success';
|
|
11
|
+
export class HtEvent {
|
|
12
|
+
constructor(event, requestData) {
|
|
13
|
+
this.chat = requestData.userId;
|
|
14
|
+
this.event_type = event.event_type;
|
|
15
|
+
this.event_data = {
|
|
16
|
+
channel: requestData.provider,
|
|
17
|
+
event_datetime: new Date().toISOString(),
|
|
18
|
+
enduser_language: requestData.language,
|
|
19
|
+
enduser_country: requestData.country,
|
|
20
|
+
format_version: 1,
|
|
21
|
+
// flow_version?: string
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
static create(requestData, htEventProps) {
|
|
25
|
+
if (htEventProps.event_type === EventName.botAgentRating) {
|
|
26
|
+
return new HtEventAgentRating(htEventProps, requestData);
|
|
27
|
+
}
|
|
28
|
+
if (htEventProps.event_type === EventName.botChannelRating) {
|
|
29
|
+
return new HtEventChannelRating(htEventProps, requestData);
|
|
30
|
+
}
|
|
31
|
+
if (htEventProps.event_type === EventName.botFaqUseful) {
|
|
32
|
+
return new HtEventFaqUseful(htEventProps, requestData);
|
|
33
|
+
}
|
|
34
|
+
if (htEventProps.event_type === EventName.botRating) {
|
|
35
|
+
return new HtEventBotRating(htEventProps, requestData);
|
|
36
|
+
}
|
|
37
|
+
if (htEventProps.event_type === EventName.botFaq) {
|
|
38
|
+
return new HtEventBotFaq(htEventProps, requestData);
|
|
39
|
+
}
|
|
40
|
+
if (htEventProps.event_type === EventName.botAiModel) {
|
|
41
|
+
return new HtEventBotAiModel(htEventProps, requestData);
|
|
42
|
+
}
|
|
43
|
+
if (htEventProps.event_type === EventName.botKeywordsModel) {
|
|
44
|
+
return new HtEventBotKeywordModel(htEventProps, requestData);
|
|
45
|
+
}
|
|
46
|
+
if (htEventProps.event_type === EventName.handoffSuccess) {
|
|
47
|
+
return new HtEventHandoffSuccess(htEventProps, requestData);
|
|
48
|
+
}
|
|
49
|
+
if (htEventProps.event_type === EventName.handoffFail) {
|
|
50
|
+
return new HtEventHandoffFail(htEventProps, requestData);
|
|
51
|
+
}
|
|
52
|
+
return new HtEvent(htEventProps, requestData);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=ht-event.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ht-event.js","sourceRoot":"","sources":["../../../src/event-models/ht-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,SAAS,EAA6B,MAAM,UAAU,CAAA;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAElE,MAAM,OAAO,OAAO;IAKlB,YAAsB,KAAmB,EAAE,WAAwB;QACjE,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC,MAAM,CAAA;QAC9B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAA;QAClC,IAAI,CAAC,UAAU,GAAG;YAChB,OAAO,EAAE,WAAW,CAAC,QAAQ;YAC7B,cAAc,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACxC,gBAAgB,EAAE,WAAW,CAAC,QAAQ;YACtC,eAAe,EAAE,WAAW,CAAC,OAAO;YACpC,cAAc,EAAE,CAAC;YACjB,wBAAwB;SACzB,CAAA;IACH,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,WAAwB,EAAE,YAA0B;QAChE,IAAI,YAAY,CAAC,UAAU,KAAK,SAAS,CAAC,cAAc,EAAE;YACxD,OAAO,IAAI,kBAAkB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;SACzD;QACD,IAAI,YAAY,CAAC,UAAU,KAAK,SAAS,CAAC,gBAAgB,EAAE;YAC1D,OAAO,IAAI,oBAAoB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;SAC3D;QACD,IAAI,YAAY,CAAC,UAAU,KAAK,SAAS,CAAC,YAAY,EAAE;YACtD,OAAO,IAAI,gBAAgB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;SACvD;QACD,IAAI,YAAY,CAAC,UAAU,KAAK,SAAS,CAAC,SAAS,EAAE;YACnD,OAAO,IAAI,gBAAgB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;SACvD;QACD,IAAI,YAAY,CAAC,UAAU,KAAK,SAAS,CAAC,MAAM,EAAE;YAChD,OAAO,IAAI,aAAa,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;SACpD;QACD,IAAI,YAAY,CAAC,UAAU,KAAK,SAAS,CAAC,UAAU,EAAE;YACpD,OAAO,IAAI,iBAAiB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;SACxD;QACD,IAAI,YAAY,CAAC,UAAU,KAAK,SAAS,CAAC,gBAAgB,EAAE;YAC1D,OAAO,IAAI,sBAAsB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;SAC7D;QACD,IAAI,YAAY,CAAC,UAAU,KAAK,SAAS,CAAC,cAAc,EAAE;YACxD,OAAO,IAAI,qBAAqB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;SAC5D;QACD,IAAI,YAAY,CAAC,UAAU,KAAK,SAAS,CAAC,WAAW,EAAE;YACrD,OAAO,IAAI,kBAAkB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;SACzD;QAED,OAAO,IAAI,OAAO,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;IAC/C,CAAC;CACF"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { BotRequest, Plugin } from '@botonic/core';
|
|
2
|
+
import { HtEventProps, RequestData } from './types';
|
|
3
|
+
export interface HubtypeAnalyticsOptions {
|
|
4
|
+
getLaguange?: (request: BotRequest) => string;
|
|
5
|
+
getCountry?: (request: BotRequest) => string;
|
|
6
|
+
}
|
|
7
|
+
export default class BotonicPluginHubtypeAnalytics implements Plugin {
|
|
8
|
+
baseUrl: string;
|
|
9
|
+
getLaguange: (request: BotRequest) => string;
|
|
10
|
+
getCountry: (request: BotRequest) => string;
|
|
11
|
+
constructor(options: HubtypeAnalyticsOptions);
|
|
12
|
+
post(): void;
|
|
13
|
+
getUrl(request: BotRequest): string;
|
|
14
|
+
getRequestData(request: BotRequest): RequestData;
|
|
15
|
+
trackEvent(request: BotRequest, htEventProps: HtEventProps): Promise<import("axios").AxiosResponse<any, any>>;
|
|
16
|
+
}
|
package/lib/esm/index.js
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import axios from 'axios';
|
|
2
|
+
import { HtEvent } from './event-models/ht-event';
|
|
3
|
+
function getDefaultLanguage(request) {
|
|
4
|
+
return request.session.user.extra_data.language;
|
|
5
|
+
}
|
|
6
|
+
function getDefaultCountry(request) {
|
|
7
|
+
return request.session.user.extra_data.country;
|
|
8
|
+
}
|
|
9
|
+
export default class BotonicPluginHubtypeAnalytics {
|
|
10
|
+
constructor(options) {
|
|
11
|
+
this.baseUrl = process.env.HUBTYPE_API_URL || 'https://api.hubtype.com';
|
|
12
|
+
this.getLaguange = options.getLaguange || getDefaultLanguage;
|
|
13
|
+
this.getCountry = options.getCountry || getDefaultCountry;
|
|
14
|
+
}
|
|
15
|
+
post() {
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
getUrl(request) {
|
|
19
|
+
return `${this.baseUrl}/external/v1/conversational_apps/${request.session.bot.id}/bot_event/`;
|
|
20
|
+
}
|
|
21
|
+
getRequestData(request) {
|
|
22
|
+
return {
|
|
23
|
+
language: this.getLaguange(request),
|
|
24
|
+
country: this.getCountry(request),
|
|
25
|
+
provider: request.session.user.provider,
|
|
26
|
+
userId: request.session.user.id,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
async trackEvent(request, htEventProps) {
|
|
30
|
+
const url = this.getUrl(request);
|
|
31
|
+
const requestData = this.getRequestData(request);
|
|
32
|
+
const event = HtEvent.create(requestData, htEventProps);
|
|
33
|
+
const headers = { Authorization: `Bearer ${request.session._access_token}` };
|
|
34
|
+
const config = { headers };
|
|
35
|
+
return axios.post(url, event, config);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AAQjD,SAAS,kBAAkB,CAAC,OAAmB;IAC7C,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAA;AACjD,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAmB;IAC5C,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAA;AAChD,CAAC;AAED,MAAM,CAAC,OAAO,OAAO,6BAA6B;IAIhD,YAAY,OAAgC;QAC1C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,yBAAyB,CAAA;QACvE,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,kBAAkB,CAAA;QAC5D,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,iBAAiB,CAAA;IAC3D,CAAC;IAED,IAAI;QACF,OAAM;IACR,CAAC;IAED,MAAM,CAAC,OAAmB;QACxB,OAAO,GAAG,IAAI,CAAC,OAAO,oCAAoC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,aAAa,CAAA;IAC/F,CAAC;IAED,cAAc,CAAC,OAAmB;QAChC,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;YACnC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YACjC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ;YACvC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;SAChC,CAAA;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAAmB,EAAE,YAA0B;QAC9D,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAChC,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;QAChD,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC,CAAA;QACvD,MAAM,OAAO,GAAG,EAAE,aAAa,EAAE,UAAU,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAA;QAC5E,MAAM,MAAM,GAAG,EAAE,OAAO,EAAE,CAAA;QAC1B,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;IACvC,CAAC;CACF"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { PROVIDER } from '@botonic/core';
|
|
2
|
+
export interface Event {
|
|
3
|
+
chat: string;
|
|
4
|
+
event_type: EventName;
|
|
5
|
+
event_data: BaseEventData;
|
|
6
|
+
}
|
|
7
|
+
export declare enum EventName {
|
|
8
|
+
botAgentRating = "bot_agent_rating",
|
|
9
|
+
botChannelRating = "bot_channel_rating",
|
|
10
|
+
botFaqUseful = "bot_faq_useful",
|
|
11
|
+
botRating = "bot_rating",
|
|
12
|
+
botFaq = "bot_faq",
|
|
13
|
+
botStart = "bot_start",
|
|
14
|
+
botOpen = "bot_open",
|
|
15
|
+
botAiModel = "bot_ai_model",
|
|
16
|
+
botKeywordsModel = "bot_keywords_model",
|
|
17
|
+
fallback = "fallback",
|
|
18
|
+
handoffOption = "handoff_option",
|
|
19
|
+
handoffSuccess = "handoff_success",
|
|
20
|
+
handoffFail = "handoff_fail"
|
|
21
|
+
}
|
|
22
|
+
export interface BaseEventData {
|
|
23
|
+
channel: string;
|
|
24
|
+
event_datetime: string;
|
|
25
|
+
enduser_language: string;
|
|
26
|
+
enduser_country?: string;
|
|
27
|
+
format_version?: number;
|
|
28
|
+
bot_version?: string;
|
|
29
|
+
flow_version?: string;
|
|
30
|
+
}
|
|
31
|
+
export interface HtBaseEventProps {
|
|
32
|
+
event_type: EventName;
|
|
33
|
+
}
|
|
34
|
+
export interface EventAgentRating extends HtBaseEventProps {
|
|
35
|
+
event_type: EventName.botAgentRating;
|
|
36
|
+
event_data: EventDataRating;
|
|
37
|
+
}
|
|
38
|
+
export interface EventChannelRating extends HtBaseEventProps {
|
|
39
|
+
event_type: EventName.botChannelRating;
|
|
40
|
+
event_data: EventDataRating;
|
|
41
|
+
}
|
|
42
|
+
export interface EventDataRating {
|
|
43
|
+
rating: number;
|
|
44
|
+
}
|
|
45
|
+
export interface EventFaqUseful extends HtBaseEventProps {
|
|
46
|
+
event_type: EventName.botFaqUseful;
|
|
47
|
+
event_data: EventDataUseful;
|
|
48
|
+
}
|
|
49
|
+
export interface EventDataUseful {
|
|
50
|
+
faq_name: string;
|
|
51
|
+
useful: boolean;
|
|
52
|
+
}
|
|
53
|
+
export interface EventBotRating extends HtBaseEventProps {
|
|
54
|
+
event_type: EventName.botRating;
|
|
55
|
+
event_data: EventDataBotRating;
|
|
56
|
+
}
|
|
57
|
+
interface EventDataBotRating {
|
|
58
|
+
rating: number;
|
|
59
|
+
free_comment?: string;
|
|
60
|
+
selected_options?: string[];
|
|
61
|
+
}
|
|
62
|
+
export interface EventBotFaq extends HtBaseEventProps {
|
|
63
|
+
event_type: EventName.botFaq;
|
|
64
|
+
event_data: EventDataBotFaq;
|
|
65
|
+
}
|
|
66
|
+
interface EventDataBotFaq {
|
|
67
|
+
faq_name: string;
|
|
68
|
+
}
|
|
69
|
+
export interface EventBotStart extends HtBaseEventProps {
|
|
70
|
+
event_type: EventName.botStart;
|
|
71
|
+
}
|
|
72
|
+
export interface EventBotOpen {
|
|
73
|
+
event_type: EventName.botOpen;
|
|
74
|
+
}
|
|
75
|
+
export interface EventBotAiModel {
|
|
76
|
+
event_type: EventName.botAiModel;
|
|
77
|
+
event_data: EventDataBotAiModel;
|
|
78
|
+
}
|
|
79
|
+
interface EventDataBotAiModel {
|
|
80
|
+
intent: string;
|
|
81
|
+
confidence: number;
|
|
82
|
+
confidence_successful: boolean;
|
|
83
|
+
}
|
|
84
|
+
export interface EventBotKeywordModel extends HtBaseEventProps {
|
|
85
|
+
event_type: EventName.botKeywordsModel;
|
|
86
|
+
event_data: EventDataBotKeywordModel;
|
|
87
|
+
}
|
|
88
|
+
interface EventDataBotKeywordModel {
|
|
89
|
+
confidence_successful: boolean;
|
|
90
|
+
}
|
|
91
|
+
export interface EventFallback extends HtBaseEventProps {
|
|
92
|
+
event_type: EventName.fallback;
|
|
93
|
+
}
|
|
94
|
+
export interface EventHandoffOption extends HtBaseEventProps {
|
|
95
|
+
event_type: EventName.handoffOption;
|
|
96
|
+
}
|
|
97
|
+
export interface EventHandoffSuccess extends HtBaseEventProps {
|
|
98
|
+
event_type: EventName.handoffSuccess;
|
|
99
|
+
event_data: EventDataHandoff;
|
|
100
|
+
}
|
|
101
|
+
export interface EventHandoffFail extends HtBaseEventProps {
|
|
102
|
+
event_type: EventName.handoffFail;
|
|
103
|
+
event_data: EventDataHandoff;
|
|
104
|
+
}
|
|
105
|
+
interface EventDataHandoff {
|
|
106
|
+
queue_open: boolean;
|
|
107
|
+
available_agents: boolean;
|
|
108
|
+
threshold_reached: boolean;
|
|
109
|
+
}
|
|
110
|
+
export type HtEventProps = EventAgentRating | EventChannelRating | EventFaqUseful | EventBotRating | EventBotFaq | EventBotStart | EventBotOpen | EventBotAiModel | EventBotKeywordModel | EventFallback | EventHandoffOption | EventHandoffSuccess | EventHandoffFail;
|
|
111
|
+
export interface RequestData {
|
|
112
|
+
language: string;
|
|
113
|
+
country: string;
|
|
114
|
+
provider: PROVIDER;
|
|
115
|
+
userId: string;
|
|
116
|
+
}
|
|
117
|
+
export {};
|
package/lib/esm/types.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export var EventName;
|
|
2
|
+
(function (EventName) {
|
|
3
|
+
EventName["botAgentRating"] = "bot_agent_rating";
|
|
4
|
+
EventName["botChannelRating"] = "bot_channel_rating";
|
|
5
|
+
EventName["botFaqUseful"] = "bot_faq_useful";
|
|
6
|
+
EventName["botRating"] = "bot_rating";
|
|
7
|
+
EventName["botFaq"] = "bot_faq";
|
|
8
|
+
EventName["botStart"] = "bot_start";
|
|
9
|
+
EventName["botOpen"] = "bot_open";
|
|
10
|
+
EventName["botAiModel"] = "bot_ai_model";
|
|
11
|
+
EventName["botKeywordsModel"] = "bot_keywords_model";
|
|
12
|
+
EventName["fallback"] = "fallback";
|
|
13
|
+
EventName["handoffOption"] = "handoff_option";
|
|
14
|
+
EventName["handoffSuccess"] = "handoff_success";
|
|
15
|
+
EventName["handoffFail"] = "handoff_fail";
|
|
16
|
+
})(EventName || (EventName = {}));
|
|
17
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAQA,MAAM,CAAN,IAAY,SAcX;AAdD,WAAY,SAAS;IACnB,gDAAmC,CAAA;IACnC,oDAAuC,CAAA;IACvC,4CAA+B,CAAA;IAC/B,qCAAwB,CAAA;IACxB,+BAAkB,CAAA;IAClB,mCAAsB,CAAA;IACtB,iCAAoB,CAAA;IACpB,wCAA2B,CAAA;IAC3B,oDAAuC,CAAA;IACvC,kCAAqB,CAAA;IACrB,6CAAgC,CAAA;IAChC,+CAAkC,CAAA;IAClC,yCAA4B,CAAA;AAC9B,CAAC,EAdW,SAAS,KAAT,SAAS,QAcpB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@botonic/plugin-hubtype-analytics",
|
|
3
|
-
"version": "0.22.0-alpha.
|
|
3
|
+
"version": "0.22.0-alpha.4",
|
|
4
4
|
"description": "Plugin for tracking in the Hubtype backend to see the results in the Hubtype Dashbord",
|
|
5
5
|
"main": "./lib/cjs/index.js",
|
|
6
6
|
"module": "./lib/esm/index.js",
|
|
@@ -13,30 +13,35 @@
|
|
|
13
13
|
"lint_ci": "npm run lint_core -- -c ../.eslintrc_slow.js",
|
|
14
14
|
"lint_core": "../../node_modules/.bin/eslint_d --cache --quiet 'src/**/*.ts*'"
|
|
15
15
|
},
|
|
16
|
-
"keywords": [
|
|
17
|
-
"analytics",
|
|
18
|
-
"bot-framework",
|
|
19
|
-
"chatbot",
|
|
20
|
-
"conversational-app",
|
|
21
|
-
"conversational-ui",
|
|
22
|
-
"javascript",
|
|
23
|
-
"typescript"
|
|
24
|
-
],
|
|
25
|
-
"author": "Hubtype",
|
|
26
|
-
"license": "MIT",
|
|
27
16
|
"dependencies": {
|
|
28
17
|
"@babel/runtime": "^7.21.0",
|
|
29
18
|
"@botonic/core": "^0.22.0",
|
|
30
19
|
"@types/axios": "^0.14.0",
|
|
31
20
|
"axios": "^1.4.0"
|
|
32
21
|
},
|
|
33
|
-
"eslintConfig": {
|
|
34
|
-
"extends": "../.eslintrc.js",
|
|
35
|
-
"root": true
|
|
36
|
-
},
|
|
37
22
|
"devDependencies": {
|
|
38
23
|
"@types/node": "^16.11.7",
|
|
39
24
|
"@types/react": "^16.14.0",
|
|
40
25
|
"typescript": "^4.8.4"
|
|
41
|
-
}
|
|
26
|
+
},
|
|
27
|
+
"files": [
|
|
28
|
+
"lib/**",
|
|
29
|
+
"src/**",
|
|
30
|
+
"README.md"
|
|
31
|
+
],
|
|
32
|
+
"eslintConfig": {
|
|
33
|
+
"extends": "../.eslintrc.js",
|
|
34
|
+
"root": true
|
|
35
|
+
},
|
|
36
|
+
"author": "",
|
|
37
|
+
"license": "MIT",
|
|
38
|
+
"keywords": [
|
|
39
|
+
"analytics",
|
|
40
|
+
"bot-framework",
|
|
41
|
+
"chatbot",
|
|
42
|
+
"conversational-app",
|
|
43
|
+
"conversational-ui",
|
|
44
|
+
"javascript",
|
|
45
|
+
"typescript"
|
|
46
|
+
]
|
|
42
47
|
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { EventAgentRating, RequestData } from '../types'
|
|
2
|
+
import { HtEvent } from './ht-event'
|
|
3
|
+
|
|
4
|
+
export class HtEventAgentRating extends HtEvent {
|
|
5
|
+
rating: number
|
|
6
|
+
|
|
7
|
+
constructor(event: EventAgentRating, requestData: RequestData) {
|
|
8
|
+
super(event, requestData)
|
|
9
|
+
this.rating = event.event_data.rating
|
|
10
|
+
}
|
|
11
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { EventBotAiModel, RequestData } from '../types'
|
|
2
|
+
import { HtEvent } from './ht-event'
|
|
3
|
+
|
|
4
|
+
export class HtEventBotAiModel extends HtEvent {
|
|
5
|
+
intent: string
|
|
6
|
+
confidence: number
|
|
7
|
+
confidence_successful: boolean
|
|
8
|
+
|
|
9
|
+
constructor(event: EventBotAiModel, requestData: RequestData) {
|
|
10
|
+
super(event, requestData)
|
|
11
|
+
this.intent = event.event_data.intent
|
|
12
|
+
this.confidence = event.event_data.confidence
|
|
13
|
+
this.confidence_successful = event.event_data.confidence_successful
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { EventBotFaq, RequestData } from '../types'
|
|
2
|
+
import { HtEvent } from './ht-event'
|
|
3
|
+
|
|
4
|
+
export class HtEventBotFaq extends HtEvent {
|
|
5
|
+
faq_name: string
|
|
6
|
+
|
|
7
|
+
constructor(event: EventBotFaq, requestData: RequestData) {
|
|
8
|
+
super(event, requestData)
|
|
9
|
+
this.faq_name = event.event_data.faq_name
|
|
10
|
+
}
|
|
11
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { EventBotKeywordModel, RequestData } from '../types'
|
|
2
|
+
import { HtEvent } from './ht-event'
|
|
3
|
+
|
|
4
|
+
export class HtEventBotKeywordModel extends HtEvent {
|
|
5
|
+
confidence_successful: boolean
|
|
6
|
+
|
|
7
|
+
constructor(event: EventBotKeywordModel, requestData: RequestData) {
|
|
8
|
+
super(event, requestData)
|
|
9
|
+
|
|
10
|
+
this.confidence_successful = event.event_data.confidence_successful
|
|
11
|
+
}
|
|
12
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { EventBotRating, RequestData } from '../types'
|
|
2
|
+
import { HtEvent } from './ht-event'
|
|
3
|
+
|
|
4
|
+
export class HtEventBotRating extends HtEvent {
|
|
5
|
+
rating: number
|
|
6
|
+
free_comment?: string
|
|
7
|
+
selected_options?: string[]
|
|
8
|
+
|
|
9
|
+
constructor(event: EventBotRating, requestData: RequestData) {
|
|
10
|
+
super(event, requestData)
|
|
11
|
+
this.rating = event.event_data.rating
|
|
12
|
+
this.free_comment = event.event_data.free_comment
|
|
13
|
+
this.selected_options = event.event_data.selected_options
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { EventChannelRating, RequestData } from '../types'
|
|
2
|
+
import { HtEvent } from './ht-event'
|
|
3
|
+
|
|
4
|
+
export class HtEventChannelRating extends HtEvent {
|
|
5
|
+
rating: number
|
|
6
|
+
|
|
7
|
+
constructor(event: EventChannelRating, requestData: RequestData) {
|
|
8
|
+
super(event, requestData)
|
|
9
|
+
this.rating = event.event_data.rating
|
|
10
|
+
}
|
|
11
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { EventFaqUseful, RequestData } from '../types'
|
|
2
|
+
import { HtEvent } from './ht-event'
|
|
3
|
+
|
|
4
|
+
export class HtEventFaqUseful extends HtEvent {
|
|
5
|
+
faq_name: string
|
|
6
|
+
useful: boolean
|
|
7
|
+
|
|
8
|
+
constructor(event: EventFaqUseful, requestData: RequestData) {
|
|
9
|
+
super(event, requestData)
|
|
10
|
+
this.faq_name = event.event_data.faq_name
|
|
11
|
+
this.useful = event.event_data.useful
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { EventHandoffFail, RequestData } from '../types'
|
|
2
|
+
import { HtEvent } from './ht-event'
|
|
3
|
+
|
|
4
|
+
export class HtEventHandoffFail extends HtEvent {
|
|
5
|
+
queue_open: boolean
|
|
6
|
+
available_agents: boolean
|
|
7
|
+
threshold_reached: boolean
|
|
8
|
+
|
|
9
|
+
constructor(event: EventHandoffFail, requestData: RequestData) {
|
|
10
|
+
super(event, requestData)
|
|
11
|
+
this.queue_open = event.event_data.queue_open
|
|
12
|
+
this.available_agents = event.event_data.available_agents
|
|
13
|
+
this.threshold_reached = event.event_data.threshold_reached
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { EventHandoffSuccess, RequestData } from '../types'
|
|
2
|
+
import { HtEvent } from './ht-event'
|
|
3
|
+
|
|
4
|
+
export class HtEventHandoffSuccess extends HtEvent {
|
|
5
|
+
queue_open: boolean
|
|
6
|
+
available_agents: boolean
|
|
7
|
+
threshold_reached: boolean
|
|
8
|
+
|
|
9
|
+
constructor(event: EventHandoffSuccess, requestData: RequestData) {
|
|
10
|
+
super(event, requestData)
|
|
11
|
+
this.queue_open = event.event_data.queue_open
|
|
12
|
+
this.available_agents = event.event_data.available_agents
|
|
13
|
+
this.threshold_reached = event.event_data.threshold_reached
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { BaseEventData, EventName, HtEventProps, RequestData } from '../types'
|
|
2
|
+
import { HtEventAgentRating } from './ht-event-agent-rating'
|
|
3
|
+
import { HtEventBotAiModel } from './ht-event-bot-ai-model'
|
|
4
|
+
import { HtEventBotFaq } from './ht-event-bot-faq'
|
|
5
|
+
import { HtEventBotKeywordModel } from './ht-event-bot-keyword-model'
|
|
6
|
+
import { HtEventBotRating } from './ht-event-bot-rating'
|
|
7
|
+
import { HtEventChannelRating } from './ht-event-channel-rating'
|
|
8
|
+
import { HtEventFaqUseful } from './ht-event-faq-useful'
|
|
9
|
+
import { HtEventHandoffFail } from './ht-event-handoff-fail'
|
|
10
|
+
import { HtEventHandoffSuccess } from './ht-event-handoff-success'
|
|
11
|
+
|
|
12
|
+
export class HtEvent {
|
|
13
|
+
chat: string
|
|
14
|
+
event_type: EventName
|
|
15
|
+
event_data: BaseEventData
|
|
16
|
+
|
|
17
|
+
protected constructor(event: HtEventProps, requestData: RequestData) {
|
|
18
|
+
this.chat = requestData.userId
|
|
19
|
+
this.event_type = event.event_type
|
|
20
|
+
this.event_data = {
|
|
21
|
+
channel: requestData.provider,
|
|
22
|
+
event_datetime: new Date().toISOString(),
|
|
23
|
+
enduser_language: requestData.language,
|
|
24
|
+
enduser_country: requestData.country,
|
|
25
|
+
format_version: 1,
|
|
26
|
+
// flow_version?: string
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
static create(requestData: RequestData, htEventProps: HtEventProps): HtEvent {
|
|
31
|
+
if (htEventProps.event_type === EventName.botAgentRating) {
|
|
32
|
+
return new HtEventAgentRating(htEventProps, requestData)
|
|
33
|
+
}
|
|
34
|
+
if (htEventProps.event_type === EventName.botChannelRating) {
|
|
35
|
+
return new HtEventChannelRating(htEventProps, requestData)
|
|
36
|
+
}
|
|
37
|
+
if (htEventProps.event_type === EventName.botFaqUseful) {
|
|
38
|
+
return new HtEventFaqUseful(htEventProps, requestData)
|
|
39
|
+
}
|
|
40
|
+
if (htEventProps.event_type === EventName.botRating) {
|
|
41
|
+
return new HtEventBotRating(htEventProps, requestData)
|
|
42
|
+
}
|
|
43
|
+
if (htEventProps.event_type === EventName.botFaq) {
|
|
44
|
+
return new HtEventBotFaq(htEventProps, requestData)
|
|
45
|
+
}
|
|
46
|
+
if (htEventProps.event_type === EventName.botAiModel) {
|
|
47
|
+
return new HtEventBotAiModel(htEventProps, requestData)
|
|
48
|
+
}
|
|
49
|
+
if (htEventProps.event_type === EventName.botKeywordsModel) {
|
|
50
|
+
return new HtEventBotKeywordModel(htEventProps, requestData)
|
|
51
|
+
}
|
|
52
|
+
if (htEventProps.event_type === EventName.handoffSuccess) {
|
|
53
|
+
return new HtEventHandoffSuccess(htEventProps, requestData)
|
|
54
|
+
}
|
|
55
|
+
if (htEventProps.event_type === EventName.handoffFail) {
|
|
56
|
+
return new HtEventHandoffFail(htEventProps, requestData)
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
return new HtEvent(htEventProps, requestData)
|
|
60
|
+
}
|
|
61
|
+
}
|