@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 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, , 4]);
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, 4];
95
+ return [3, 3];
95
96
  case 2:
96
97
  e_1 = _a.sent();
97
- return [4, this.graphApi.createGraph({ name: constants_1.GRAPH_NAME })];
98
- case 3:
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 [3, 4];
101
- case 4: return [2];
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 (_b) {
111
- switch (_b.label) {
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, _b.sent()];
140
+ case 1: return [2, _c.sent()];
120
141
  case 2: return [4, this.users.getCurrentUser()];
121
142
  case 3:
122
- userId = (_b.sent()).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
- _b.sent();
134
- return [4, this.graphQuery("\n MATCH (flow:FLOW { id: $id })\n OPTIONAL MATCH (flow)-[relationships:IMPLEMENTS { isActive: false }]->(:CHANNEL)\n DELETE relationships\n ", { id: id })];
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
- _b.sent();
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
- _b.sent();
145
- _b.label = 7;
146
- case 7: return [2];
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 (_b) {
168
- switch (_b.label) {
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)-[relationships:IMPLEMENTS]->(:CHANNEL)\n DELETE relationships\n SET flow.activatedAt = $activatedAt,\n flow.isActive = true\n ", {
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
- _b.sent();
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
- _b.sent();
188
- _b.label = 3;
189
- case 3: return [2];
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)-[relationships:IMPLEMENTS]->(:CHANNEL)\n SET flow.isActive = false,\n relationships.isActive = false\n REMOVE flow.activatedAt\n RETURN flow\n ", { id: id })];
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];
@@ -1 +1 @@
1
- {"version":3,"file":"idw.js","sourceRoot":"","sources":["../../src/idw.ts"],"names":[],"mappings":"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"}
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
- yield this.graphApi.createGraph({ name: GRAPH_NAME });
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)-[relationships:IMPLEMENTS { isActive: false }]->(:CHANNEL)
89
- DELETE relationships
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)-[relationships:IMPLEMENTS]->(:CHANNEL)
124
- DELETE relationships
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)-[relationships:IMPLEMENTS]->(:CHANNEL)
191
+ OPTIONAL MATCH (flow)-[channelRelations:IMPLEMENTS]->(:CHANNEL)
192
+ OPTIONAL MATCH (flow)-[skillRelations:IMPLEMENTS]->(:SKILL)
150
193
  SET flow.isActive = false,
151
- relationships.isActive = false
194
+ channelRelations.isActive = false,
195
+ skillRelations.isActive = false
152
196
  REMOVE flow.activatedAt
153
197
  RETURN flow
154
198
  `, { id });
@@ -1 +1 @@
1
- {"version":3,"file":"idw.js","sourceRoot":"","sources":["../../src/idw.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"idw.js","sourceRoot":"","sources":["../../src/idw.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export declare const startUpChannels: {
2
+ id: string;
3
+ name: string;
4
+ icon: string;
5
+ }[];
6
+ //# sourceMappingURL=channels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channels.d.ts","sourceRoot":"","sources":["../../../src/data/channels.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe;;;;GAoC3B,CAAC"}
@@ -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>;
@@ -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;AASpC,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,kBAAkB,CAAC,IAAI,EAAE,IAAI;IA+D7B,UAAU,CAAC,EAAE,EAAE,MAAM;IAOrB,YAAY,CAAC,IAAI,EAAE,IAAI;IA+BvB,cAAc,CAAC,EAAE,EAAE,MAAM;YAWjB,UAAU;CAoBzB"}
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.1331.0",
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.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
- await this.graphApi.createGraph({ name: GRAPH_NAME });
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)-[relationships:IMPLEMENTS { isActive: false }]->(:CHANNEL)
113
- DELETE relationships
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)-[relationships:IMPLEMENTS]->(:CHANNEL)
147
- DELETE relationships
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)-[relationships:IMPLEMENTS]->(:CHANNEL)
217
+ OPTIONAL MATCH (flow)-[channelRelations:IMPLEMENTS]->(:CHANNEL)
218
+ OPTIONAL MATCH (flow)-[skillRelations:IMPLEMENTS]->(:SKILL)
173
219
  SET flow.isActive = false,
174
- relationships.isActive = false
220
+ channelRelations.isActive = false,
221
+ skillRelations.isActive = false
175
222
  REMOVE flow.activatedAt
176
223
  RETURN flow
177
224
  `, { id });