@or-sdk/idw 1.1.0-beta.1302.0 → 1.1.0-beta.1313.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
@@ -94,9 +94,7 @@ var IDW = (function (_super) {
94
94
  return [3, 4];
95
95
  case 2:
96
96
  e_1 = _a.sent();
97
- return [4, this.graphApi.createGraph({
98
- name: constants_1.GRAPH_NAME,
99
- })];
97
+ return [4, this.graphApi.createGraph({ name: constants_1.GRAPH_NAME })];
100
98
  case 3:
101
99
  _a.sent();
102
100
  return [3, 4];
@@ -106,32 +104,46 @@ var IDW = (function (_super) {
106
104
  });
107
105
  };
108
106
  IDW.prototype.createOrUpdateFlow = function (flow) {
107
+ var _a;
109
108
  return __awaiter(this, void 0, void 0, function () {
110
- var userId;
111
- return __generator(this, function (_a) {
112
- switch (_a.label) {
109
+ var id, userId, channel;
110
+ return __generator(this, function (_b) {
111
+ switch (_b.label) {
113
112
  case 0:
114
- if (flow.id === undefined) {
113
+ id = flow.id;
114
+ if (id === undefined) {
115
115
  throw new Error('Only flows with id can be added to the IDW graph');
116
116
  }
117
117
  if (!flow.isDeleted) return [3, 2];
118
- return [4, this.deleteFlow(flow.id)];
119
- case 1: return [2, _a.sent()];
118
+ return [4, this.deleteFlow(id)];
119
+ case 1: return [2, _b.sent()];
120
120
  case 2: return [4, this.users.getCurrentUser()];
121
121
  case 3:
122
- userId = (_a.sent()).userId;
122
+ userId = (_b.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,
126
126
  groupId: flow.botId,
127
- id: flow.id,
127
+ id: id,
128
128
  name: flow.data.label,
129
129
  updatedAt: flow.dateModified,
130
130
  userId: userId,
131
131
  })];
132
132
  case 4:
133
- _a.sent();
134
- return [2];
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 })];
135
+ case 5:
136
+ _b.sent();
137
+ channel = (_a = flow.data.meta.idw) === null || _a === void 0 ? void 0 : _a.channel;
138
+ if (!(channel !== undefined && channel.length !== 0)) return [3, 7];
139
+ 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
+ channel: channel,
141
+ id: id,
142
+ })];
143
+ case 6:
144
+ _b.sent();
145
+ _b.label = 7;
146
+ case 7: return [2];
135
147
  }
136
148
  });
137
149
  });
@@ -149,22 +161,32 @@ var IDW = (function (_super) {
149
161
  });
150
162
  };
