@or-sdk/idw 1.1.0-beta.1316.0 → 1.1.0-beta.1319.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/dist/cjs/idw.js CHANGED
@@ -104,11 +104,11 @@ var IDW = (function (_super) {
104
104
  });
105
105
  };
106
106
  IDW.prototype.createOrUpdateFlow = function (flow) {
107
- var _a;
107
+ var _a, _b;
108
108
  return __awaiter(this, void 0, void 0, function () {
109
- var id, userId, channel;
110
- return __generator(this, function (_b) {
111
- switch (_b.label) {
109
+ var id, userId, channel, skills;
110
+ return __generator(this, function (_c) {
111
+ switch (_c.label) {
112
112
  case 0:
113
113
  id = flow.id;
114
114
  if (id === undefined) {
@@ -116,10 +116,10 @@ var IDW = (function (_super) {
116
116
  }
117
117
  if (!flow.isDeleted) return [3, 2];
118
118
  return [4, this.deleteFlow(id)];
119
- case 1: return [2, _b.sent()];
119
+ case 1: return [2, _c.sent()];
120
120
  case 2: return [4, this.users.getCurrentUser()];
121
121
  case 3:
122
- userId = (_b.sent()).userId;
122
+ userId = (_c.sent()).userId;
123
123
  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
124
  createdAt: flow.dateCreated,
125
125
  description: flow.data.description,
@@ -130,20 +130,27 @@ var IDW = (function (_super) {
130
130
  userId: userId,
131
131
  })];
132
132
  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 })];
133
+ _c.sent();
134
+ 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]->(:SKILL)\n DELETE channelRelations, skillRelations\n ", { id: id })];
135
135
  case 5:
136
- _b.sent();
136
+ _c.sent();
137
137
  channel = (_a = flow.data.meta.idw) === null || _a === void 0 ? void 0 : _a.channel;
138
+ skills = (_b = flow.data.meta.idw) === null || _b === void 0 ? void 0 : _b.skills;
138
139
  if (!(channel !== undefined && channel.length !== 0)) return [3, 7];
139
140
  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
141
  channel: channel,
141
142
  id: id,
142
143
  })];
143
144
  case 6:
144
- _b.sent();
145
- _b.label = 7;
146
- case 7: return [2];
145
+ _c.sent();
146
+ _c.label = 7;
147
+ case 7:
148
+ if (!(skills === null || skills === void 0 ? void 0 : skills.length)) return [3, 9];
149
+ return [4, this.createSkillRelation(skills, id)];
150
+ case 8:
151
+ _c.sent();
152
+ _c.label = 9;
153
+ case 9: return [2];
147
154
  }
148
155
  });
149
156
  });
@@ -161,32 +168,39 @@ var IDW = (function (_super) {
161
168
  });
162
169
  };
163
170
  IDW.prototype.activateFlow = function (flow) {
164
- var _a;
171
+ var _a, _b;
165
172
  return __awaiter(this, void 0, void 0, function () {
166
- var id, channel;
167
- return __generator(this, function (_b) {
168
- switch (_b.label) {
173
+ var id, channel, skills;
174
+ return __generator(this, function (_c) {
175
+ switch (_c.label) {
169
176
  case 0:
170
177
  id = flow.id;
171
178
  if (id === undefined) {
172
179
  throw new Error('Only flows with id can be added to the IDW graph');
173
180
  }
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 ", {
181
+ 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
182
  activatedAt: Date.now(),
176
183
  id: id,
177
184
  })];
178
185
  case 1:
179
- _b.sent();
186
+ _c.sent();
180
187
  channel = (_a = flow.data.meta.idw) === null || _a === void 0 ? void 0 : _a.channel;
188
+ skills = (_b = flow.data.meta.idw) === null || _b === void 0 ? void 0 : _b.skills;
181
189
  if (!(channel !== undefined && channel.length !== 0)) return [3, 3];
182
190
  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
191
  channel: channel,
184
192
  id: id,
185
193
  })];
186
194
  case 2:
187
- _b.sent();
188
- _b.label = 3;
189
- case 3: return [2];
195
+ _c.sent();
196
+ _c.label = 3;
197
+ case 3:
198
+ if (!(skills === null || skills === void 0 ? void 0 : skills.length)) return [3, 5];
199
+ return [4, this.createSkillRelation(skills, id)];
200
+ case 4:
201
+ _c.sent();
202
+ _c.label = 5;
203
+ case 5: return [2];
190
204
  }
191
205
  });
