@or-sdk/idw 1.1.0-beta.1287.0 → 1.1.0-beta.1291.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 +79 -22
- package/dist/cjs/idw.js.map +1 -1
- package/dist/esm/idw.js +62 -10
- package/dist/esm/idw.js.map +1 -1
- package/dist/types/idw.d.ts +1 -0
- package/dist/types/idw.d.ts.map +1 -1
- package/package.json +4 -3
- package/src/idw.ts +75 -68
package/dist/cjs/idw.js
CHANGED
|
@@ -50,12 +50,16 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
50
50
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
51
51
|
}
|
|
52
52
|
};
|
|
53
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
54
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
55
|
+
};
|
|
53
56
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
54
57
|
exports.IDW = void 0;
|
|
55
58
|
var base_1 = require("@or-sdk/base");
|
|
56
59
|
var graph_1 = require("@or-sdk/graph");
|
|
57
60
|
var users_1 = require("@or-sdk/users");
|
|
58
61
|
var constants_1 = require("./constants");
|
|
62
|
+
var lodash_1 = __importDefault(require("lodash"));
|
|
59
63
|
var IDW = (function (_super) {
|
|
60
64
|
__extends(IDW, _super);
|
|
61
65
|
function IDW(params) {
|
|
@@ -81,21 +85,46 @@ var IDW = (function (_super) {
|
|
|
81
85
|
});
|
|
82
86
|
return _this;
|
|
83
87
|
}
|
|
84
|
-
IDW.prototype.
|
|
88
|
+
IDW.prototype.checkOrCreateDb = function () {
|
|
85
89
|
return __awaiter(this, void 0, void 0, function () {
|
|
86
|
-
var
|
|
90
|
+
var e_1;
|
|
87
91
|
return __generator(this, function (_a) {
|
|
88
92
|
switch (_a.label) {
|
|
93
|
+
case 0:
|
|
94
|
+
_a.trys.push([0, 2, , 4]);
|
|
95
|
+
return [4, this.graphApi.getGraphInfo(constants_1.GRAPH_NAME)];
|
|
96
|
+
case 1:
|
|
97
|
+
_a.sent();
|
|
98
|
+
return [3, 4];
|
|
99
|
+
case 2:
|
|
100
|
+
e_1 = _a.sent();
|
|
101
|
+
return [4, this.graphApi.createGraph({
|
|
102
|
+
name: constants_1.GRAPH_NAME,
|
|
103
|
+
})];
|
|
104
|
+
case 3:
|
|
105
|
+
_a.sent();
|
|
106
|
+
return [3, 4];
|
|
107
|
+
case 4: return [2];
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
};
|
|
112
|
+
IDW.prototype.createOrUpdateFlow = function (flow) {
|
|
113
|
+
var _a;
|
|
114
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
115
|
+
var userId, channel;
|
|
116
|
+
return __generator(this, function (_b) {
|
|
117
|
+
switch (_b.label) {
|
|
89
118
|
case 0:
|
|
90
119
|
if (flow.id === undefined) {
|
|
91
120
|
throw new Error('Only flows with id can be added to the IDW graph');
|
|
92
121
|
}
|
|
93
122
|
if (!flow.isDeleted) return [3, 2];
|
|
94
123
|
return [4, this.deleteFlow(flow.id)];
|
|
95
|
-
case 1: return [2,
|
|
124
|
+
case 1: return [2, _b.sent()];
|
|
96
125
|
case 2: return [4, this.users.getCurrentUser()];
|
|
97
126
|
case 3:
|
|
98
|
-
userId = (
|
|
127
|
+
userId = (_b.sent()).userId;
|
|
99
128
|
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 ", {
|
|
100
129
|
createdAt: flow.dateCreated,
|
|
101
130
|
description: flow.data.description,
|
|
@@ -106,8 +135,22 @@ var IDW = (function (_super) {
|
|
|
106
135
|
userId: userId,
|
|
107
136
|
})];
|
|
108
137
|
case 4:
|
|
109
|
-
|
|
110
|
-
return [
|
|
138
|
+
_b.sent();
|
|
139
|
+
return [4, this.graphQuery("\n MATCH (flow:FLOW {id: $id})\n OPTIONAL MATCH (f)-[r:IMPLEMENTS {isActive: false}]->(:CHANNEL)\n DELETE r\n ", {
|
|
140
|
+
id: flow.id,
|
|
141
|
+
})];
|
|
142
|
+
case 5:
|
|
143
|
+
_b.sent();
|
|
144
|
+
channel = (_a = flow.data.meta.idw) === null || _a === void 0 ? void 0 : _a.channel;
|
|
145
|
+
if (!(channel !== undefined && !lodash_1.default.isEmpty(channel))) return [3, 7];
|
|
146
|
+
return [4, this.graphQuery("\n MATCH (f:FLOW {id: $id}),\n (c:CHANNEL {id: $channel})\n MERGE (f)-[r:IMPLEMENTS]->(c)\n ON CREATE\n SET r.isActive = false\n ", {
|
|
147
|
+
channel: channel,
|
|
148
|
+
id: flow.id,
|
|
149
|
+
})];
|
|
150
|
+
case 6:
|
|
151
|
+
_b.sent();
|
|
152
|
+
_b.label = 7;
|
|
153
|
+
case 7: return [2];
|
|
111
154
|
}
|
|
112
155
|
});
|
|
113
156
|
});
|
|
@@ -125,22 +168,32 @@ var IDW = (function (_super) {
|
|
|
125
168
|
});
|
|
126
169
|
};
|
|
127
170
|
IDW.prototype.activateFlow = function (flow) {
|
|
171
|
+
var _a;
|
|
128
172
|
return __awaiter(this, void 0, void 0, function () {
|
|
129
|
-
var id;
|
|
130
|
-
return __generator(this, function (
|
|
131
|
-
switch (
|
|
173
|
+
var id, channel;
|
|
174
|
+
return __generator(this, function (_b) {
|
|
175
|
+
switch (_b.label) {
|
|
132
176
|
case 0:
|
|
133
177
|
id = flow.id;
|
|
134
178
|
if (id === undefined) {
|
|
135
179
|
throw new Error('Only flows with id can be added to the IDW graph');
|
|
136
180
|
}
|
|
137
|
-
return [4, this.graphQuery("\n
|
|
138
|
-
activatedAt: Date.now(),
|
|
181
|
+
return [4, this.graphQuery("\n MATCH (flow:FLOW {id: $id})\n OPTIONAL MATCH (f)-[r:IMPLEMENTS]->(:CHANNEL)\n DELETE r\n SET flow.isActive = true,\n flow.activatedAt = $activatedAt\n ", {
|
|
139
182
|
id: id,
|
|
183
|
+
activatedAt: Date.now(),
|
|
140
184
|
})];
|
|
141
185
|
case 1:
|
|
142
|
-
|
|
143
|
-
|
|
186
|
+
_b.sent();
|
|
187
|
+
channel = (_a = flow.data.meta.idw) === null || _a === void 0 ? void 0 : _a.channel;
|
|
188
|
+
if (!(channel !== undefined && !lodash_1.default.isEmpty(channel))) return [3, 3];
|
|
189
|
+
return [4, this.graphQuery("\n MATCH (flow:FLOW {id: $id}),\n (channel:CHANNEL {id: $channel})\n MERGE (flow)-[r:IMPLEMENTS]->(channel)\n ON CREATE\n SET r.isActive = true\n ", {
|
|
190
|
+
channel: channel,
|
|
191
|
+
id: id,
|
|
192
|
+
})];
|
|
193
|
+
case 2:
|
|
194
|
+
_b.sent();
|
|
195
|
+
_b.label = 3;
|
|
196
|
+
case 3: return [2];
|
|
144
197
|
}
|
|
145
198
|
});
|
|
146
199
|
});
|
|
@@ -149,7 +202,7 @@ var IDW = (function (_super) {
|
|
|
149
202
|
return __awaiter(this, void 0, void 0, function () {
|
|
150
203
|
return __generator(this, function (_a) {
|
|
151
204
|
switch (_a.label) {
|
|
152
|
-
case 0: return [4, this.graphQuery("\n
|
|
205
|
+
case 0: return [4, this.graphQuery("\n MATCH (flow:FLOW {id: $id})\n OPTIONAL MATCH (flow)-[r:IMPLEMENTS]->(:CHANNEL)\n SET flow.isActive = false,\n r.isActive = false\n REMOVE flow.activatedAt\n RETURN flow\n ", { id: id })];
|
|
153
206
|
case 1:
|
|
154
207
|
_a.sent();
|
|
155
208
|
return [2];
|
|
@@ -159,21 +212,25 @@ var IDW = (function (_super) {
|
|
|
159
212
|
};
|
|
160
213
|
IDW.prototype.graphQuery = function (query, params) {
|
|
161
214
|
return __awaiter(this, void 0, void 0, function () {
|
|
162
|
-
var
|
|
215
|
+
var e_2;
|
|
163
216
|
return __generator(this, function (_a) {
|
|
164
217
|
switch (_a.label) {
|
|
165
|
-
case 0:
|
|
166
|
-
|
|
218
|
+
case 0: return [4, this.checkOrCreateDb()];
|
|
219
|
+
case 1:
|
|
220
|
+
_a.sent();
|
|
221
|
+
_a.label = 2;
|
|
222
|
+
case 2:
|
|
223
|
+
_a.trys.push([2, 4, , 5]);
|
|
167
224
|
return [4, this.graphApi.query({
|
|
168
225
|
graph: constants_1.GRAPH_NAME,
|
|
169
226
|
params: params,
|
|
170
227
|
query: query,
|
|
171
228
|
})];
|
|
172
|
-
case
|
|
173
|
-
case
|
|
174
|
-
|
|
175
|
-
return [3,
|
|
176
|
-
case
|
|
229
|
+
case 3: return [2, _a.sent()];
|
|
230
|
+
case 4:
|
|
231
|
+
e_2 = _a.sent();
|
|
232
|
+
return [3, 5];
|
|
233
|
+
case 5: return [2];
|
|
177
234
|
}
|
|
178
235
|
});
|
|
179
236
|
});
|
package/dist/cjs/idw.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"idw.js","sourceRoot":"","sources":["../../src/idw.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"idw.js","sourceRoot":"","sources":["../../src/idw.ts"],"names":[],"mappings":"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"}
|
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 _ from 'lodash';
|
|
14
15
|
export class IDW extends Base {
|
|
15
16
|
constructor(params) {
|
|
16
17
|
const { accountId, discoveryUrl, graphUrl, sdkApiUrl, token, } = params;
|
|
@@ -33,7 +34,20 @@ export class IDW extends Base {
|
|
|
33
34
|
sdkUrl: sdkApiUrl,
|
|
34
35
|
});
|
|
35
36
|
}
|
|
37
|
+
checkOrCreateDb() {
|
|
38
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
39
|
+
try {
|
|
40
|
+
yield this.graphApi.getGraphInfo(GRAPH_NAME);
|
|
41
|
+
}
|
|
42
|
+
catch (e) {
|
|
43
|
+
yield this.graphApi.createGraph({
|
|
44
|
+
name: GRAPH_NAME,
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
}
|
|
36
49
|
createOrUpdateFlow(flow) {
|
|
50
|
+
var _a;
|
|
37
51
|
return __awaiter(this, void 0, void 0, function* () {
|
|
38
52
|
if (flow.id === undefined) {
|
|
39
53
|
throw new Error('Only flows with id can be added to the IDW graph');
|
|
@@ -71,6 +85,26 @@ export class IDW extends Base {
|
|
|
71
85
|
updatedAt: flow.dateModified,
|
|
72
86
|
userId,
|
|
73
87
|
});
|
|
88
|
+
yield this.graphQuery(`
|
|
89
|
+
MATCH (flow:FLOW {id: $id})
|
|
90
|
+
OPTIONAL MATCH (f)-[r:IMPLEMENTS {isActive: false}]->(:CHANNEL)
|
|
91
|
+
DELETE r
|
|
92
|
+
`, {
|
|
93
|
+
id: flow.id,
|
|
94
|
+
});
|
|
95
|
+
const channel = (_a = flow.data.meta.idw) === null || _a === void 0 ? void 0 : _a.channel;
|
|
96
|
+
if (channel !== undefined && !_.isEmpty(channel)) {
|
|
97
|
+
yield this.graphQuery(`
|
|
98
|
+
MATCH (f:FLOW {id: $id}),
|
|
99
|
+
(c:CHANNEL {id: $channel})
|
|
100
|
+
MERGE (f)-[r:IMPLEMENTS]->(c)
|
|
101
|
+
ON CREATE
|
|
102
|
+
SET r.isActive = false
|
|
103
|
+
`, {
|
|
104
|
+
channel,
|
|
105
|
+
id: flow.id,
|
|
106
|
+
});
|
|
107
|
+
}
|
|
74
108
|
});
|
|
75
109
|
}
|
|
76
110
|
deleteFlow(id) {
|
|
@@ -82,34 +116,52 @@ export class IDW extends Base {
|
|
|
82
116
|
});
|
|
83
117
|
}
|
|
84
118
|
activateFlow(flow) {
|
|
119
|
+
var _a;
|
|
85
120
|
return __awaiter(this, void 0, void 0, function* () {
|
|
86
121
|
const id = flow.id;
|
|
87
122
|
if (id === undefined) {
|
|
88
123
|
throw new Error('Only flows with id can be added to the IDW graph');
|
|
89
124
|
}
|
|
90
125
|
yield this.graphQuery(`
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
126
|
+
MATCH (flow:FLOW {id: $id})
|
|
127
|
+
OPTIONAL MATCH (f)-[r:IMPLEMENTS]->(:CHANNEL)
|
|
128
|
+
DELETE r
|
|
129
|
+
SET flow.isActive = true,
|
|
130
|
+
flow.activatedAt = $activatedAt
|
|
131
|
+
`, {
|
|
97
132
|
id,
|
|
133
|
+
activatedAt: Date.now(),
|
|
98
134
|
});
|
|
135
|
+
const channel = (_a = flow.data.meta.idw) === null || _a === void 0 ? void 0 : _a.channel;
|
|
136
|
+
if (channel !== undefined && !_.isEmpty(channel)) {
|
|
137
|
+
yield this.graphQuery(`
|
|
138
|
+
MATCH (flow:FLOW {id: $id}),
|
|
139
|
+
(channel:CHANNEL {id: $channel})
|
|
140
|
+
MERGE (flow)-[r:IMPLEMENTS]->(channel)
|
|
141
|
+
ON CREATE
|
|
142
|
+
SET r.isActive = true
|
|
143
|
+
`, {
|
|
144
|
+
channel,
|
|
145
|
+
id,
|
|
146
|
+
});
|
|
147
|
+
}
|
|
99
148
|
});
|
|
100
149
|
}
|
|
101
150
|
deactivateFlow(id) {
|
|
102
151
|
return __awaiter(this, void 0, void 0, function* () {
|
|
103
152
|
yield this.graphQuery(`
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
153
|
+
MATCH (flow:FLOW {id: $id})
|
|
154
|
+
OPTIONAL MATCH (flow)-[r:IMPLEMENTS]->(:CHANNEL)
|
|
155
|
+
SET flow.isActive = false,
|
|
156
|
+
r.isActive = false
|
|
157
|
+
REMOVE flow.activatedAt
|
|
158
|
+
RETURN flow
|
|
108
159
|
`, { id });
|
|
109
160
|
});
|
|
110
161
|
}
|
|
111
162
|
graphQuery(query, params) {
|
|
112
163
|
return __awaiter(this, void 0, void 0, function* () {
|
|
164
|
+
yield this.checkOrCreateDb();
|
|
113
165
|
try {
|
|
114
166
|
return yield this.graphApi.query({
|
|
115
167
|
graph: GRAPH_NAME,
|
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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"}
|
package/dist/types/idw.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ export declare class IDW extends Base {
|
|
|
5
5
|
private readonly graphApi;
|
|
6
6
|
private readonly users;
|
|
7
7
|
constructor(params: IDWConfig);
|
|
8
|
+
checkOrCreateDb(): Promise<void>;
|
|
8
9
|
createOrUpdateFlow(flow: Flow): Promise<void>;
|
|
9
10
|
deleteFlow(id: string): Promise<void>;
|
|
10
11
|
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;IAUf,kBAAkB,CAAC,IAAI,EAAE,IAAI;IAkF7B,UAAU,CAAC,EAAE,EAAE,MAAM;IAOrB,YAAY,CAAC,IAAI,EAAE,IAAI;IAsCvB,cAAc,CAAC,EAAE,EAAE,MAAM;YAYjB,UAAU;CAazB"}
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "1.1.0-beta.
|
|
2
|
+
"version": "1.1.0-beta.1291.0",
|
|
3
3
|
"name": "@or-sdk/idw",
|
|
4
4
|
"main": "dist/cjs/index.js",
|
|
5
5
|
"module": "dist/esm/index.js",
|
|
@@ -25,8 +25,9 @@
|
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"@or-sdk/base": "^0.28.1",
|
|
28
|
-
"@or-sdk/deployer": "^1.1.1-beta.
|
|
28
|
+
"@or-sdk/deployer": "^1.1.1-beta.1291.0",
|
|
29
29
|
"@or-sdk/graph": "^1.3.1",
|
|
30
|
-
"@or-sdk/users": "^0.30.0"
|
|
30
|
+
"@or-sdk/users": "^0.30.0",
|
|
31
|
+
"lodash": "^4.17.21"
|
|
31
32
|
}
|
|
32
33
|
}
|
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 _ from 'lodash';
|
|
7
8
|
|
|
8
9
|
/**
|
|
9
10
|
* OneReach IDW service client
|
|
@@ -57,6 +58,16 @@ export class IDW extends Base {
|
|
|
57
58
|
});
|
|
58
59
|
}
|
|
59
60
|
|
|
61
|
+
async checkOrCreateDb() {
|
|
62
|
+
try {
|
|
63
|
+
await this.graphApi.getGraphInfo(GRAPH_NAME);
|
|
64
|
+
} catch (e) {
|
|
65
|
+
await this.graphApi.createGraph({
|
|
66
|
+
name: GRAPH_NAME,
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
60
71
|
async createOrUpdateFlow(flow: Flow) {
|
|
61
72
|
if (flow.id === undefined) {
|
|
62
73
|
throw new Error('Only flows with id can be added to the IDW graph');
|
|
@@ -100,7 +111,32 @@ export class IDW extends Base {
|
|
|
100
111
|
}
|
|
101
112
|
);
|
|
102
113
|
|
|
103
|
-
|
|
114
|
+
await this.graphQuery(
|
|
115
|
+
`
|
|
116
|
+
MATCH (flow:FLOW {id: $id})
|
|
117
|
+
OPTIONAL MATCH (f)-[r:IMPLEMENTS {isActive: false}]->(:CHANNEL)
|
|
118
|
+
DELETE r
|
|
119
|
+
`,
|
|
120
|
+
{
|
|
121
|
+
id: flow.id,
|
|
122
|
+
}
|
|
123
|
+
);
|
|
124
|
+
|
|
125
|
+
const channel = flow.data.meta.idw?.channel;
|
|
126
|
+
if (channel !== undefined && !_.isEmpty(channel)) {
|
|
127
|
+
await this.graphQuery(
|
|
128
|
+
`
|
|
129
|
+
MATCH (f:FLOW {id: $id}),
|
|
130
|
+
(c:CHANNEL {id: $channel})
|
|
131
|
+
MERGE (f)-[r:IMPLEMENTS]->(c)
|
|
132
|
+
ON CREATE
|
|
133
|
+
SET r.isActive = false
|
|
134
|
+
`, {
|
|
135
|
+
channel,
|
|
136
|
+
id: flow.id,
|
|
137
|
+
}
|
|
138
|
+
);
|
|
139
|
+
}
|
|
104
140
|
// if (channel !== undefined) {
|
|
105
141
|
// const _channel = await this.getChannel(channel);
|
|
106
142
|
// if (channel !== undefined && _.isEmpty(_channel)) return;
|
|
@@ -114,50 +150,6 @@ export class IDW extends Base {
|
|
|
114
150
|
// }
|
|
115
151
|
}
|
|
116
152
|
|
|
117
|
-
// async getChannel(channel: string) {
|
|
118
|
-
// return await this.graphQuery(`
|
|
119
|
-
// MATCH (channel: CHANNEL {id: $channel})
|
|
120
|
-
// RETURN channel`,
|
|
121
|
-
// { channel });
|
|
122
|
-
// }
|
|
123
|
-
|
|
124
|
-
// async getActivatedFlow(channel: string) {
|
|
125
|
-
// return await this.graphQuery(`
|
|
126
|
-
// MATCH (flow:FLOW { isActive: true })-[:IMPLEMENTS]-(:CHANNEL { channel: $channel })
|
|
127
|
-
// RETURN flow`,
|
|
128
|
-
// { channel });
|
|
129
|
-
// }
|
|
130
|
-
|
|
131
|
-
// async deleteRelationship(id: string, channel = '') {
|
|
132
|
-
// await this.graphQuery(`
|
|
133
|
-
// MATCH (:FLOW {id: $id})-[r:IMPLEMENTS]->(:CHANNEL {id: $channel})
|
|
134
|
-
// DELETE r
|
|
135
|
-
// `, {
|
|
136
|
-
// id,
|
|
137
|
-
// channel,
|
|
138
|
-
// });
|
|
139
|
-
// }
|
|
140
|
-
|
|
141
|
-
// async deleteAllRelationship(id: string, channel = '') {
|
|
142
|
-
// await this.graphQuery(`
|
|
143
|
-
// MATCH (:FLOW {id: $id})-[r:IMPLEMENTS]->(:CHANNEL)
|
|
144
|
-
// DELETE r
|
|
145
|
-
// `, {
|
|
146
|
-
// id,
|
|
147
|
-
// channel,
|
|
148
|
-
// });
|
|
149
|
-
// }
|
|
150
|
-
|
|
151
|
-
// async createRelationship(id: string, channel: string) {
|
|
152
|
-
// await this.graphQuery(`
|
|
153
|
-
// MATCH (f:FLOW {id: $id}), (c:CHANNEL {id: $channel})
|
|
154
|
-
// MERGE (f)-[:IMPLEMENTS]->(c)
|
|
155
|
-
// `, {
|
|
156
|
-
// id,
|
|
157
|
-
// channel,
|
|
158
|
-
// });
|
|
159
|
-
// }
|
|
160
|
-
|
|
161
153
|
async deleteFlow(id: string) {
|
|
162
154
|
await this.graphQuery(`
|
|
163
155
|
MATCH (flow:FLOW { id: $id })
|
|
@@ -171,37 +163,53 @@ export class IDW extends Base {
|
|
|
171
163
|
throw new Error('Only flows with id can be added to the IDW graph');
|
|
172
164
|
}
|
|
173
165
|
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
166
|
+
await this.graphQuery(
|
|
167
|
+
`
|
|
168
|
+
MATCH (flow:FLOW {id: $id})
|
|
169
|
+
OPTIONAL MATCH (f)-[r:IMPLEMENTS]->(:CHANNEL)
|
|
170
|
+
DELETE r
|
|
171
|
+
SET flow.isActive = true,
|
|
172
|
+
flow.activatedAt = $activatedAt
|
|
173
|
+
`,
|
|
174
|
+
{
|
|
175
|
+
id,
|
|
176
|
+
activatedAt: Date.now(),
|
|
177
|
+
}
|
|
178
|
+
);
|
|
182
179
|
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
180
|
+
const channel = flow.data.meta.idw?.channel;
|
|
181
|
+
if (channel !== undefined && !_.isEmpty(channel)) {
|
|
182
|
+
await this.graphQuery(
|
|
183
|
+
`
|
|
184
|
+
MATCH (flow:FLOW {id: $id}),
|
|
185
|
+
(channel:CHANNEL {id: $channel})
|
|
186
|
+
MERGE (flow)-[r:IMPLEMENTS]->(channel)
|
|
187
|
+
ON CREATE
|
|
188
|
+
SET r.isActive = true
|
|
189
|
+
`, {
|
|
190
|
+
channel,
|
|
191
|
+
id,
|
|
192
|
+
}
|
|
193
|
+
);
|
|
194
|
+
}
|
|
192
195
|
}
|
|
193
196
|
|
|
194
197
|
|
|
195
198
|
async deactivateFlow(id: string) {
|
|
196
|
-
await this.graphQuery(
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
199
|
+
await this.graphQuery(
|
|
200
|
+
`
|
|
201
|
+
MATCH (flow:FLOW {id: $id})
|
|
202
|
+
OPTIONAL MATCH (flow)-[r:IMPLEMENTS]->(:CHANNEL)
|
|
203
|
+
SET flow.isActive = false,
|
|
204
|
+
r.isActive = false
|
|
205
|
+
REMOVE flow.activatedAt
|
|
206
|
+
RETURN flow
|
|
201
207
|
`, { id });
|
|
202
208
|
}
|
|
203
209
|
|
|
204
210
|
private async graphQuery(query: string, params?: Record<string, null | number | string | boolean>) {
|
|
211
|
+
//create graph if not exists
|
|
212
|
+
await this.checkOrCreateDb();
|
|
205
213
|
try {
|
|
206
214
|
return await this.graphApi.query({
|
|
207
215
|
graph: GRAPH_NAME,
|
|
@@ -209,7 +217,6 @@ export class IDW extends Base {
|
|
|
209
217
|
query,
|
|
210
218
|
});
|
|
211
219
|
} catch (e) {
|
|
212
|
-
|
|
213
220
|
// TODO: if 'idw' graph doesn't exist - create it, seed with channels data, and retry query
|
|
214
221
|
}
|
|
215
222
|
}
|