151
163
  IDW.prototype.activateFlow = function (flow) {
164
+ var _a;
152
165
  return __awaiter(this, void 0, void 0, function () {
153
- var id;
154
- return __generator(this, function (_a) {
155
- switch (_a.label) {
166
+ var id, channel;
167
+ return __generator(this, function (_b) {
168
+ switch (_b.label) {
156
169
  case 0:
157
170
  id = flow.id;
158
171
  if (id === undefined) {
159
172
  throw new Error('Only flows with id can be added to the IDW graph');
160
173
  }
161
- return [4, this.graphQuery("\n MATCH (flow:FLOW { id: $id })\n SET flow.isActive = true,\n flow.activatedAt = $activatedAt\n RETURN flow\n ", {
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 ", {
162
175
  activatedAt: Date.now(),
163
176
  id: id,
164
177
  })];
165
178
  case 1:
166
- _a.sent();
167
- return [2];
179
+ _b.sent();
180
+ channel = (_a = flow.data.meta.idw) === null || _a === void 0 ? void 0 : _a.channel;
181
+ if (!(channel !== undefined && channel.length !== 0)) return [3, 3];
182
+ 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
+ channel: channel,
184
+ id: id,
185
+ })];
186
+ case 2:
187
+ _b.sent();
188
+ _b.label = 3;
189
+ case 3: return [2];
168
190
  }
169
191
  });
170
192
  });
@@ -173,7 +195,7 @@ var IDW = (function (_super) {
173
195
  return __awaiter(this, void 0, void 0, function () {
174
196
  return __generator(this, function (_a) {
175
197
  switch (_a.label) {
176
- case 0: return [4, this.graphQuery("\n MATCH (flow:FLOW { id: $id } )\n SET flow.isActive = false\n REMOVE flow.activatedAt\n RETURN flow\n ", { id: id })];
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 })];
177
199
  case 1:
178
200
  _a.sent();
179
201
  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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"}
package/dist/esm/idw.js CHANGED
@@ -39,19 +39,19 @@ export class IDW extends Base {
39
39
  yield this.graphApi.getGraphInfo(GRAPH_NAME);
40
40
  }
41
41
  catch (e) {
42
- yield this.graphApi.createGraph({
43
- name: GRAPH_NAME,
44
- });
42
+ yield this.graphApi.createGraph({ name: GRAPH_NAME });
45
43
  }
46
44
  });
47
45
  }
48
46
  createOrUpdateFlow(flow) {
47
+ var _a;
49
48
  return __awaiter(this, void 0, void 0, function* () {
50
- if (flow.id === undefined) {
49
+ const id = flow.id;
50
+ if (id === undefined) {
51
51
  throw new Error('Only flows with id can be added to the IDW graph');
52
52
  }
53
53
  if (flow.isDeleted) {
54
- return yield this.deleteFlow(flow.id);
54
+ return yield this.deleteFlow(id);
55
55
  }
56
56
  const { userId } = yield this.users.getCurrentUser();
57
57
  yield this.graphQuery(`
@@ -78,11 +78,29 @@ export class IDW extends Base {
78
78
  createdAt: flow.dateCreated,
79
79
  description: flow.data.description,
80
80
  groupId: flow.botId,
81
- id: flow.id,
81
+ id,
82
82
  name: flow.data.label,
83
83
  updatedAt: flow.dateModified,
84
84
  userId,
85
85
  });
86
+ yield this.graphQuery(`
87
+ MATCH (flow:FLOW { id: $id })
88
+ OPTIONAL MATCH (flow)-[relationships:IMPLEMENTS { isActive: false }]->(:CHANNEL)
89
+ DELETE relationships
90
+ `, { id });
91
+ const channel = (_a = flow.data.meta.idw) === null || _a === void 0 ? void 0 : _a.channel;
92
+ if (channel !== undefined && channel.length !== 0) {
93
+ yield this.graphQuery(`
94
+ MATCH (flow:FLOW { id: $id }),
95
+ (channel:CHANNEL { id: $channel })
96
+ MERGE (flow)-[relationship:IMPLEMENTS]->(channel)
97
+ ON CREATE
98
+ SET relationship.isActive = false
99
+ `, {
100
+ channel,
101
+ id,
102
+ });
103
+ }
86
104
  });
87
105
  }
88
106
  deleteFlow(id) {
@@ -94,6 +112,7 @@ export class IDW extends Base {
94
112
  });
95
113
  }
96
114
  activateFlow(flow) {
115
+ var _a;
97
116
  return __awaiter(this, void 0, void 0, function* () {
98
117
  const id = flow.id;
99
118
  if (id === undefined) {
@@ -101,20 +120,35 @@ export class IDW extends Base {
101
120
  }
102
121
  yield this.graphQuery(`
103
122
  MATCH (flow:FLOW { id: $id })
104
- SET flow.isActive = true,
105
- flow.activatedAt = $activatedAt
106
- RETURN flow
123
+ OPTIONAL MATCH (flow)-[relationships:IMPLEMENTS]->(:CHANNEL)
124
+ DELETE relationships
125
+ SET flow.activatedAt = $activatedAt,
126
+ flow.isActive = true
107
127
  `, {
108
128
  activatedAt: Date.now(),
109
129
  id,
110
130
  });
131
+ const channel = (_a = flow.data.meta.idw) === null || _a === void 0 ? void 0 : _a.channel;
132
+ if (channel !== undefined && channel.length !== 0) {
133
+ yield this.graphQuery(`
134
+ MATCH (flow:FLOW { id: $id }),
135
+ (channel:CHANNEL { id: $channel })
136
+ MERGE (flow)-[relationship:IMPLEMENTS]->(channel)
137
+ SET relationship.isActive = true
138
+ `, {
139
+ channel,
140
+ id,
141
+ });
142
+ }
111
143
  });
112
144
  }
113
145
  deactivateFlow(id) {
114
146
  return __awaiter(this, void 0, void 0, function* () {
115
147
  yield this.graphQuery(`
116
- MATCH (flow:FLOW { id: $id } )
117
- SET flow.isActive = false
148
+ MATCH (flow:FLOW { id: $id })
149
+ OPTIONAL MATCH (flow)-[relationships:IMPLEMENTS]->(:CHANNEL)
150
+ SET flow.isActive = false,
151
+ relationships.isActive = false
118
152
  REMOVE flow.activatedAt
119
153
  RETURN flow
120
154
  `, { 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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"}
@@ -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;IAUf,kBAAkB,CAAC,IAAI,EAAE,IAAI;IAqG7B,UAAU,CAAC,EAAE,EAAE,MAAM;IAOrB,YAAY,CAAC,IAAI,EAAE,IAAI;IA2BvB,cAAc,CAAC,EAAE,EAAE,MAAM;YASjB,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;IA+D7B,UAAU,CAAC,EAAE,EAAE,MAAM;IAOrB,YAAY,CAAC,IAAI,EAAE,IAAI;IA+BvB,cAAc,CAAC,EAAE,EAAE,MAAM;YAWjB,UAAU;CAoBzB"}
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.1.0-beta.1302.0",
2
+ "version": "1.1.0-beta.1313.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.2-beta.1302.0",
28
+ "@or-sdk/deployer": "^1.1.2-beta.1313.0",
29
29
  "@or-sdk/graph": "^1.3.1",
30
30
  "@or-sdk/users": "^0.30.0"
31
31
  }
package/src/idw.ts CHANGED
@@ -61,19 +61,18 @@ export class IDW extends Base {
61
61
  try {
62
62
  await this.graphApi.getGraphInfo(GRAPH_NAME);
63
63
  } catch (e) {
64
- await this.graphApi.createGraph({
65
- name: GRAPH_NAME,
66
- });
64
+ await this.graphApi.createGraph({ name: GRAPH_NAME });
67
65
  }
68
66
  }
69
67
 
70
68
  async createOrUpdateFlow(flow: Flow) {
71
- if (flow.id === undefined) {
69
+ const id = flow.id;
70
+ if (id === undefined) {
72
71
  throw new Error('Only flows with id can be added to the IDW graph');
73
72
  }
74
73
 
75
74
  if (flow.isDeleted) {
76
- return await this.deleteFlow(flow.id);
75
+ return await this.deleteFlow(id);
77
76
  }
78
77
 
79
78
  const { userId } = await this.users.getCurrentUser();
@@ -98,76 +97,37 @@ export class IDW extends Base {
98
97
  flow.updatedAt = $updatedAt,
99
98
  flow.updatedBy = $userId
100
99
  RETURN flow
101
- `,
102
- {
100
+ `, {
103
101
  createdAt: flow.dateCreated,
104
102
  description: flow.data.description,
105
103
  groupId: flow.botId,
106
- id: flow.id,
104
+ id,
107
105
  name: flow.data.label,
108
106
  updatedAt: flow.dateModified,
109
107
  userId,
108
+ });
109
+
110
+ await this.graphQuery(`
111
+ MATCH (flow:FLOW { id: $id })
112
+ OPTIONAL MATCH (flow)-[relationships:IMPLEMENTS { isActive: false }]->(:CHANNEL)
113
+ DELETE relationships
114
+ `, { id });
115
+
116
+ const channel = flow.data.meta.idw?.channel;
117
+ if (channel !== undefined && channel.length !== 0) {
118
+ await this.graphQuery(`
119
+ MATCH (flow:FLOW { id: $id }),
120
+ (channel:CHANNEL { id: $channel })
121
+ MERGE (flow)-[relationship:IMPLEMENTS]->(channel)
122
+ ON CREATE
123
+ SET relationship.isActive = false
124
+ `, {
125
+ channel,
126
+ id,
127
+ });
110
128
  }
111
- );
112
-
113
- // const channel = flow.data.meta.idw?.channel;
114
- // if (channel !== undefined) {
115
- // const _channel = await this.getChannel(channel);
116
- // if (channel !== undefined && _.isEmpty(_channel)) return;
117
- // // TODO: ON MATCH DELETE [:IMPLEMENTS] relationship with channel node's { id != $channel }
118
- // await this.deleteRelationship(flow.id, channel);
119
- // // TODO: create :IMPLEMENTS relationship with channel node { id: $channel }
120
- // await this.createRelationship(flow.id, channel);
121
- // } else {
122
- // // TODO: ON MATCH DELETE [:IMPLEMENTS] relationship with channel nodes
123
- // await this.deleteAllRelationship(flow.id);
124
- // }
125
129
  }
126
130
 
127
- // async getChannel(channel: string) {
128
- // return await this.graphQuery(`
129
- // MATCH (channel: CHANNEL {id: $channel})
130
- // RETURN channel`,
131
- // { channel });
132
- // }
133
-
134
- // async getActivatedFlow(channel: string) {
135
- // return await this.graphQuery(`
136
- // MATCH (flow:FLOW { isActive: true })-[:IMPLEMENTS]-(:CHANNEL { channel: $channel })
137
- // RETURN flow`,
138
- // { channel });
139
- // }
140
-
141
- // async deleteRelationship(id: string, channel = '') {
142
- // await this.graphQuery(`
143
- // MATCH (:FLOW {id: $id})-[r:IMPLEMENTS]->(:CHANNEL {id: $channel})
144
- // DELETE r
145
- // `, {
146
- // id,
147
- // channel,
148
- // });
149
- // }
150
-
151
- // async deleteAllRelationship(id: string, channel = '') {
152
- // await this.graphQuery(`
153
- // MATCH (:FLOW {id: $id})-[r:IMPLEMENTS]->(:CHANNEL)
154
- // DELETE r
155
- // `, {
156
- // id,
157
- // channel,
158
- // });
159
- // }
160
-
161
- // async createRelationship(id: string, channel: string) {
162
- // await this.graphQuery(`
163
- // MATCH (f:FLOW {id: $id}), (c:CHANNEL {id: $channel})
164
- // MERGE (f)-[:IMPLEMENTS]->(c)
165
- // `, {
166
- // id,
167
- // channel,
168
- // });
169
- // }
170
-
171
131
  async deleteFlow(id: string) {
172
132
  await this.graphQuery(`
173
133
  MATCH (flow:FLOW { id: $id })
@@ -181,31 +141,37 @@ export class IDW extends Base {
181
141
  throw new Error('Only flows with id can be added to the IDW graph');
182
142
  }
183
143
 
184
- // const channel = flow.data.meta?.idw?.channel;
185
- // if (channel != undefined) {
186
- // // TODO: only throw if a (:FLOW { isActive: true })-[:IMPLEMENTS]-(:CHANNEL { channel: $channel })
187
- // const activatedFlow = await this.getActivatedFlow(channel);
188
- // if (activatedFlow && activatedFlow.length > 0) {
189
- // throw new Error(`Cannot activate second flow for channel ${channel}`);
190
- // }
191
- // }
192
-
193
144
  await this.graphQuery(`
194
145
  MATCH (flow:FLOW { id: $id })
195
- SET flow.isActive = true,
196
- flow.activatedAt = $activatedAt
197
- RETURN flow
146
+ OPTIONAL MATCH (flow)-[relationships:IMPLEMENTS]->(:CHANNEL)
147
+ DELETE relationships
148
+ SET flow.activatedAt = $activatedAt,
149
+ flow.isActive = true
198
150
  `, {
199
151
  activatedAt: Date.now(),
200
152
  id,
201
153
  });
202
- }
203
154
 
155
+ const channel = flow.data.meta.idw?.channel;
156
+ if (channel !== undefined && channel.length !== 0) {
157
+ await this.graphQuery(`
158
+ MATCH (flow:FLOW { id: $id }),
159
+ (channel:CHANNEL { id: $channel })
160
+ MERGE (flow)-[relationship:IMPLEMENTS]->(channel)
161
+ SET relationship.isActive = true
162
+ `, {
163
+ channel,
164
+ id,
165
+ });
166
+ }
167
+ }
204
168
 
205
169
  async deactivateFlow(id: string) {
206
170
  await this.graphQuery(`
207
- MATCH (flow:FLOW { id: $id } )
208
- SET flow.isActive = false
171
+ MATCH (flow:FLOW { id: $id })
172
+ OPTIONAL MATCH (flow)-[relationships:IMPLEMENTS]->(:CHANNEL)
173
+ SET flow.isActive = false,
174
+ relationships.isActive = false
209
175
  REMOVE flow.activatedAt
210
176
  RETURN flow
211
177
  `, { id });