192
206
  });
@@ -203,34 +217,57 @@ var IDW = (function (_super) {
203
217
  });
204
218
  });
205
219
  };
206
- IDW.prototype.graphQuery = function (query, params) {
220
+ IDW.prototype.createSkillRelation = function (skillIds, flowId) {
207
221
  return __awaiter(this, void 0, void 0, function () {
208
- var e_2, e_3;
222
+ var preparedIds;
209
223
  return __generator(this, function (_a) {
210
224
  switch (_a.label) {
211
225
  case 0:
212
- _a.trys.push([0, 2, , 3]);
213
- return [4, this.checkOrCreateDb()];
226
+ preparedIds = skillIds.map(function (id) { return "'".concat(id, "'"); });
227
+ return [4, this.graphQuery("\n MATCH (flow:FLOW { id: $id }), (skill:SKILL)\n WHERE skill.id in [".concat(preparedIds, "]\n MERGE (flow)-[:IMPLEMENTS]->(skill)\n return skill, flow\n "), {
228
+ id: flowId,
229
+ })];
230
+ case 1:
231
+ _a.sent();
232
+ return [2];
233
+ }
234
+ });
235
+ });
236
+ };
237
+ IDW.prototype.getSkillsList = function () {
238
+ return __awaiter(this, void 0, void 0, function () {
239
+ var data;
240
+ return __generator(this, function (_a) {
241
+ switch (_a.label) {
242
+ case 0: return [4, this.graphQuery("\n MATCH (skills:SKILL)\n RETURN skills\n ", {})];
243
+ case 1:
244
+ data = _a.sent();
245
+ return [2, (data !== null && data !== void 0 ? data : []).map(function (row) { return row.properties; })];
246
+ }
247
+ });
248
+ });
249
+ };
250
+ IDW.prototype.graphQuery = function (query, params) {
251
+ return __awaiter(this, void 0, void 0, function () {
252
+ var e_2;
253
+ return __generator(this, function (_a) {
254
+ switch (_a.label) {
255
+ case 0: return [4, this.checkOrCreateDb()];
214
256
  case 1:
215
257
  _a.sent();
216
- return [3, 3];
258
+ _a.label = 2;
217
259
  case 2:
218
- e_2 = _a.sent();
219
- console.warn(e_2);
220
- return [3, 3];
221
- case 3:
222
- _a.trys.push([3, 5, , 6]);
260
+ _a.trys.push([2, 4, , 5]);
223
261
  return [4, this.graphApi.query({
224
262
  graph: constants_1.GRAPH_NAME,
225
263
  params: params,
226
264
  query: query,
227
265
  })];
228
- case 4: return [2, _a.sent()];
229
- case 5:
230
- e_3 = _a.sent();
231
- console.warn(e_3);
232
- return [3, 6];
233
- case 6: return [2];
266
+ case 3: return [2, _a.sent()];
267
+ case 4:
268
+ e_2 = _a.sent();
269
+ return [3, 5];
270
+ case 5: return [2];
234
271
  }
235
272
  });
236
273
  });
@@ -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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"}
package/dist/esm/idw.js CHANGED
@@ -44,7 +44,7 @@ export class IDW extends Base {
44
44
  });
45
45
  }
