@or-sdk/idw 1.2.0-beta.1331.0 → 1.2.0-beta.1386.0
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/CHANGELOG.md +26 -0
- package/dist/cjs/data/channels.js +41 -0
- package/dist/cjs/data/channels.js.map +1 -0
- package/dist/cjs/idw.js +69 -28
- package/dist/cjs/idw.js.map +1 -1
- package/dist/esm/data/channels.js +38 -0
- package/dist/esm/data/channels.js.map +1 -0
- package/dist/esm/idw.js +53 -9
- package/dist/esm/idw.js.map +1 -1
- package/dist/types/data/channels.d.ts +6 -0
- package/dist/types/data/channels.d.ts.map +1 -0
- package/dist/types/idw.d.ts +1 -0
- package/dist/types/idw.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/data/channels.ts +37 -0
- package/src/idw.ts +54 -7
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,32 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [1.1.3](https://gitlab.internal.onereach.io/onereach/platform/or-sdk-next/compare/@or-sdk/idw@1.1.2...@or-sdk/idw@1.1.3) (2023-05-24)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @or-sdk/idw
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## [1.1.2](https://gitlab.internal.onereach.io/onereach/platform/or-sdk-next/compare/@or-sdk/idw@1.1.1...@or-sdk/idw@1.1.2) (2023-05-22)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Bug Fixes
|
|
18
|
+
|
|
19
|
+
* **@or-sdk/idw:** add isActive for skills relationship ([2ef23cd](https://gitlab.internal.onereach.io/onereach/platform/or-sdk-next/commit/2ef23cd8df3167ee8de166a4eec109799886e836))
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
## [1.1.1](https://gitlab.internal.onereach.io/onereach/platform/or-sdk-next/compare/@or-sdk/idw@1.1.0...@or-sdk/idw@1.1.1) (2023-05-22)
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
### Bug Fixes
|
|
27
|
+
|
|
28
|
+
* **@or-sdk/idw:** update idw sdk to process skills meta ([1330eb8](https://gitlab.internal.onereach.io/onereach/platform/or-sdk-next/commit/1330eb8ef8ef2ef09b5b80c22678b8f7bd986eec))
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
6
32
|
## [1.1.0](https://gitlab.internal.onereach.io/onereach/platform/or-sdk-next/compare/@or-sdk/idw@1.0.2...@or-sdk/idw@1.1.0) (2023-05-19)
|
|
7
33
|
|
|
8
34
|
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.startUpChannels = void 0;
|
|
4
|
+
exports.startUpChannels = [
|
|
5
|
+
{
|
|
6
|
+
id: 'facebook-messenger',
|
|
7
|
+
name: 'Facebook Messenger',
|
|
8
|
+
icon: 'https://files.qa.api.onereach.ai/public/9c1b43df-0f7c-43fe-819f-be9df1f39759/channel-icons/messenger.png',
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
id: 'sms',
|
|
12
|
+
name: 'SMS',
|
|
13
|
+
icon: 'https://files.qa.api.onereach.ai/public/9c1b43df-0f7c-43fe-819f-be9df1f39759/channel-icons/sms.png',
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
id: 'telegram',
|
|
17
|
+
name: 'Telegram',
|
|
18
|
+
icon: 'https://files.qa.api.onereach.ai/public/9c1b43df-0f7c-43fe-819f-be9df1f39759/channel-icons/telegram.png',
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
id: 'twitter',
|
|
22
|
+
name: 'Twitter',
|
|
23
|
+
icon: 'https://files.qa.api.onereach.ai/public/9c1b43df-0f7c-43fe-819f-be9df1f39759/channel-icons/twitter.png',
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
id: 'viber',
|
|
27
|
+
name: 'Viber',
|
|
28
|
+
icon: 'https://files.qa.api.onereach.ai/public/9c1b43df-0f7c-43fe-819f-be9df1f39759/channel-icons/viber.png',
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
id: 'viber-business',
|
|
32
|
+
name: 'Viber Business',
|
|
33
|
+
icon: 'https://files.qa.api.onereach.ai/public/9c1b43df-0f7c-43fe-819f-be9df1f39759/channel-icons/viber.png',
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
id: 'whatsapp',
|
|
37
|
+
name: 'WhatsApp',
|
|
38
|
+
icon: 'https://files.qa.api.onereach.ai/public/9c1b43df-0f7c-43fe-819f-be9df1f39759/channel-icons/whatsapp.png',
|
|
39
|
+
},
|
|
40
|
+
];
|
|
41
|
+
//# sourceMappingURL=channels.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channels.js","sourceRoot":"","sources":["../../../src/data/channels.ts"],"names":[],"mappings":";;;AAAa,QAAA,eAAe,GAAG;IAC7B;QACE,EAAE,EAAE,oBAAoB;QACxB,IAAI,EAAE,oBAAoB;QAC1B,IAAI,EAAE,0GAA0G;KACjH;IACD;QACE,EAAE,EAAE,KAAK;QACT,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,oGAAoG;KAC3G;IACD;QACE,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,yGAAyG;KAChH;IACD;QACE,EAAE,EAAE,SAAS;QACb,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,wGAAwG;KAC/G;IACD;QACE,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,sGAAsG;KAC7G;IACD;QACE,EAAE,EAAE,gBAAgB;QACpB,IAAI,EAAE,gBAAgB;QACtB,IAAI,EAAE,sGAAsG;KAC7G;IACD;QACE,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,yGAAyG;KAChH;CACF,CAAC"}
|
package/dist/cjs/idw.js
CHANGED
|
@@ -56,6 +56,7 @@ var base_1 = require("@or-sdk/base");
|
|
|
56
56
|
var graph_1 = require("@or-sdk/graph");
|
|
57
57
|
var users_1 = require("@or-sdk/users");
|
|
58
58
|
var constants_1 = require("./constants");
|
|
59
|
+
var channels_1 = require("./data/channels");
|
|
59
60
|
var IDW = (function (_super) {
|
|
60
61
|
__extends(IDW, _super);
|
|
61
62
|
function IDW(params) {
|
|
@@ -87,28 +88,48 @@ var IDW = (function (_super) {
|
|
|
87
88
|
return __generator(this, function (_a) {
|
|
88
89
|
switch (_a.label) {
|
|
89
90
|
case 0:
|
|
90
|
-
_a.trys.push([0, 2, ,
|
|
91
|
+
_a.trys.push([0, 2, , 3]);
|
|
91
92
|
return [4, this.graphApi.getGraphInfo(constants_1.GRAPH_NAME)];
|
|
92
93
|
case 1:
|
|
93
94
|
_a.sent();
|
|
94
|
-
return [3,
|
|
95
|
+
return [3, 3];
|
|
95
96
|
case 2:
|
|
96
97
|
e_1 = _a.sent();
|
|
97
|
-
|
|
98
|
-
|
|
98
|
+
this.createDb();
|
|
99
|
+
return [3, 3];
|
|
100
|
+
case 3: return [2];
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
});
|
|
104
|
+
};
|
|
105
|
+
IDW.prototype.createDb = function () {
|
|
106
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
107
|
+
return __generator(this, function (_a) {
|
|
108
|
+
switch (_a.label) {
|
|
109
|
+
case 0: return [4, this.graphApi.createGraph({ name: constants_1.GRAPH_NAME })];
|
|
110
|
+
case 1:
|
|
99
111
|
_a.sent();
|
|
100
|
-
return [
|
|
101
|
-
|
|
112
|
+
return [4, this.graphApi.query({
|
|
113
|
+
graph: constants_1.GRAPH_NAME,
|
|
114
|
+
query: "CREATE \n ".concat(channels_1.startUpChannels.map(function (_a) {
|
|
115
|
+
var id = _a.id, name = _a.name, icon = _a.icon;
|
|
116
|
+
return "(:CHANNEL {id: '".concat(id, "', name; '").concat(name, "', icon: '").concat(icon, "'})");
|
|
117
|
+
}), "\n "),
|
|
118
|
+
params: {},
|
|
119
|
+
})];
|
|
120
|
+
case 2:
|
|
121
|
+
_a.sent();
|
|
122
|
+
return [2];
|
|
102
123
|
}
|
|
103
124
|
});
|
|
104
125
|
});
|
|
105
126
|
};
|
|
106
127
|
IDW.prototype.createOrUpdateFlow = function (flow) {
|
|
107
|
-
var _a;
|
|
128
|
+
var _a, _b;
|
|
108
129
|
return __awaiter(this, void 0, void 0, function () {
|
|
109
|
-
var id, userId, channel;
|
|
110
|
-
return __generator(this, function (
|
|
111
|
-
switch (
|
|
130
|
+
var id, userId, channel, skills, preparedIds;
|
|
131
|
+
return __generator(this, function (_c) {
|
|
132
|
+
switch (_c.label) {
|
|
112
133
|
case 0:
|
|
113
134
|
id = flow.id;
|
|
114
135
|
if (id === undefined) {
|
|
@@ -116,10 +137,10 @@ var IDW = (function (_super) {
|
|
|
116
137
|
}
|
|
117
138
|
if (!flow.isDeleted) return [3, 2];
|
|
118
139
|
return [4, this.deleteFlow(id)];
|
|
119
|
-
case 1: return [2,
|
|
140
|
+
case 1: return [2, _c.sent()];
|
|
120
141
|
case 2: return [4, this.users.getCurrentUser()];
|
|
121
142
|
case 3:
|
|
122
|
-
userId = (
|
|
143
|
+
userId = (_c.sent()).userId;
|
|
123
144
|
return [4, this.graphQuery("\n MERGE (flow:FLOW { id: $id })\n ON MATCH\n SET flow.createdAt = $createdAt,\n flow.createdBy = $userId,\n flow.description = $description,\n flow.groupId = $groupId,\n flow.name = $name,\n flow.updatedAt = $updatedAt,\n flow.updatedBy = $userId\n ON CREATE\n SET flow.createdAt = $createdAt,\n flow.createdBy = $userId,\n flow.description = $description,\n flow.groupId = $groupId,\n flow.isActive = false,\n flow.name = $name,\n flow.updatedAt = $updatedAt,\n flow.updatedBy = $userId\n RETURN flow\n ", {
|
|
124
145
|
createdAt: flow.dateCreated,
|
|
125
146
|
description: flow.data.description,
|
|
@@ -130,20 +151,30 @@ var IDW = (function (_super) {
|
|
|
130
151
|
userId: userId,
|
|
131
152
|
})];
|
|
132
153
|
case 4:
|
|
133
|
-
|
|
134
|
-
return [4, this.graphQuery("\n MATCH (flow:FLOW { id: $id })\n OPTIONAL MATCH (flow)-[
|
|
154
|
+
_c.sent();
|
|
155
|
+
return [4, this.graphQuery("\n MATCH (flow:FLOW { id: $id })\n OPTIONAL MATCH (flow)-[channelRelations:IMPLEMENTS { isActive: false }]->(:CHANNEL)\n OPTIONAL MATCH (flow)-[skillRelations:IMPLEMENTS { isActive: false }]->(:SKILL)\n DELETE channelRelations, skillRelations\n ", { id: id })];
|
|
135
156
|
case 5:
|
|
136
|
-
|
|
157
|
+
_c.sent();
|
|
137
158
|
channel = (_a = flow.data.meta.idw) === null || _a === void 0 ? void 0 : _a.channel;
|
|
159
|
+
skills = (_b = flow.data.meta.idw) === null || _b === void 0 ? void 0 : _b.skills;
|
|
138
160
|
if (!(channel !== undefined && channel.length !== 0)) return [3, 7];
|
|
139
161
|
return [4, this.graphQuery("\n MATCH (flow:FLOW { id: $id }),\n (channel:CHANNEL { id: $channel })\n MERGE (flow)-[relationship:IMPLEMENTS]->(channel)\n ON CREATE\n SET relationship.isActive = false\n ", {
|
|
140
162
|
channel: channel,
|
|
141
163
|
id: id,
|
|
142
164
|
})];
|
|
143
165
|
case 6:
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
case 7:
|
|
166
|
+
_c.sent();
|
|
167
|
+
_c.label = 7;
|
|
168
|
+
case 7:
|
|
169
|
+
if (!(skills === null || skills === void 0 ? void 0 : skills.length)) return [3, 9];
|
|
170
|
+
preparedIds = skills.map(function (id) { return "'".concat(id, "'"); });
|
|
171
|
+
return [4, this.graphQuery("\n MATCH (flow:FLOW { id: $id }), (skill:SKILL)\n WHERE skill.id in [".concat(preparedIds, "]\n MERGE (flow)-[relationship:IMPLEMENTS]->(skill)\n ON CREATE\n SET relationship.isActive = false\n "), {
|
|
172
|
+
id: id,
|
|
173
|
+
})];
|
|
174
|
+
case 8:
|
|
175
|
+
_c.sent();
|
|
176
|
+
_c.label = 9;
|
|
177
|
+
case 9: return [2];
|
|
147
178
|
}
|
|
148
179
|
});
|
|
149
180
|
});
|
|
@@ -161,32 +192,42 @@ var IDW = (function (_super) {
|
|
|
161
192
|
});
|
|
162
193
|
};
|
|
163
194
|
IDW.prototype.activateFlow = function (flow) {
|
|
164
|
-
var _a;
|
|
195
|
+
var _a, _b;
|
|
165
196
|
return __awaiter(this, void 0, void 0, function () {
|
|
166
|
-
var id, channel;
|
|
167
|
-
return __generator(this, function (
|
|
168
|
-
switch (
|
|
197
|
+
var id, channel, skills, preparedIds;
|
|
198
|
+
return __generator(this, function (_c) {
|
|
199
|
+
switch (_c.label) {
|
|
169
200
|
case 0:
|
|
170
201
|
id = flow.id;
|
|
171
202
|
if (id === undefined) {
|
|
172
203
|
throw new Error('Only flows with id can be added to the IDW graph');
|
|
173
204
|
}
|
|
174
|
-
return [4, this.graphQuery("\n MATCH (flow:FLOW { id: $id })\n OPTIONAL MATCH (flow)-[
|
|
205
|
+
return [4, this.graphQuery("\n MATCH (flow:FLOW { id: $id })\n OPTIONAL MATCH (flow)-[channelRelations:IMPLEMENTS]->(:CHANNEL)\n OPTIONAL MATCH (flow)-[skillRelations:IMPLEMENTS]->(:SKILL)\n DELETE channelRelations, skillRelations\n SET flow.activatedAt = $activatedAt,\n flow.isActive = true\n ", {
|
|
175
206
|
activatedAt: Date.now(),
|
|
176
207
|
id: id,
|
|
177
208
|
})];
|
|
178
209
|
case 1:
|
|
179
|
-
|
|
210
|
+
_c.sent();
|
|
180
211
|
channel = (_a = flow.data.meta.idw) === null || _a === void 0 ? void 0 : _a.channel;
|
|
212
|
+
skills = (_b = flow.data.meta.idw) === null || _b === void 0 ? void 0 : _b.skills;
|
|
181
213
|
if (!(channel !== undefined && channel.length !== 0)) return [3, 3];
|
|
182
214
|
return [4, this.graphQuery("\n MATCH (flow:FLOW { id: $id }),\n (channel:CHANNEL { id: $channel })\n MERGE (flow)-[relationship:IMPLEMENTS]->(channel)\n SET relationship.isActive = true\n ", {
|
|
183
215
|
channel: channel,
|
|
184
216
|
id: id,
|
|
185
217
|
})];
|
|
186
218
|
case 2:
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
case 3:
|
|
219
|
+
_c.sent();
|
|
220
|
+
_c.label = 3;
|
|
221
|
+
case 3:
|
|
222
|
+
if (!(skills === null || skills === void 0 ? void 0 : skills.length)) return [3, 5];
|
|
223
|
+
preparedIds = skills.map(function (id) { return "'".concat(id, "'"); });
|
|
224
|
+
return [4, this.graphQuery("\n MATCH (flow:FLOW { id: $id }), (skill:SKILL)\n WHERE skill.id in [".concat(preparedIds, "]\n MERGE (flow)-[relationship:IMPLEMENTS]->(skill)\n SET relationship.isActive = true\n "), {
|
|
225
|
+
id: id,
|
|
226
|
+
})];
|
|
227
|
+
case 4:
|
|
228
|
+
_c.sent();
|
|
229
|
+
_c.label = 5;
|
|
230
|
+
case 5: return [2];
|
|
190
231
|
}
|
|
191
232
|
});
|
|
192
233
|
});
|
|
@@ -195,7 +236,7 @@ var IDW = (function (_super) {
|
|
|
195
236
|
return __awaiter(this, void 0, void 0, function () {
|
|
196
237
|
return __generator(this, function (_a) {
|
|
197
238
|
switch (_a.label) {
|
|
198
|
-
case 0: return [4, this.graphQuery("\n MATCH (flow:FLOW { id: $id })\n OPTIONAL MATCH (flow)-[
|
|
239
|
+
case 0: return [4, this.graphQuery("\n MATCH (flow:FLOW { id: $id })\n OPTIONAL MATCH (flow)-[channelRelations:IMPLEMENTS]->(:CHANNEL)\n OPTIONAL MATCH (flow)-[skillRelations:IMPLEMENTS]->(:SKILL)\n SET flow.isActive = false,\n channelRelations.isActive = false,\n skillRelations.isActive = false\n REMOVE flow.activatedAt\n RETURN flow\n ", { id: id })];
|
|
199
240
|
case 1:
|
|
200
241
|
_a.sent();
|
|
201
242
|
return [2];
|
package/dist/cjs/idw.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"idw.js","sourceRoot":"","sources":["../../src/idw.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAoC;AAEpC,uCAAuC;AACvC,uCAAsC;AACtC,yCAAsD;
|
|
1
|
+
{"version":3,"file":"idw.js","sourceRoot":"","sources":["../../src/idw.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export const startUpChannels = [
|
|
2
|
+
{
|
|
3
|
+
id: 'facebook-messenger',
|
|
4
|
+
name: 'Facebook Messenger',
|
|
5
|
+
icon: 'https://files.qa.api.onereach.ai/public/9c1b43df-0f7c-43fe-819f-be9df1f39759/channel-icons/messenger.png',
|
|
6
|
+
},
|
|
7
|
+
{
|
|
8
|
+
id: 'sms',
|
|
9
|
+
name: 'SMS',
|
|
10
|
+
icon: 'https://files.qa.api.onereach.ai/public/9c1b43df-0f7c-43fe-819f-be9df1f39759/channel-icons/sms.png',
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
id: 'telegram',
|
|
14
|
+
name: 'Telegram',
|
|
15
|
+
icon: 'https://files.qa.api.onereach.ai/public/9c1b43df-0f7c-43fe-819f-be9df1f39759/channel-icons/telegram.png',
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
id: 'twitter',
|
|
19
|
+
name: 'Twitter',
|
|
20
|
+
icon: 'https://files.qa.api.onereach.ai/public/9c1b43df-0f7c-43fe-819f-be9df1f39759/channel-icons/twitter.png',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
id: 'viber',
|
|
24
|
+
name: 'Viber',
|
|
25
|
+
icon: 'https://files.qa.api.onereach.ai/public/9c1b43df-0f7c-43fe-819f-be9df1f39759/channel-icons/viber.png',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
id: 'viber-business',
|
|
29
|
+
name: 'Viber Business',
|
|
30
|
+
icon: 'https://files.qa.api.onereach.ai/public/9c1b43df-0f7c-43fe-819f-be9df1f39759/channel-icons/viber.png',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
id: 'whatsapp',
|
|
34
|
+
name: 'WhatsApp',
|
|
35
|
+
icon: 'https://files.qa.api.onereach.ai/public/9c1b43df-0f7c-43fe-819f-be9df1f39759/channel-icons/whatsapp.png',
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
//# sourceMappingURL=channels.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channels.js","sourceRoot":"","sources":["../../../src/data/channels.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B;QACE,EAAE,EAAE,oBAAoB;QACxB,IAAI,EAAE,oBAAoB;QAC1B,IAAI,EAAE,0GAA0G;KACjH;IACD;QACE,EAAE,EAAE,KAAK;QACT,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,oGAAoG;KAC3G;IACD;QACE,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,yGAAyG;KAChH;IACD;QACE,EAAE,EAAE,SAAS;QACb,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,wGAAwG;KAC/G;IACD;QACE,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,sGAAsG;KAC7G;IACD;QACE,EAAE,EAAE,gBAAgB;QACpB,IAAI,EAAE,gBAAgB;QACtB,IAAI,EAAE,sGAAsG;KAC7G;IACD;QACE,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,yGAAyG;KAChH;CACF,CAAC"}
|
package/dist/esm/idw.js
CHANGED
|
@@ -11,6 +11,7 @@ import { Base } from '@or-sdk/base';
|
|
|
11
11
|
import { Graphs } from '@or-sdk/graph';
|
|
12
12
|
import { Users } from '@or-sdk/users';
|
|
13
13
|
import { GRAPH_NAME, SERVICE_KEY } from './constants';
|
|
14
|
+
import { startUpChannels } from './data/channels';
|
|
14
15
|
export class IDW extends Base {
|
|
15
16
|
constructor(params) {
|
|
16
17
|
const { accountId, discoveryUrl, graphUrl, sdkApiUrl, token, } = params;
|
|
@@ -39,12 +40,26 @@ export class IDW extends Base {
|
|
|
39
40
|
yield this.graphApi.getGraphInfo(GRAPH_NAME);
|
|
40
41
|
}
|
|
41
42
|
catch (e) {
|
|
42
|
-
|
|
43
|
+
this.createDb();
|
|
43
44
|
}
|
|
44
45
|
});
|
|
45
46
|
}
|
|
47
|
+
createDb() {
|
|
48
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
49
|
+
yield this.graphApi.createGraph({ name: GRAPH_NAME });
|
|
50
|
+
yield this.graphApi.query({
|
|
51
|
+
graph: GRAPH_NAME,
|
|
52
|
+
query: `CREATE
|
|
53
|
+
${startUpChannels.map(({ id, name, icon }) => {
|
|
54
|
+
return `(:CHANNEL {id: '${id}', name; '${name}', icon: '${icon}'})`;
|
|
55
|
+
})}
|
|
56
|
+
`,
|
|
57
|
+
params: {},
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
}
|
|
46
61
|
createOrUpdateFlow(flow) {
|
|
47
|
-
var _a;
|
|
62
|
+
var _a, _b;
|
|
48
63
|
return __awaiter(this, void 0, void 0, function* () {
|
|
49
64
|
const id = flow.id;
|
|
50
65
|
if (id === undefined) {
|
|
@@ -85,10 +100,12 @@ export class IDW extends Base {
|
|
|
85
100
|
});
|
|
86
101
|
yield this.graphQuery(`
|
|
87
102
|
MATCH (flow:FLOW { id: $id })
|
|
88
|
-
OPTIONAL MATCH (flow)-[
|
|
89
|
-
|
|
103
|
+
OPTIONAL MATCH (flow)-[channelRelations:IMPLEMENTS { isActive: false }]->(:CHANNEL)
|
|
104
|
+
OPTIONAL MATCH (flow)-[skillRelations:IMPLEMENTS { isActive: false }]->(:SKILL)
|
|
105
|
+
DELETE channelRelations, skillRelations
|
|
90
106
|
`, { id });
|
|
91
107
|
const channel = (_a = flow.data.meta.idw) === null || _a === void 0 ? void 0 : _a.channel;
|
|
108
|
+
const skills = (_b = flow.data.meta.idw) === null || _b === void 0 ? void 0 : _b.skills;
|
|
92
109
|
if (channel !== undefined && channel.length !== 0) {
|
|
93
110
|
yield this.graphQuery(`
|
|
94
111
|
MATCH (flow:FLOW { id: $id }),
|
|
@@ -101,6 +118,18 @@ export class IDW extends Base {
|
|
|
101
118
|
id,
|
|
102
119
|
});
|
|
103
120
|
}
|
|
121
|
+
if (skills === null || skills === void 0 ? void 0 : skills.length) {
|
|
122
|
+
const preparedIds = skills.map(id => `'${id}'`);
|
|
123
|
+
yield this.graphQuery(`
|
|
124
|
+
MATCH (flow:FLOW { id: $id }), (skill:SKILL)
|
|
125
|
+
WHERE skill.id in [${preparedIds}]
|
|
126
|
+
MERGE (flow)-[relationship:IMPLEMENTS]->(skill)
|
|
127
|
+
ON CREATE
|
|
128
|
+
SET relationship.isActive = false
|
|
129
|
+
`, {
|
|
130
|
+
id,
|
|
131
|
+
});
|
|
132
|
+
}
|
|
104
133
|
});
|
|
105
134
|
}
|
|
106
135
|
deleteFlow(id) {
|
|
@@ -112,7 +141,7 @@ export class IDW extends Base {
|
|
|
112
141
|
});
|
|
113
142
|
}
|
|
114
143
|
activateFlow(flow) {
|
|
115
|
-
var _a;
|
|
144
|
+
var _a, _b;
|
|
116
145
|
return __awaiter(this, void 0, void 0, function* () {
|
|
117
146
|
const id = flow.id;
|
|
118
147
|
if (id === undefined) {
|
|
@@ -120,8 +149,9 @@ export class IDW extends Base {
|
|
|
120
149
|
}
|
|
121
150
|
yield this.graphQuery(`
|
|
122
151
|
MATCH (flow:FLOW { id: $id })
|
|
123
|
-
OPTIONAL MATCH (flow)-[
|
|
124
|
-
|
|
152
|
+
OPTIONAL MATCH (flow)-[channelRelations:IMPLEMENTS]->(:CHANNEL)
|
|
153
|
+
OPTIONAL MATCH (flow)-[skillRelations:IMPLEMENTS]->(:SKILL)
|
|
154
|
+
DELETE channelRelations, skillRelations
|
|
125
155
|
SET flow.activatedAt = $activatedAt,
|
|
126
156
|
flow.isActive = true
|
|
127
157
|
`, {
|
|
@@ -129,6 +159,7 @@ export class IDW extends Base {
|
|
|
129
159
|
id,
|
|
130
160
|
});
|
|
131
161
|
const channel = (_a = flow.data.meta.idw) === null || _a === void 0 ? void 0 : _a.channel;
|
|
162
|
+
const skills = (_b = flow.data.meta.idw) === null || _b === void 0 ? void 0 : _b.skills;
|
|
132
163
|
if (channel !== undefined && channel.length !== 0) {
|
|
133
164
|
yield this.graphQuery(`
|
|
134
165
|
MATCH (flow:FLOW { id: $id }),
|
|
@@ -140,15 +171,28 @@ export class IDW extends Base {
|
|
|
140
171
|
id,
|
|
141
172
|
});
|
|
142
173
|
}
|
|
174
|
+
if (skills === null || skills === void 0 ? void 0 : skills.length) {
|
|
175
|
+
const preparedIds = skills.map(id => `'${id}'`);
|
|
176
|
+
yield this.graphQuery(`
|
|
177
|
+
MATCH (flow:FLOW { id: $id }), (skill:SKILL)
|
|
178
|
+
WHERE skill.id in [${preparedIds}]
|
|
179
|
+
MERGE (flow)-[relationship:IMPLEMENTS]->(skill)
|
|
180
|
+
SET relationship.isActive = true
|
|
181
|
+
`, {
|
|
182
|
+
id,
|
|
183
|
+
});
|
|
184
|
+
}
|
|
143
185
|
});
|
|
144
186
|
}
|
|
145
187
|
deactivateFlow(id) {
|
|
146
188
|
return __awaiter(this, void 0, void 0, function* () {
|
|
147
189
|
yield this.graphQuery(`
|
|
148
190
|
MATCH (flow:FLOW { id: $id })
|
|
149
|
-
OPTIONAL MATCH (flow)-[
|
|
191
|
+
OPTIONAL MATCH (flow)-[channelRelations:IMPLEMENTS]->(:CHANNEL)
|
|
192
|
+
OPTIONAL MATCH (flow)-[skillRelations:IMPLEMENTS]->(:SKILL)
|
|
150
193
|
SET flow.isActive = false,
|
|
151
|
-
|
|
194
|
+
channelRelations.isActive = false,
|
|
195
|
+
skillRelations.isActive = false
|
|
152
196
|
REMOVE flow.activatedAt
|
|
153
197
|
RETURN flow
|
|
154
198
|
`, { id });
|
package/dist/esm/idw.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"idw.js","sourceRoot":"","sources":["../../src/idw.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"idw.js","sourceRoot":"","sources":["../../src/idw.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channels.d.ts","sourceRoot":"","sources":["../../../src/data/channels.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe;;;;GAoC3B,CAAC"}
|
package/dist/types/idw.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export declare class IDW extends Base {
|
|
|
6
6
|
private readonly users;
|
|
7
7
|
constructor(params: IDWConfig);
|
|
8
8
|
checkOrCreateDb(): Promise<void>;
|
|
9
|
+
createDb(): Promise<void>;
|
|
9
10
|
createOrUpdateFlow(flow: Flow): Promise<void>;
|
|
10
11
|
deleteFlow(id: string): Promise<void>;
|
|
11
12
|
activateFlow(flow: Flow): Promise<void>;
|
package/dist/types/idw.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"idw.d.ts","sourceRoot":"","sources":["../../src/idw.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAIxC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"idw.d.ts","sourceRoot":"","sources":["../../src/idw.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAIxC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAUpC,qBAAa,GAAI,SAAQ,IAAI;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;gBAalB,MAAM,EAAE,SAAS;IA8BvB,eAAe;IAQf,QAAQ;IAaR,kBAAkB,CAAC,IAAI,EAAE,IAAI;IA+E7B,UAAU,CAAC,EAAE,EAAE,MAAM;IAOrB,YAAY,CAAC,IAAI,EAAE,IAAI;IA8CvB,cAAc,CAAC,EAAE,EAAE,MAAM;YAajB,UAAU;CAoBzB"}
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "1.2.0-beta.
|
|
2
|
+
"version": "1.2.0-beta.1386.0",
|
|
3
3
|
"name": "@or-sdk/idw",
|
|
4
4
|
"main": "dist/cjs/index.js",
|
|
5
5
|
"module": "dist/esm/index.js",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"@or-sdk/base": "^0.28.1",
|
|
28
|
-
"@or-sdk/deployer": "^1.1.
|
|
28
|
+
"@or-sdk/deployer": "^1.1.2",
|
|
29
29
|
"@or-sdk/graph": "^1.3.1",
|
|
30
30
|
"@or-sdk/users": "^0.30.0"
|
|
31
31
|
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
export const startUpChannels = [
|
|
2
|
+
{
|
|
3
|
+
id: 'facebook-messenger',
|
|
4
|
+
name: 'Facebook Messenger',
|
|
5
|
+
icon: 'https://files.qa.api.onereach.ai/public/9c1b43df-0f7c-43fe-819f-be9df1f39759/channel-icons/messenger.png',
|
|
6
|
+
},
|
|
7
|
+
{
|
|
8
|
+
id: 'sms',
|
|
9
|
+
name: 'SMS',
|
|
10
|
+
icon: 'https://files.qa.api.onereach.ai/public/9c1b43df-0f7c-43fe-819f-be9df1f39759/channel-icons/sms.png',
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
id: 'telegram',
|
|
14
|
+
name: 'Telegram',
|
|
15
|
+
icon: 'https://files.qa.api.onereach.ai/public/9c1b43df-0f7c-43fe-819f-be9df1f39759/channel-icons/telegram.png',
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
id: 'twitter',
|
|
19
|
+
name: 'Twitter',
|
|
20
|
+
icon: 'https://files.qa.api.onereach.ai/public/9c1b43df-0f7c-43fe-819f-be9df1f39759/channel-icons/twitter.png',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
id: 'viber',
|
|
24
|
+
name: 'Viber',
|
|
25
|
+
icon: 'https://files.qa.api.onereach.ai/public/9c1b43df-0f7c-43fe-819f-be9df1f39759/channel-icons/viber.png',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
id: 'viber-business',
|
|
29
|
+
name: 'Viber Business',
|
|
30
|
+
icon: 'https://files.qa.api.onereach.ai/public/9c1b43df-0f7c-43fe-819f-be9df1f39759/channel-icons/viber.png',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
id: 'whatsapp',
|
|
34
|
+
name: 'WhatsApp',
|
|
35
|
+
icon: 'https://files.qa.api.onereach.ai/public/9c1b43df-0f7c-43fe-819f-be9df1f39759/channel-icons/whatsapp.png',
|
|
36
|
+
},
|
|
37
|
+
];
|
package/src/idw.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { Graphs } from '@or-sdk/graph';
|
|
|
4
4
|
import { Users } from '@or-sdk/users';
|
|
5
5
|
import { GRAPH_NAME, SERVICE_KEY } from './constants';
|
|
6
6
|
import { IDWConfig } from './types';
|
|
7
|
+
import { startUpChannels } from './data/channels';
|
|
7
8
|
|
|
8
9
|
/**
|
|
9
10
|
* OneReach IDW service client
|
|
@@ -61,10 +62,23 @@ export class IDW extends Base {
|
|
|
61
62
|
try {
|
|
62
63
|
await this.graphApi.getGraphInfo(GRAPH_NAME);
|
|
63
64
|
} catch (e) {
|
|
64
|
-
|
|
65
|
+
this.createDb();
|
|
65
66
|
}
|
|
66
67
|
}
|
|
67
68
|
|
|
69
|
+
async createDb() {
|
|
70
|
+
await this.graphApi.createGraph({ name: GRAPH_NAME });
|
|
71
|
+
await this.graphApi.query({
|
|
72
|
+
graph: GRAPH_NAME,
|
|
73
|
+
query: `CREATE
|
|
74
|
+
${startUpChannels.map(({ id, name, icon }) => {
|
|
75
|
+
return `(:CHANNEL {id: '${id}', name; '${name}', icon: '${icon}'})`;
|
|
76
|
+
})}
|
|
77
|
+
`,
|
|
78
|
+
params: {},
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
|
|
68
82
|
async createOrUpdateFlow(flow: Flow) {
|
|
69
83
|
const id = flow.id;
|
|
70
84
|
if (id === undefined) {
|
|
@@ -109,11 +123,14 @@ export class IDW extends Base {
|
|
|
109
123
|
|
|
110
124
|
await this.graphQuery(`
|
|
111
125
|
MATCH (flow:FLOW { id: $id })
|
|
112
|
-
OPTIONAL MATCH (flow)-[
|
|
113
|
-
|
|
126
|
+
OPTIONAL MATCH (flow)-[channelRelations:IMPLEMENTS { isActive: false }]->(:CHANNEL)
|
|
127
|
+
OPTIONAL MATCH (flow)-[skillRelations:IMPLEMENTS { isActive: false }]->(:SKILL)
|
|
128
|
+
DELETE channelRelations, skillRelations
|
|
114
129
|
`, { id });
|
|
115
130
|
|
|
116
131
|
const channel = flow.data.meta.idw?.channel;
|
|
132
|
+
const skills = flow.data.meta.idw?.skills;
|
|
133
|
+
|
|
117
134
|
if (channel !== undefined && channel.length !== 0) {
|
|
118
135
|
await this.graphQuery(`
|
|
119
136
|
MATCH (flow:FLOW { id: $id }),
|
|
@@ -126,6 +143,19 @@ export class IDW extends Base {
|
|
|
126
143
|
id,
|
|
127
144
|
});
|
|
128
145
|
}
|
|
146
|
+
|
|
147
|
+
if (skills?.length) {
|
|
148
|
+
const preparedIds = skills.map(id => `'${id}'`);
|
|
149
|
+
await this.graphQuery(`
|
|
150
|
+
MATCH (flow:FLOW { id: $id }), (skill:SKILL)
|
|
151
|
+
WHERE skill.id in [${preparedIds}]
|
|
152
|
+
MERGE (flow)-[relationship:IMPLEMENTS]->(skill)
|
|
153
|
+
ON CREATE
|
|
154
|
+
SET relationship.isActive = false
|
|
155
|
+
`, {
|
|
156
|
+
id,
|
|
157
|
+
});
|
|
158
|
+
}
|
|
129
159
|
}
|
|
130
160
|
|
|
131
161
|
async deleteFlow(id: string) {
|
|
@@ -143,8 +173,9 @@ export class IDW extends Base {
|
|
|
143
173
|
|
|
144
174
|
await this.graphQuery(`
|
|
145
175
|
MATCH (flow:FLOW { id: $id })
|
|
146
|
-
OPTIONAL MATCH (flow)-[
|
|
147
|
-
|
|
176
|
+
OPTIONAL MATCH (flow)-[channelRelations:IMPLEMENTS]->(:CHANNEL)
|
|
177
|
+
OPTIONAL MATCH (flow)-[skillRelations:IMPLEMENTS]->(:SKILL)
|
|
178
|
+
DELETE channelRelations, skillRelations
|
|
148
179
|
SET flow.activatedAt = $activatedAt,
|
|
149
180
|
flow.isActive = true
|
|
150
181
|
`, {
|
|
@@ -153,6 +184,8 @@ export class IDW extends Base {
|
|
|
153
184
|
});
|
|
154
185
|
|
|
155
186
|
const channel = flow.data.meta.idw?.channel;
|
|
187
|
+
const skills = flow.data.meta.idw?.skills;
|
|
188
|
+
|
|
156
189
|
if (channel !== undefined && channel.length !== 0) {
|
|
157
190
|
await this.graphQuery(`
|
|
158
191
|
MATCH (flow:FLOW { id: $id }),
|
|
@@ -164,14 +197,28 @@ export class IDW extends Base {
|
|
|
164
197
|
id,
|
|
165
198
|
});
|
|
166
199
|
}
|
|
200
|
+
|
|
201
|
+
if (skills?.length) {
|
|
202
|
+
const preparedIds = skills.map(id => `'${id}'`);
|
|
203
|
+
await this.graphQuery(`
|
|
204
|
+
MATCH (flow:FLOW { id: $id }), (skill:SKILL)
|
|
205
|
+
WHERE skill.id in [${preparedIds}]
|
|
206
|
+
MERGE (flow)-[relationship:IMPLEMENTS]->(skill)
|
|
207
|
+
SET relationship.isActive = true
|
|
208
|
+
`, {
|
|
209
|
+
id,
|
|
210
|
+
});
|
|
211
|
+
}
|
|
167
212
|
}
|
|
168
213
|
|
|
169
214
|
async deactivateFlow(id: string) {
|
|
170
215
|
await this.graphQuery(`
|
|
171
216
|
MATCH (flow:FLOW { id: $id })
|
|
172
|
-
OPTIONAL MATCH (flow)-[
|
|
217
|
+
OPTIONAL MATCH (flow)-[channelRelations:IMPLEMENTS]->(:CHANNEL)
|
|
218
|
+
OPTIONAL MATCH (flow)-[skillRelations:IMPLEMENTS]->(:SKILL)
|
|
173
219
|
SET flow.isActive = false,
|
|
174
|
-
|
|
220
|
+
channelRelations.isActive = false,
|
|
221
|
+
skillRelations.isActive = false
|
|
175
222
|
REMOVE flow.activatedAt
|
|
176
223
|
RETURN flow
|
|
177
224
|
`, { id });
|