@botonic/plugin-flow-builder 0.24.2 → 0.24.3-alpha.1
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/content-fields/hubtype-fields/function.d.ts +3 -1
- package/lib/cjs/content-fields/hubtype-fields/function.js +1 -0
- package/lib/cjs/content-fields/hubtype-fields/function.js.map +1 -1
- package/lib/cjs/functions/conditional-queue-status.d.ts +8 -2
- package/lib/cjs/functions/conditional-queue-status.js +14 -6
- package/lib/cjs/functions/conditional-queue-status.js.map +1 -1
- package/lib/cjs/index.d.ts +1 -0
- package/lib/cjs/index.js +16 -3
- package/lib/cjs/index.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/function.d.ts +3 -1
- package/lib/esm/content-fields/hubtype-fields/function.js +1 -0
- package/lib/esm/content-fields/hubtype-fields/function.js.map +1 -1
- package/lib/esm/functions/conditional-queue-status.d.ts +8 -2
- package/lib/esm/functions/conditional-queue-status.js +14 -6
- package/lib/esm/functions/conditional-queue-status.js.map +1 -1
- package/lib/esm/index.d.ts +1 -0
- package/lib/esm/index.js +16 -3
- package/lib/esm/index.js.map +1 -1
- package/package.json +1 -1
- package/src/content-fields/hubtype-fields/function.ts +4 -1
- package/src/functions/conditional-queue-status.ts +17 -6
- package/src/index.ts +26 -4
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { HtBaseNode, HtNodeLink } from './common';
|
|
2
2
|
import { HtNodeWithContentType } from './node-types';
|
|
3
3
|
export declare enum HtArgumentType {
|
|
4
|
+
BOOLEAN = "boolean",
|
|
4
5
|
NUMBER = "number",
|
|
5
6
|
STRING = "string",
|
|
6
7
|
JSON = "json"
|
|
@@ -18,11 +19,12 @@ export interface HtFunctionResult {
|
|
|
18
19
|
result: string;
|
|
19
20
|
target?: HtNodeLink;
|
|
20
21
|
}
|
|
22
|
+
export type HtFunctionArguments = HtFunctionArgumentLocale | HtFunctionArgument;
|
|
21
23
|
export interface HtFunctionNode extends HtBaseNode {
|
|
22
24
|
type: HtNodeWithContentType.FUNCTION;
|
|
23
25
|
content: {
|
|
24
26
|
action: string;
|
|
25
|
-
arguments:
|
|
27
|
+
arguments: HtFunctionArguments[];
|
|
26
28
|
result_mapping: HtFunctionResult[];
|
|
27
29
|
};
|
|
28
30
|
}
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.HtArgumentType = void 0;
|
|
4
4
|
var HtArgumentType;
|
|
5
5
|
(function (HtArgumentType) {
|
|
6
|
+
HtArgumentType["BOOLEAN"] = "boolean";
|
|
6
7
|
HtArgumentType["NUMBER"] = "number";
|
|
7
8
|
HtArgumentType["STRING"] = "string";
|
|
8
9
|
HtArgumentType["JSON"] = "json";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"function.js","sourceRoot":"","sources":["../../../../src/content-fields/hubtype-fields/function.ts"],"names":[],"mappings":";;;AAGA,IAAY,
|
|
1
|
+
{"version":3,"file":"function.js","sourceRoot":"","sources":["../../../../src/content-fields/hubtype-fields/function.ts"],"names":[],"mappings":";;;AAGA,IAAY,cAKX;AALD,WAAY,cAAc;IACxB,qCAAmB,CAAA;IACnB,mCAAiB,CAAA;IACjB,mCAAiB,CAAA;IACjB,+BAAa,CAAA;AACf,CAAC,EALW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAKzB"}
|
|
@@ -3,8 +3,14 @@ type ConditionalQueueStatusArgs = {
|
|
|
3
3
|
request: ActionRequest;
|
|
4
4
|
queue_id: string;
|
|
5
5
|
queue_name: string;
|
|
6
|
+
check_available_agents: boolean;
|
|
6
7
|
};
|
|
7
|
-
|
|
8
|
+
declare enum QueueStatusResult {
|
|
9
|
+
open = "open",
|
|
10
|
+
closed = "closed",
|
|
11
|
+
openWithoutAgents = "open-without-agents"
|
|
12
|
+
}
|
|
13
|
+
export declare function conditionalQueueStatus({ queue_id, check_available_agents, }: ConditionalQueueStatusArgs): Promise<QueueStatusResult>;
|
|
8
14
|
interface AvailabilityData {
|
|
9
15
|
available: boolean;
|
|
10
16
|
waiting_cases: number;
|
|
@@ -13,5 +19,5 @@ interface AvailabilityData {
|
|
|
13
19
|
name: string;
|
|
14
20
|
available_agents: number;
|
|
15
21
|
}
|
|
16
|
-
export declare function getQueueAvailability(queueId: string): Promise<AvailabilityData>;
|
|
22
|
+
export declare function getQueueAvailability(queueId: string, checkAvailableAgents?: boolean): Promise<AvailabilityData>;
|
|
17
23
|
export {};
|
|
@@ -4,20 +4,28 @@ exports.getQueueAvailability = exports.conditionalQueueStatus = void 0;
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const axios_1 = tslib_1.__importDefault(require("axios"));
|
|
6
6
|
const HUBTYPE_API_URL = process.env.HUBTYPE_API_URL || 'https://api.hubtype.com';
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
var QueueStatusResult;
|
|
8
|
+
(function (QueueStatusResult) {
|
|
9
|
+
QueueStatusResult["open"] = "open";
|
|
10
|
+
QueueStatusResult["closed"] = "closed";
|
|
11
|
+
QueueStatusResult["openWithoutAgents"] = "open-without-agents";
|
|
12
|
+
})(QueueStatusResult || (QueueStatusResult = {}));
|
|
13
|
+
async function conditionalQueueStatus({ queue_id, check_available_agents, }) {
|
|
14
|
+
const data = await getQueueAvailability(queue_id, check_available_agents);
|
|
15
|
+
if (check_available_agents && data.open && data.available_agents === 0) {
|
|
16
|
+
return QueueStatusResult.openWithoutAgents;
|
|
17
|
+
}
|
|
18
|
+
return data.open ? QueueStatusResult.open : QueueStatusResult.closed;
|
|
11
19
|
}
|
|
12
20
|
exports.conditionalQueueStatus = conditionalQueueStatus;
|
|
13
|
-
async function getQueueAvailability(queueId) {
|
|
21
|
+
async function getQueueAvailability(queueId, checkAvailableAgents = false) {
|
|
14
22
|
const response = await axios_1.default.get(`${HUBTYPE_API_URL}/public/v1/queues/${queueId}/availability/`,
|
|
15
23
|
// TODO: Make it configurable in the future
|
|
16
24
|
{
|
|
17
25
|
params: {
|
|
18
26
|
check_queue_schedule: true,
|
|
19
27
|
check_waiting_cases: false,
|
|
20
|
-
check_available_agents:
|
|
28
|
+
check_available_agents: checkAvailableAgents,
|
|
21
29
|
},
|
|
22
30
|
});
|
|
23
31
|
return response.data;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conditional-queue-status.js","sourceRoot":"","sources":["../../../src/functions/conditional-queue-status.ts"],"names":[],"mappings":";;;;AACA,0DAAyB;AAEzB,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"conditional-queue-status.js","sourceRoot":"","sources":["../../../src/functions/conditional-queue-status.ts"],"names":[],"mappings":";;;;AACA,0DAAyB;AAEzB,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,yBAAyB,CAAA;AAShF,IAAK,iBAIJ;AAJD,WAAK,iBAAiB;IACpB,kCAAa,CAAA;IACb,sCAAiB,CAAA;IACjB,8DAAyC,CAAA;AAC3C,CAAC,EAJI,iBAAiB,KAAjB,iBAAiB,QAIrB;AAEM,KAAK,UAAU,sBAAsB,CAAC,EAC3C,QAAQ,EACR,sBAAsB,GACK;IAC3B,MAAM,IAAI,GAAG,MAAM,oBAAoB,CAAC,QAAQ,EAAE,sBAAsB,CAAC,CAAA;IACzE,IAAI,sBAAsB,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,gBAAgB,KAAK,CAAC,EAAE;QACtE,OAAO,iBAAiB,CAAC,iBAAiB,CAAA;KAC3C;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAA;AACtE,CAAC;AATD,wDASC;AAWM,KAAK,UAAU,oBAAoB,CACxC,OAAe,EACf,oBAAoB,GAAG,KAAK;IAE5B,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,GAAG,CAC9B,GAAG,eAAe,qBAAqB,OAAO,gBAAgB;IAC9D,2CAA2C;IAC3C;QACE,MAAM,EAAE;YACN,oBAAoB,EAAE,IAAI;YAC1B,mBAAmB,EAAE,KAAK;YAC1B,sBAAsB,EAAE,oBAAoB;SAC7C;KACF,CACF,CAAA;IACD,OAAO,QAAQ,CAAC,IAAI,CAAA;AACtB,CAAC;AAhBD,oDAgBC"}
|
package/lib/cjs/index.d.ts
CHANGED
|
@@ -23,6 +23,7 @@ export default class BotonicPluginFlowBuilder implements Plugin {
|
|
|
23
23
|
getContentsByNode(node: HtNodeWithContent, locale: string, prevContents?: FlowContent[]): Promise<FlowContent[]>;
|
|
24
24
|
private getFlowContent;
|
|
25
25
|
callFunction(functionNode: HtFunctionNode, locale: string): Promise<string>;
|
|
26
|
+
private getArgumentsByLocale;
|
|
26
27
|
getPayloadParams<T extends PayloadParamsBase>(payload: string): T;
|
|
27
28
|
}
|
|
28
29
|
export * from './action';
|
package/lib/cjs/index.js
CHANGED
|
@@ -87,10 +87,11 @@ class BotonicPluginFlowBuilder {
|
|
|
87
87
|
}
|
|
88
88
|
}
|
|
89
89
|
async callFunction(functionNode, locale) {
|
|
90
|
-
var _a;
|
|
91
90
|
const functionNodeId = functionNode.id;
|
|
92
|
-
const
|
|
93
|
-
|
|
91
|
+
const functionArguments = this.getArgumentsByLocale(functionNode.content.arguments, locale);
|
|
92
|
+
const nameValues = functionArguments.map(arg => {
|
|
93
|
+
return { [arg.name]: arg.value };
|
|
94
|
+
});
|
|
94
95
|
const args = Object.assign({
|
|
95
96
|
request: this.currentRequest,
|
|
96
97
|
results: functionNode.content.result_mapping.map(r => r.result),
|
|
@@ -103,6 +104,18 @@ class BotonicPluginFlowBuilder {
|
|
|
103
104
|
}
|
|
104
105
|
return result.target.id;
|
|
105
106
|
}
|
|
107
|
+
getArgumentsByLocale(args, locale) {
|
|
108
|
+
let resultArguments = [];
|
|
109
|
+
for (const arg of args) {
|
|
110
|
+
if ('locale' in arg && arg.locale === locale) {
|
|
111
|
+
resultArguments = [...resultArguments, ...arg.values];
|
|
112
|
+
}
|
|
113
|
+
if ('type' in arg) {
|
|
114
|
+
resultArguments = [...resultArguments, arg];
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
return resultArguments;
|
|
118
|
+
}
|
|
106
119
|
getPayloadParams(payload) {
|
|
107
120
|
const payloadParams = JSON.parse(payload.split(constants_1.SEPARATOR)[1] || '{}');
|
|
108
121
|
return payloadParams;
|
package/lib/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAGA,oDAAwD;AACxD,+BAAsC;AACtC,2CAA8D;AAC9D,qDAQyB;AACzB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { HtBaseNode, HtNodeLink } from './common';
|
|
2
2
|
import { HtNodeWithContentType } from './node-types';
|
|
3
3
|
export declare enum HtArgumentType {
|
|
4
|
+
BOOLEAN = "boolean",
|
|
4
5
|
NUMBER = "number",
|
|
5
6
|
STRING = "string",
|
|
6
7
|
JSON = "json"
|
|
@@ -18,11 +19,12 @@ export interface HtFunctionResult {
|
|
|
18
19
|
result: string;
|
|
19
20
|
target?: HtNodeLink;
|
|
20
21
|
}
|
|
22
|
+
export type HtFunctionArguments = HtFunctionArgumentLocale | HtFunctionArgument;
|
|
21
23
|
export interface HtFunctionNode extends HtBaseNode {
|
|
22
24
|
type: HtNodeWithContentType.FUNCTION;
|
|
23
25
|
content: {
|
|
24
26
|
action: string;
|
|
25
|
-
arguments:
|
|
27
|
+
arguments: HtFunctionArguments[];
|
|
26
28
|
result_mapping: HtFunctionResult[];
|
|
27
29
|
};
|
|
28
30
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"function.js","sourceRoot":"","sources":["../../../../src/content-fields/hubtype-fields/function.ts"],"names":[],"mappings":"AAGA,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"function.js","sourceRoot":"","sources":["../../../../src/content-fields/hubtype-fields/function.ts"],"names":[],"mappings":"AAGA,MAAM,CAAN,IAAY,cAKX;AALD,WAAY,cAAc;IACxB,qCAAmB,CAAA;IACnB,mCAAiB,CAAA;IACjB,mCAAiB,CAAA;IACjB,+BAAa,CAAA;AACf,CAAC,EALW,cAAc,KAAd,cAAc,QAKzB"}
|
|
@@ -3,8 +3,14 @@ type ConditionalQueueStatusArgs = {
|
|
|
3
3
|
request: ActionRequest;
|
|
4
4
|
queue_id: string;
|
|
5
5
|
queue_name: string;
|
|
6
|
+
check_available_agents: boolean;
|
|
6
7
|
};
|
|
7
|
-
|
|
8
|
+
declare enum QueueStatusResult {
|
|
9
|
+
open = "open",
|
|
10
|
+
closed = "closed",
|
|
11
|
+
openWithoutAgents = "open-without-agents"
|
|
12
|
+
}
|
|
13
|
+
export declare function conditionalQueueStatus({ queue_id, check_available_agents, }: ConditionalQueueStatusArgs): Promise<QueueStatusResult>;
|
|
8
14
|
interface AvailabilityData {
|
|
9
15
|
available: boolean;
|
|
10
16
|
waiting_cases: number;
|
|
@@ -13,5 +19,5 @@ interface AvailabilityData {
|
|
|
13
19
|
name: string;
|
|
14
20
|
available_agents: number;
|
|
15
21
|
}
|
|
16
|
-
export declare function getQueueAvailability(queueId: string): Promise<AvailabilityData>;
|
|
22
|
+
export declare function getQueueAvailability(queueId: string, checkAvailableAgents?: boolean): Promise<AvailabilityData>;
|
|
17
23
|
export {};
|
|
@@ -1,18 +1,26 @@
|
|
|
1
1
|
import axios from 'axios';
|
|
2
2
|
const HUBTYPE_API_URL = process.env.HUBTYPE_API_URL || 'https://api.hubtype.com';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
var QueueStatusResult;
|
|
4
|
+
(function (QueueStatusResult) {
|
|
5
|
+
QueueStatusResult["open"] = "open";
|
|
6
|
+
QueueStatusResult["closed"] = "closed";
|
|
7
|
+
QueueStatusResult["openWithoutAgents"] = "open-without-agents";
|
|
8
|
+
})(QueueStatusResult || (QueueStatusResult = {}));
|
|
9
|
+
export async function conditionalQueueStatus({ queue_id, check_available_agents, }) {
|
|
10
|
+
const data = await getQueueAvailability(queue_id, check_available_agents);
|
|
11
|
+
if (check_available_agents && data.open && data.available_agents === 0) {
|
|
12
|
+
return QueueStatusResult.openWithoutAgents;
|
|
13
|
+
}
|
|
14
|
+
return data.open ? QueueStatusResult.open : QueueStatusResult.closed;
|
|
7
15
|
}
|
|
8
|
-
export async function getQueueAvailability(queueId) {
|
|
16
|
+
export async function getQueueAvailability(queueId, checkAvailableAgents = false) {
|
|
9
17
|
const response = await axios.get(`${HUBTYPE_API_URL}/public/v1/queues/${queueId}/availability/`,
|
|
10
18
|
// TODO: Make it configurable in the future
|
|
11
19
|
{
|
|
12
20
|
params: {
|
|
13
21
|
check_queue_schedule: true,
|
|
14
22
|
check_waiting_cases: false,
|
|
15
|
-
check_available_agents:
|
|
23
|
+
check_available_agents: checkAvailableAgents,
|
|
16
24
|
},
|
|
17
25
|
});
|
|
18
26
|
return response.data;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conditional-queue-status.js","sourceRoot":"","sources":["../../../src/functions/conditional-queue-status.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"conditional-queue-status.js","sourceRoot":"","sources":["../../../src/functions/conditional-queue-status.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,yBAAyB,CAAA;AAShF,IAAK,iBAIJ;AAJD,WAAK,iBAAiB;IACpB,kCAAa,CAAA;IACb,sCAAiB,CAAA;IACjB,8DAAyC,CAAA;AAC3C,CAAC,EAJI,iBAAiB,KAAjB,iBAAiB,QAIrB;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,EAC3C,QAAQ,EACR,sBAAsB,GACK;IAC3B,MAAM,IAAI,GAAG,MAAM,oBAAoB,CAAC,QAAQ,EAAE,sBAAsB,CAAC,CAAA;IACzE,IAAI,sBAAsB,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,gBAAgB,KAAK,CAAC,EAAE;QACtE,OAAO,iBAAiB,CAAC,iBAAiB,CAAA;KAC3C;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAA;AACtE,CAAC;AAWD,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,OAAe,EACf,oBAAoB,GAAG,KAAK;IAE5B,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAC9B,GAAG,eAAe,qBAAqB,OAAO,gBAAgB;IAC9D,2CAA2C;IAC3C;QACE,MAAM,EAAE;YACN,oBAAoB,EAAE,IAAI;YAC1B,mBAAmB,EAAE,KAAK;YAC1B,sBAAsB,EAAE,oBAAoB;SAC7C;KACF,CACF,CAAA;IACD,OAAO,QAAQ,CAAC,IAAI,CAAA;AACtB,CAAC"}
|
package/lib/esm/index.d.ts
CHANGED
|
@@ -23,6 +23,7 @@ export default class BotonicPluginFlowBuilder implements Plugin {
|
|
|
23
23
|
getContentsByNode(node: HtNodeWithContent, locale: string, prevContents?: FlowContent[]): Promise<FlowContent[]>;
|
|
24
24
|
private getFlowContent;
|
|
25
25
|
callFunction(functionNode: HtFunctionNode, locale: string): Promise<string>;
|
|
26
|
+
private getArgumentsByLocale;
|
|
26
27
|
getPayloadParams<T extends PayloadParamsBase>(payload: string): T;
|
|
27
28
|
}
|
|
28
29
|
export * from './action';
|
package/lib/esm/index.js
CHANGED
|
@@ -84,10 +84,11 @@ export default class BotonicPluginFlowBuilder {
|
|
|
84
84
|
}
|
|
85
85
|
}
|
|
86
86
|
async callFunction(functionNode, locale) {
|
|
87
|
-
var _a;
|
|
88
87
|
const functionNodeId = functionNode.id;
|
|
89
|
-
const
|
|
90
|
-
|
|
88
|
+
const functionArguments = this.getArgumentsByLocale(functionNode.content.arguments, locale);
|
|
89
|
+
const nameValues = functionArguments.map(arg => {
|
|
90
|
+
return { [arg.name]: arg.value };
|
|
91
|
+
});
|
|
91
92
|
const args = Object.assign({
|
|
92
93
|
request: this.currentRequest,
|
|
93
94
|
results: functionNode.content.result_mapping.map(r => r.result),
|
|
@@ -100,6 +101,18 @@ export default class BotonicPluginFlowBuilder {
|
|
|
100
101
|
}
|
|
101
102
|
return result.target.id;
|
|
102
103
|
}
|
|
104
|
+
getArgumentsByLocale(args, locale) {
|
|
105
|
+
let resultArguments = [];
|
|
106
|
+
for (const arg of args) {
|
|
107
|
+
if ('locale' in arg && arg.locale === locale) {
|
|
108
|
+
resultArguments = [...resultArguments, ...arg.values];
|
|
109
|
+
}
|
|
110
|
+
if ('type' in arg) {
|
|
111
|
+
resultArguments = [...resultArguments, arg];
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return resultArguments;
|
|
115
|
+
}
|
|
103
116
|
getPayloadParams(payload) {
|
|
104
117
|
const payloadParams = JSON.parse(payload.split(SEPARATOR)[1] || '{}');
|
|
105
118
|
return payloadParams;
|
package/lib/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAC9D,OAAO,EACL,YAAY,EAEZ,WAAW,EACX,SAAS,EACT,QAAQ,EACR,SAAS,EACT,sBAAsB,GACvB,MAAM,kBAAkB,CAAA;AACzB,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -2,6 +2,7 @@ import { HtBaseNode, HtNodeLink } from './common'
|
|
|
2
2
|
import { HtNodeWithContentType } from './node-types'
|
|
3
3
|
|
|
4
4
|
export enum HtArgumentType {
|
|
5
|
+
BOOLEAN = 'boolean',
|
|
5
6
|
NUMBER = 'number',
|
|
6
7
|
STRING = 'string',
|
|
7
8
|
JSON = 'json',
|
|
@@ -23,11 +24,13 @@ export interface HtFunctionResult {
|
|
|
23
24
|
target?: HtNodeLink
|
|
24
25
|
}
|
|
25
26
|
|
|
27
|
+
export type HtFunctionArguments = HtFunctionArgumentLocale | HtFunctionArgument
|
|
28
|
+
|
|
26
29
|
export interface HtFunctionNode extends HtBaseNode {
|
|
27
30
|
type: HtNodeWithContentType.FUNCTION
|
|
28
31
|
content: {
|
|
29
32
|
action: string
|
|
30
|
-
arguments:
|
|
33
|
+
arguments: HtFunctionArguments[]
|
|
31
34
|
result_mapping: HtFunctionResult[]
|
|
32
35
|
}
|
|
33
36
|
}
|
|
@@ -7,14 +7,24 @@ type ConditionalQueueStatusArgs = {
|
|
|
7
7
|
request: ActionRequest
|
|
8
8
|
queue_id: string
|
|
9
9
|
queue_name: string
|
|
10
|
+
check_available_agents: boolean
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
enum QueueStatusResult {
|
|
14
|
+
open = 'open',
|
|
15
|
+
closed = 'closed',
|
|
16
|
+
openWithoutAgents = 'open-without-agents',
|
|
10
17
|
}
|
|
11
18
|
|
|
12
19
|
export async function conditionalQueueStatus({
|
|
13
20
|
queue_id,
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
const
|
|
17
|
-
|
|
21
|
+
check_available_agents,
|
|
22
|
+
}: ConditionalQueueStatusArgs): Promise<QueueStatusResult> {
|
|
23
|
+
const data = await getQueueAvailability(queue_id, check_available_agents)
|
|
24
|
+
if (check_available_agents && data.open && data.available_agents === 0) {
|
|
25
|
+
return QueueStatusResult.openWithoutAgents
|
|
26
|
+
}
|
|
27
|
+
return data.open ? QueueStatusResult.open : QueueStatusResult.closed
|
|
18
28
|
}
|
|
19
29
|
|
|
20
30
|
interface AvailabilityData {
|
|
@@ -27,7 +37,8 @@ interface AvailabilityData {
|
|
|
27
37
|
}
|
|
28
38
|
|
|
29
39
|
export async function getQueueAvailability(
|
|
30
|
-
queueId: string
|
|
40
|
+
queueId: string,
|
|
41
|
+
checkAvailableAgents = false
|
|
31
42
|
): Promise<AvailabilityData> {
|
|
32
43
|
const response = await axios.get(
|
|
33
44
|
`${HUBTYPE_API_URL}/public/v1/queues/${queueId}/availability/`,
|
|
@@ -36,7 +47,7 @@ export async function getQueueAvailability(
|
|
|
36
47
|
params: {
|
|
37
48
|
check_queue_schedule: true,
|
|
38
49
|
check_waiting_cases: false,
|
|
39
|
-
check_available_agents:
|
|
50
|
+
check_available_agents: checkAvailableAgents,
|
|
40
51
|
},
|
|
41
52
|
}
|
|
42
53
|
)
|
package/src/index.ts
CHANGED
|
@@ -15,6 +15,8 @@ import {
|
|
|
15
15
|
} from './content-fields'
|
|
16
16
|
import {
|
|
17
17
|
HtFlowBuilderData,
|
|
18
|
+
HtFunctionArgument,
|
|
19
|
+
HtFunctionArguments,
|
|
18
20
|
HtFunctionNode,
|
|
19
21
|
HtNodeComponent,
|
|
20
22
|
HtNodeWithContent,
|
|
@@ -159,10 +161,13 @@ export default class BotonicPluginFlowBuilder implements Plugin {
|
|
|
159
161
|
locale: string
|
|
160
162
|
): Promise<string> {
|
|
161
163
|
const functionNodeId = functionNode.id
|
|
162
|
-
const
|
|
163
|
-
functionNode.content.arguments
|
|
164
|
-
|
|
165
|
-
|
|
164
|
+
const functionArguments = this.getArgumentsByLocale(
|
|
165
|
+
functionNode.content.arguments,
|
|
166
|
+
locale
|
|
167
|
+
)
|
|
168
|
+
const nameValues = functionArguments.map(arg => {
|
|
169
|
+
return { [arg.name]: arg.value }
|
|
170
|
+
})
|
|
166
171
|
|
|
167
172
|
const args = Object.assign(
|
|
168
173
|
{
|
|
@@ -186,6 +191,23 @@ export default class BotonicPluginFlowBuilder implements Plugin {
|
|
|
186
191
|
return result.target.id
|
|
187
192
|
}
|
|
188
193
|
|
|
194
|
+
private getArgumentsByLocale(
|
|
195
|
+
args: HtFunctionArguments[],
|
|
196
|
+
locale: string
|
|
197
|
+
): HtFunctionArgument[] {
|
|
198
|
+
let resultArguments: HtFunctionArgument[] = []
|
|
199
|
+
for (const arg of args) {
|
|
200
|
+
if ('locale' in arg && arg.locale === locale) {
|
|
201
|
+
resultArguments = [...resultArguments, ...arg.values]
|
|
202
|
+
}
|
|
203
|
+
if ('type' in arg) {
|
|
204
|
+
resultArguments = [...resultArguments, arg]
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
return resultArguments
|
|
209
|
+
}
|
|
210
|
+
|
|
189
211
|
getPayloadParams<T extends PayloadParamsBase>(payload: string): T {
|
|
190
212
|
const payloadParams = JSON.parse(payload.split(SEPARATOR)[1] || '{}')
|
|
191
213
|
return payloadParams
|