46
46
  createOrUpdateFlow(flow) {
47
- var _a;
47
+ var _a, _b;
48
48
  return __awaiter(this, void 0, void 0, function* () {
49
49
  const id = flow.id;
50
50
  if (id === undefined) {
@@ -85,10 +85,12 @@ export class IDW extends Base {
85
85
  });
86
86
  yield this.graphQuery(`
87
87
  MATCH (flow:FLOW { id: $id })
88
- OPTIONAL MATCH (flow)-[relationships:IMPLEMENTS { isActive: false }]->(:CHANNEL)
89
- DELETE relationships
88
+ OPTIONAL MATCH (flow)-[channelRelations:IMPLEMENTS { isActive: false }]->(:CHANNEL)
89
+ OPTIONAL MATCH (flow)-[skillRelations:IMPLEMENTS]->(:SKILL)
90
+ DELETE channelRelations, skillRelations
90
91
  `, { id });
91
92
  const channel = (_a = flow.data.meta.idw) === null || _a === void 0 ? void 0 : _a.channel;
93
+ const skills = (_b = flow.data.meta.idw) === null || _b === void 0 ? void 0 : _b.skills;
92
94
  if (channel !== undefined && channel.length !== 0) {
93
95
  yield this.graphQuery(`
94
96
  MATCH (flow:FLOW { id: $id }),
@@ -101,6 +103,9 @@ export class IDW extends Base {
101
103
  id,
102
104
  });
103
105
  }
106
+ if (skills === null || skills === void 0 ? void 0 : skills.length) {
107
+ yield this.createSkillRelation(skills, id);
108
+ }
104
109
  });
105
110
  }
106
111
  deleteFlow(id) {
@@ -112,7 +117,7 @@ export class IDW extends Base {
112
117
  });
113
118
  }
114
119
  activateFlow(flow) {
115
- var _a;
120
+ var _a, _b;
116
121
  return __awaiter(this, void 0, void 0, function* () {
117
122
  const id = flow.id;
118
123
  if (id === undefined) {
@@ -120,8 +125,9 @@ export class IDW extends Base {
120
125
  }
121
126
  yield this.graphQuery(`
122
127
  MATCH (flow:FLOW { id: $id })
123
- OPTIONAL MATCH (flow)-[relationships:IMPLEMENTS]->(:CHANNEL)
124
- DELETE relationships
128
+ OPTIONAL MATCH (flow)-[channelRelations:IMPLEMENTS]->(:CHANNEL)
129
+ OPTIONAL MATCH (flow)-[skillRelations:IMPLEMENTS]->(:SKILL)
130
+ DELETE channelRelations, skillRelations
125
131
  SET flow.activatedAt = $activatedAt,
126
132
  flow.isActive = true
127
133
  `, {
@@ -129,6 +135,7 @@ export class IDW extends Base {
129
135
  id,
130
136
  });
131
137
  const channel = (_a = flow.data.meta.idw) === null || _a === void 0 ? void 0 : _a.channel;
138
+ const skills = (_b = flow.data.meta.idw) === null || _b === void 0 ? void 0 : _b.skills;
132
139
  if (channel !== undefined && channel.length !== 0) {
133
140
  yield this.graphQuery(`
134
141
  MATCH (flow:FLOW { id: $id }),
@@ -140,6 +147,9 @@ export class IDW extends Base {
140
147
  id,
141
148
  });
142
149
  }
150
+ if (skills === null || skills === void 0 ? void 0 : skills.length) {
151
+ yield this.createSkillRelation(skills, id);
152
+ }
143
153
  });
144
154
  }
