@or-sdk/idw 1.2.0-beta.1331.0 → 1.2.0-beta.1336.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,6 +217,23 @@ var IDW = (function (_super) {
203
217
  });
204
218
  });
205
219
  };
220
+ IDW.prototype.createSkillRelation = function (skillIds, flowId) {
221
+ return __awaiter(this, void 0, void 0, function () {
222
+ var preparedIds;
223
+ return __generator(this, function (_a) {
224
+ switch (_a.label) {
225
+ case 0:
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
+ };
206
237
  IDW.prototype.graphQuery = function (query, params) {
207
238
  return __awaiter(this, void 0, void 0, function () {
208
239
  var e_2, e_3;
@@ -1 +1 @@
1
- {"version":3,"file":"idw.js","sourceRoot":"","sources":["../../src/idw.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAoC;AAEpC,uCAAuC;AACvC,uCAAsC;AACtC,yCAAsD;AAUtD;IAAyB,uBAAI;IAe3B,aAAY,MAAiB;QAA7B,iBA4BC;QA1BG,IAAA,SAAS,GAKP,MAAM,UALC,EACT,YAAY,GAIV,MAAM,aAJI,EACZ,QAAQ,GAGN,MAAM,SAHA,EACR,SAAS,GAEP,MAAM,UAFC,EACT,KAAK,GACH,MAAM,MADH,CACI;gBAEX,kBAAM;YACJ,SAAS,WAAA;YACT,YAAY,cAAA;YACZ,UAAU,EAAE,uBAAW;YACvB,KAAK,OAAA;SACN,CAAC;QAEF,KAAI,CAAC,QAAQ,GAAG,IAAI,cAAM,CAAC;YACzB,SAAS,WAAA;YACT,YAAY,cAAA;YACZ,QAAQ,UAAA;YACR,KAAK,OAAA;SACN,CAAC,CAAC;QACH,KAAI,CAAC,KAAK,GAAG,IAAI,aAAK,CAAC;YACrB,SAAS,WAAA;YACT,KAAK,OAAA;YACL,YAAY,cAAA;YACZ,MAAM,EAAE,SAAS;SAClB,CAAC,CAAC;;IACL,CAAC;IAEK,6BAAe,GAArB;;;;;;;wBAEI,WAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,sBAAU,CAAC,EAAA;;wBAA5C,SAA4C,CAAC;;;;wBAE7C,WAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,sBAAU,EAAE,CAAC,EAAA;;wBAArD,SAAqD,CAAC;;;;;;KAEzD;IAEK,gCAAkB,GAAxB,UAAyB,IAAU;;;;;;;wBAC3B,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;wBACnB,IAAI,EAAE,KAAK,SAAS,EAAE;4BACpB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;yBACrE;6BAEG,IAAI,CAAC,SAAS,EAAd,cAAc;wBACT,WAAM,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,EAAA;4BAAhC,WAAO,SAAyB,EAAC;4BAGhB,WAAM,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,EAAA;;wBAA5C,MAAM,GAAK,CAAA,SAAiC,CAAA,OAAtC;wBAEd,WAAM,IAAI,CAAC,UAAU,CAAC,+qBAoBrB,EAAE;gCACD,SAAS,EAAE,IAAI,CAAC,WAAW;gCAC3B,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW;gCAClC,OAAO,EAAE,IAAI,CAAC,KAAK;gCACnB,EAAE,IAAA;gCACF,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK;gCACrB,SAAS,EAAE,IAAI,CAAC,YAAY;gCAC5B,MAAM,QAAA;6BACP,CAAC,EAAA;;wBA5BF,SA4BE,CAAC;wBAEH,WAAM,IAAI,CAAC,UAAU,CAAC,iKAIrB,EAAE,EAAE,EAAE,IAAA,EAAE,CAAC,EAAA;;wBAJV,SAIU,CAAC;wBAEL,OAAO,GAAG,MAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,0CAAE,OAAO,CAAC;6BACxC,CAAA,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,CAAA,EAA7C,cAA6C;wBAC/C,WAAM,IAAI,CAAC,UAAU,CAAC,+NAMrB,EAAE;gCACD,OAAO,SAAA;gCACP,EAAE,IAAA;6BACH,CAAC,EAAA;;wBATF,SASE,CAAC;;;;;;KAEN;IAEK,wBAAU,GAAhB,UAAiB,EAAU;;;;4BACzB,WAAM,IAAI,CAAC,UAAU,CAAC,uEAGrB,EAAE,EAAE,EAAE,IAAA,EAAE,CAAC,EAAA;;wBAHV,SAGU,CAAC;;;;;KACZ;IAEK,0BAAY,GAAlB,UAAmB,IAAU;;;;;;;wBACrB,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;wBACnB,IAAI,EAAE,KAAK,SAAS,EAAE;4BACpB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;yBACrE;wBAED,WAAM,IAAI,CAAC,UAAU,CAAC,yNAMrB,EAAE;gCACD,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE;gCACvB,EAAE,IAAA;6BACH,CAAC,EAAA;;wBATF,SASE,CAAC;wBAEG,OAAO,GAAG,MAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,0CAAE,OAAO,CAAC;6BACxC,CAAA,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,CAAA,EAA7C,cAA6C;wBAC/C,WAAM,IAAI,CAAC,UAAU,CAAC,yMAKrB,EAAE;gCACD,OAAO,SAAA;gCACP,EAAE,IAAA;6BACH,CAAC,EAAA;;wBARF,SAQE,CAAC;;;;;;KAEN;IAEK,4BAAc,GAApB,UAAqB,EAAU;;;;4BAC7B,WAAM,IAAI,CAAC,UAAU,CAAC,+OAOrB,EAAE,EAAE,EAAE,IAAA,EAAE,CAAC,EAAA;;wBAPV,SAOU,CAAC;;;;;KACZ;IAEa,wBAAU,GAAxB,UAAyB,KAAa,EAAE,MAAyD;;;;;;;wBAG7F,WAAM,IAAI,CAAC,eAAe,EAAE,EAAA;;wBAA5B,SAA4B,CAAC;;;;wBAE7B,OAAO,CAAC,IAAI,CAAC,GAAC,CAAC,CAAC;;;;wBAKT,WAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gCAC/B,KAAK,EAAE,sBAAU;gCACjB,MAAM,QAAA;gCACN,KAAK,OAAA;6BACN,CAAC,EAAA;4BAJF,WAAO,SAIL,EAAC;;;wBAEH,OAAO,CAAC,IAAI,CAAC,GAAC,CAAC,CAAC;;;;;;KAGnB;IACH,UAAC;AAAD,CAAC,AAzLD,CAAyB,WAAI,GAyL5B;AAzLY,kBAAG"}
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,6 +164,19 @@ 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
+ }
157
180
  graphQuery(query, params) {
158
181
  return __awaiter(this, void 0, void 0, function* () {
159
182
  try {
@@ -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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"}
@@ -10,6 +10,7 @@ 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;
13
14
  private graphQuery;
14
15
  }
15
16
  //# 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,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;IAsE7B,UAAU,CAAC,EAAE,EAAE,MAAM;IAOrB,YAAY,CAAC,IAAI,EAAE,IAAI;IAsCvB,cAAc,CAAC,EAAE,EAAE,MAAM;YAWjB,mBAAmB;YAYnB,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.1336.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.1336.0",
29
29
  "@or-sdk/graph": "^1.3.1",
30
30
  "@or-sdk/users": "^0.30.0"
31
31
  }
package/src/idw.ts CHANGED
@@ -109,11 +109,14 @@ 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;
119
+
117
120
  if (channel !== undefined && channel.length !== 0) {
118
121
  await this.graphQuery(`
119
122
  MATCH (flow:FLOW { id: $id }),
@@ -126,6 +129,10 @@ export class IDW extends Base {
126
129
  id,
127
130
  });
128
131
  }
132
+
133
+ if (skills?.length) {
134
+ await this.createSkillRelation(skills, id);
135
+ }
129
136
  }
130
137
 
131
138
  async deleteFlow(id: string) {
@@ -143,8 +150,9 @@ export class IDW extends Base {
143
150
 
144
151
  await this.graphQuery(`
145
152
  MATCH (flow:FLOW { id: $id })
146
- OPTIONAL MATCH (flow)-[relationships:IMPLEMENTS]->(:CHANNEL)
147
- DELETE relationships
153
+ OPTIONAL MATCH (flow)-[channelRelations:IMPLEMENTS]->(:CHANNEL)
154
+ OPTIONAL MATCH (flow)-[skillRelations:IMPLEMENTS]->(:SKILL)
155
+ DELETE channelRelations, skillRelations
148
156
  SET flow.activatedAt = $activatedAt,
149
157
  flow.isActive = true
150
158
  `, {
@@ -153,6 +161,8 @@ export class IDW extends Base {
153
161
  });
154
162
 
155
163
  const channel = flow.data.meta.idw?.channel;
164
+ const skills = flow.data.meta.idw?.skills;
165
+
156
166
  if (channel !== undefined && channel.length !== 0) {
157
167
  await this.graphQuery(`
158
168
  MATCH (flow:FLOW { id: $id }),
@@ -164,6 +174,10 @@ export class IDW extends Base {
164
174
  id,
165
175
  });
166
176
  }
177
+
178
+ if (skills?.length) {
179
+ await this.createSkillRelation(skills, id);
180
+ }
167
181
  }
168
182
 
169
183
  async deactivateFlow(id: string) {
@@ -177,6 +191,18 @@ export class IDW extends Base {
177
191
  `, { id });
178
192
  }
179
193
 
194
+ private async createSkillRelation(skillIds: string[], flowId: string) {
195
+ const preparedIds = skillIds.map(id => `'${id}'`);
196
+ await this.graphQuery(`
197
+ MATCH (flow:FLOW { id: $id }), (skill:SKILL)
198
+ WHERE skill.id in [${preparedIds}]
199
+ MERGE (flow)-[:IMPLEMENTS]->(skill)
200
+ return skill, flow
201
+ `, {
202
+ id: flowId,
203
+ });
204
+ }
205
+
180
206
  private async graphQuery(query: string, params?: Record<string, null | number | string | boolean>) {
181
207
  //create graph if not exists
182
208
  try {