145
155
  deactivateFlow(id) {
@@ -154,14 +164,31 @@ export class IDW extends Base {
154
164
  `, { id });
155
165
  });
156
166
  }
167
+ createSkillRelation(skillIds, flowId) {
168
+ return __awaiter(this, void 0, void 0, function* () {
169
+ const preparedIds = skillIds.map(id => `'${id}'`);
170
+ yield this.graphQuery(`
171
+ MATCH (flow:FLOW { id: $id }), (skill:SKILL)
172
+ WHERE skill.id in [${preparedIds}]
173
+ MERGE (flow)-[:IMPLEMENTS]->(skill)
174
+ return skill, flow
175
+ `, {
176
+ id: flowId,
177
+ });
178
+ });
179
+ }
180
+ getSkillsList() {
181
+ return __awaiter(this, void 0, void 0, function* () {
182
+ const data = yield this.graphQuery(`
183
+ MATCH (skills:SKILL)
184
+ RETURN skills
185
+ `, {});
186
+ return (data !== null && data !== void 0 ? data : []).map(row => row.properties);
187
+ });
188
+ }
157
189
  graphQuery(query, params) {
158
190
  return __awaiter(this, void 0, void 0, function* () {
159
- try {
160
- yield this.checkOrCreateDb();
161
- }
162
- catch (e) {
163
- console.warn(e);
164
- }
191
+ yield this.checkOrCreateDb();
165
192
  try {
166
193
  return yield this.graphApi.query({
167
194
  graph: GRAPH_NAME,
@@ -170,7 +197,6 @@ export class IDW extends Base {
170
197
  });
171
198
  }
172
199
  catch (e) {
173
- console.warn(e);
174
200
  }
175
201
  });
176
202
  }
@@ -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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"}
@@ -1,6 +1,6 @@
1
1
  import { Base } from '@or-sdk/base';
2
2
  import { Flow } from '@or-sdk/deployer';
3
- import { IDWConfig } from './types';
3
+ import { IDWConfig, SimpleNode } from './types';
4
4
  export declare class IDW extends Base {
5
5
  private readonly graphApi;
6
6
  private readonly users;
@@ -10,6 +10,8 @@ export declare class IDW extends Base {
10
10
  deleteFlow(id: string): Promise<void>;
11
11
  activateFlow(flow: Flow): Promise<void>;
12
12
  deactivateFlow(id: string): Promise<void>;
13
+ private createSkillRelation;
14
+ getSkillsList(): Promise<SimpleNode[]>;
13
15
  private graphQuery;
14
16
  }
15
17
  //# sourceMappingURL=idw.d.ts.map
@@ -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,EAAyB,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AASvE,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;IAqE7B,UAAU,CAAC,EAAE,EAAE,MAAM;IAOrB,YAAY,CAAC,IAAI,EAAE,IAAI;IAqCvB,cAAc,CAAC,EAAE,EAAE,MAAM;YAYjB,mBAAmB;IAY3B,aAAa,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YAQ9B,UAAU;CAczB"}
@@ -6,4 +6,15 @@ export type IDWConfig = {
6
6
  sdkApiUrl?: string;
7
7
  token: Token;
8
8
  };
9
+ export interface SimpleNode {
10
+ id: string;
11
+ name: string;
12
+ icon?: string;
13
+ description?: string;
14
+ }
15
+ export interface GraphEntityProperties<T> {
16
+ id: number;
17
+ labels: string[];
18
+ properties: T;
19
+ }
9
20
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAErC,MAAM,MAAM,SAAS,GAAG;IAItB,SAAS,CAAC,EAAE,MAAM,CAAC;IAKnB,YAAY,CAAC,EAAE,MAAM,CAAC;IAKtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAKlB,SAAS,CAAC,EAAE,MAAM,CAAC;IAKnB,KAAK,EAAE,KAAK,CAAC;CACd,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAErC,MAAM,MAAM,SAAS,GAAG;IAItB,SAAS,CAAC,EAAE,MAAM,CAAC;IAKnB,YAAY,CAAC,EAAE,MAAM,CAAC;IAKtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAKlB,SAAS,CAAC,EAAE,MAAM,CAAC;IAKnB,KAAK,EAAE,KAAK,CAAC;CACd,CAAC;AAGF,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB,CAAC,CAAC;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,EAAE,CAAC,CAAC;CACf"}
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.1.0-beta.1316.0",
2
+ "version": "1.1.0-beta.1319.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.2.0-beta.1319.0",
29
29
  "@or-sdk/graph": "^1.3.1",
30
30
  "@or-sdk/users": "^0.30.0"
31
31
  }
package/src/idw.ts CHANGED
@@ -3,7 +3,7 @@ import { Flow } from '@or-sdk/deployer';
3
3
  import { Graphs } from '@or-sdk/graph';
4
4
  import { Users } from '@or-sdk/users';
5
5
  import { GRAPH_NAME, SERVICE_KEY } from './constants';
6
- import { IDWConfig } from './types';
6
+ import { GraphEntityProperties, IDWConfig, SimpleNode } from './types';
7
7
 
8
8
  /**
9
9
  * OneReach IDW service client
@@ -109,11 +109,13 @@ export class IDW extends Base {
109
109
 
110
110
  await this.graphQuery(`
111
111
  MATCH (flow:FLOW { id: $id })
112
- OPTIONAL MATCH (flow)-[relationships:IMPLEMENTS { isActive: false }]->(:CHANNEL)
113
- DELETE relationships
112
+ OPTIONAL MATCH (flow)-[channelRelations:IMPLEMENTS { isActive: false }]->(:CHANNEL)
113
+ OPTIONAL MATCH (flow)-[skillRelations:IMPLEMENTS]->(:SKILL)
114
+ DELETE channelRelations, skillRelations
114
115
  `, { id });
115
116
 
116
117
  const channel = flow.data.meta.idw?.channel;
118
+ const skills = flow.data.meta.idw?.skills;
117
119
  if (channel !== undefined && channel.length !== 0) {
118
120
  await this.graphQuery(`
119
121
  MATCH (flow:FLOW { id: $id }),
@@ -126,6 +128,10 @@ export class IDW extends Base {
126
128
  id,
127
129
  });
128
130
  }
131
+
132
+ if (skills?.length) {
133
+ await this.createSkillRelation(skills, id);
134
+ }
129
135
  }
130
136
 
131
137
  async deleteFlow(id: string) {
@@ -143,8 +149,9 @@ export class IDW extends Base {
143
149
 
144
150
  await this.graphQuery(`
145
151
  MATCH (flow:FLOW { id: $id })
146
- OPTIONAL MATCH (flow)-[relationships:IMPLEMENTS]->(:CHANNEL)
147
- DELETE relationships
152
+ OPTIONAL MATCH (flow)-[channelRelations:IMPLEMENTS]->(:CHANNEL)
153
+ OPTIONAL MATCH (flow)-[skillRelations:IMPLEMENTS]->(:SKILL)
154
+ DELETE channelRelations, skillRelations
148
155
  SET flow.activatedAt = $activatedAt,
149
156
  flow.isActive = true
150
157
  `, {
@@ -153,6 +160,7 @@ export class IDW extends Base {
153
160
  });
154
161
 
155
162
  const channel = flow.data.meta.idw?.channel;
163
+ const skills = flow.data.meta.idw?.skills;
156
164
  if (channel !== undefined && channel.length !== 0) {
157
165
  await this.graphQuery(`
158
166
  MATCH (flow:FLOW { id: $id }),
@@ -164,6 +172,10 @@ export class IDW extends Base {
164
172
  id,
165
173
  });
166
174
  }
175
+
176
+ if (skills?.length) {
177
+ await this.createSkillRelation(skills, id);
178
+ }
167
179
  }
168
180
 
169
181
  async deactivateFlow(id: string) {
@@ -177,23 +189,38 @@ export class IDW extends Base {
177
189
  `, { id });
178
190
  }
179
191
 
180
- private async graphQuery(query: string, params?: Record<string, null | number | string | boolean>) {
181
- //create graph if not exists
182
- try {
183
- await this.checkOrCreateDb();
184
- } catch (e) {
185
- console.warn(e);
186
- // TODO: handle errors 🤔
187
- }
192
+
193
+ private async createSkillRelation(skillIds: string[], flowId: string) {
194
+ const preparedIds = skillIds.map(id => `'${id}'`);
195
+ await this.graphQuery(`
196
+ MATCH (flow:FLOW { id: $id }), (skill:SKILL)
197
+ WHERE skill.id in [${preparedIds}]
198
+ MERGE (flow)-[:IMPLEMENTS]->(skill)
199
+ return skill, flow
200
+ `, {
201
+ id: flowId,
202
+ });
203
+ }
204
+
205
+ async getSkillsList(): Promise<SimpleNode[]> {
206
+ const data = await this.graphQuery<GraphEntityProperties<SimpleNode>>(`
207
+ MATCH (skills:SKILL)
208
+ RETURN skills
209
+ `, {});
210
+ return (data ?? []).map(row => row.properties);
211
+ }
212
+
213
+ private async graphQuery<T>(query: string, params?: Record<string, null | number | string | boolean>) {
214
+ // if 'idw' graph doesn't exist - create it
215
+ await this.checkOrCreateDb();
188
216
 
189
217
  try {
190
- return await this.graphApi.query({
218
+ return await this.graphApi.query<T>({
191
219
  graph: GRAPH_NAME,
192
220
  params,
193
221
  query,
194
222
  });
195
223
  } catch (e) {
196
- console.warn(e);
197
224
  // TODO: handle errors 🤔
198
225
  }
199
226
  }
package/src/types.ts CHANGED
@@ -26,3 +26,17 @@ export type IDWConfig = {
26
26
  */
27
27
  token: Token;
28
28
  };
29
+
30
+
31
+ export interface SimpleNode {
32
+ id: string;
33
+ name: string;
34
+ icon?: string;
35
+ description?: string;
36
+ }
37
+
38
+ export interface GraphEntityProperties<T> {
39
+ id: number;
40
+ labels: string[];
41
+ properties: T;
42
+ }