@olympeio-extensions/sql-connector-knex 2.4.4

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.
Files changed (36) hide show
  1. package/import/dcInitConfig.json +1 -0
  2. package/import/extensions.sql-connector-knex/Home/Olympe/Extensions/Connectors/SQL_Connector_(knex)/.SQL_Connector_(knex).newInst.json +1 -0
  3. package/import/extensions.sql-connector-knex/Home/Olympe/Extensions/Connectors/SQL_Connector_(knex)/.SQL_Connector_(knex).newRel.json +1 -0
  4. package/import/extensions.sql-connector-knex/Home/Olympe/Extensions/Connectors/SQL_Connector_(knex)/DB_Delete.newInst.json +1 -0
  5. package/import/extensions.sql-connector-knex/Home/Olympe/Extensions/Connectors/SQL_Connector_(knex)/DB_Delete.newRel.json +1 -0
  6. package/import/extensions.sql-connector-knex/Home/Olympe/Extensions/Connectors/SQL_Connector_(knex)/DB_Execute.newInst.json +1 -0
  7. package/import/extensions.sql-connector-knex/Home/Olympe/Extensions/Connectors/SQL_Connector_(knex)/DB_Execute.newRel.json +1 -0
  8. package/import/extensions.sql-connector-knex/Home/Olympe/Extensions/Connectors/SQL_Connector_(knex)/DB_Insert.newInst.json +1 -0
  9. package/import/extensions.sql-connector-knex/Home/Olympe/Extensions/Connectors/SQL_Connector_(knex)/DB_Insert.newRel.json +1 -0
  10. package/import/extensions.sql-connector-knex/Home/Olympe/Extensions/Connectors/SQL_Connector_(knex)/DB_Select.newInst.json +1 -0
  11. package/import/extensions.sql-connector-knex/Home/Olympe/Extensions/Connectors/SQL_Connector_(knex)/DB_Select.newRel.json +1 -0
  12. package/import/extensions.sql-connector-knex/Home/Olympe/Extensions/Connectors/SQL_Connector_(knex)/DB_Update.newInst.json +1 -0
  13. package/import/extensions.sql-connector-knex/Home/Olympe/Extensions/Connectors/SQL_Connector_(knex)/DB_Update.newRel.json +1 -0
  14. package/import/extensions.sql-connector-knex/Home/Olympe/Extensions/Connectors/SQL_Connector_(knex)/Get_SQL_DB_Config.newInst.json +1 -0
  15. package/import/extensions.sql-connector-knex/Home/Olympe/Extensions/Connectors/SQL_Connector_(knex)/Get_SQL_DB_Config.newRel.json +1 -0
  16. package/import/extensions.sql-connector-knex/Home/Olympe/Extensions/Connectors/SQL_Connector_(knex)/New_Coded_Visual_Component.newInst.json +1 -0
  17. package/import/extensions.sql-connector-knex/Home/Olympe/Extensions/Connectors/SQL_Connector_(knex)/New_Coded_Visual_Component.newRel.json +1 -0
  18. package/import/extensions.sql-connector-knex/Home/Olympe/Extensions/Connectors/SQL_Connector_(knex)/SQL_Connector_models.newInst.json +1 -0
  19. package/import/extensions.sql-connector-knex/Home/Olympe/Extensions/Connectors/SQL_Connector_(knex)/SQL_Connector_models.newRel.json +1 -0
  20. package/import/extensions.sql-connector-knex/Home/Olympe/Extensions/Connectors/SQL_Connector_(knex)/SQL_Delete.newInst.json +1 -0
  21. package/import/extensions.sql-connector-knex/Home/Olympe/Extensions/Connectors/SQL_Connector_(knex)/SQL_Delete.newRel.json +1 -0
  22. package/import/extensions.sql-connector-knex/Home/Olympe/Extensions/Connectors/SQL_Connector_(knex)/SQL_Execute.newInst.json +1 -0
  23. package/import/extensions.sql-connector-knex/Home/Olympe/Extensions/Connectors/SQL_Connector_(knex)/SQL_Execute.newRel.json +1 -0
  24. package/import/extensions.sql-connector-knex/Home/Olympe/Extensions/Connectors/SQL_Connector_(knex)/SQL_Insert.newInst.json +1 -0
  25. package/import/extensions.sql-connector-knex/Home/Olympe/Extensions/Connectors/SQL_Connector_(knex)/SQL_Insert.newRel.json +1 -0
  26. package/import/extensions.sql-connector-knex/Home/Olympe/Extensions/Connectors/SQL_Connector_(knex)/SQL_Select.newInst.json +1 -0
  27. package/import/extensions.sql-connector-knex/Home/Olympe/Extensions/Connectors/SQL_Connector_(knex)/SQL_Select.newRel.json +1 -0
  28. package/import/extensions.sql-connector-knex/Home/Olympe/Extensions/Connectors/SQL_Connector_(knex)/SQL_Update.newInst.json +1 -0
  29. package/import/extensions.sql-connector-knex/Home/Olympe/Extensions/Connectors/SQL_Connector_(knex)/SQL_Update.newRel.json +1 -0
  30. package/import/extensions.sql-connector-knex/Home/Olympe/Extensions/Connectors/SQL_Connector_(knex)/Service_App.newInst.json +1 -0
  31. package/import/extensions.sql-connector-knex/Home/Olympe/Extensions/Connectors/SQL_Connector_(knex)/Service_App.newRel.json +1 -0
  32. package/main-node.js +676 -0
  33. package/main-node.js.map +1 -0
  34. package/main-web.js +116 -0
  35. package/main-web.js.map +1 -0
  36. package/package.json +1 -0
package/main-node.js ADDED
@@ -0,0 +1,676 @@
1
+ (function webpackUniversalModuleDefinition(root, factory) {
2
+ if(typeof exports === 'object' && typeof module === 'object')
3
+ module.exports = factory(require("olympe"));
4
+ else if(typeof define === 'function' && define.amd)
5
+ define(["olympe"], factory);
6
+ else if(typeof exports === 'object')
7
+ exports["@olympeio-extensions/sql-connector-knex"] = factory(require("olympe"));
8
+ else
9
+ root["@olympeio-extensions/sql-connector-knex"] = factory(root["olympe"]);
10
+ })(this, (__WEBPACK_EXTERNAL_MODULE_olympe__) => {
11
+ return /******/ (() => { // webpackBootstrap
12
+ /******/ "use strict";
13
+ /******/ var __webpack_modules__ = ({
14
+
15
+ /***/ "./src/node/Delete.js":
16
+ /*!****************************!*\
17
+ !*** ./src/node/Delete.js ***!
18
+ \****************************/
19
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
20
+
21
+ __webpack_require__.r(__webpack_exports__);
22
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
23
+ /* harmony export */ "default": () => (/* binding */ SQLDelete)
24
+ /* harmony export */ });
25
+ /* harmony import */ var olympe__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! olympe */ "olympe");
26
+ /* harmony import */ var olympe__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(olympe__WEBPACK_IMPORTED_MODULE_0__);
27
+ /* harmony import */ var _olympeio_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @olympeio/core */ "@olympeio/core");
28
+ /* harmony import */ var _olympeio_core__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_olympeio_core__WEBPACK_IMPORTED_MODULE_1__);
29
+ /* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./helpers */ "./src/node/helpers.js");
30
+
31
+
32
+
33
+
34
+ class SQLDelete extends olympe__WEBPACK_IMPORTED_MODULE_0__.ActionBrick {
35
+
36
+ /**
37
+ * @protected
38
+ * @param {!BrickContext} context
39
+ * @param {*} sQLDBConfig
40
+ * @param {string} schema
41
+ * @param {string} table
42
+ * @param {string|Object} whereConditions
43
+ * @param {function()} forwardEvent
44
+ * @param {function(ErrorFlow)} setErrorFlow
45
+ */
46
+ update(context, [knexClient, schema, table, whereConditions], [forwardEvent, setErrorFlow]) {
47
+ const logger = (0,_olympeio_core__WEBPACK_IMPORTED_MODULE_1__.getLogger)('Delete SQL');
48
+ const { json, error } = (0,_helpers__WEBPACK_IMPORTED_MODULE_2__.getAsJson)(logger, whereConditions);
49
+
50
+ if (!error) {
51
+ (0,_helpers__WEBPACK_IMPORTED_MODULE_2__.remove)(knexClient, schema, table, json, () => {
52
+ forwardEvent();
53
+ }, setErrorFlow);
54
+ } else {
55
+ setErrorFlow(olympe__WEBPACK_IMPORTED_MODULE_0__.ErrorFlow.create('Error while parsing data: ' + error.message, 1));
56
+ }
57
+ }
58
+ }
59
+
60
+ (0,olympe__WEBPACK_IMPORTED_MODULE_0__.registerBrick)('017d384c15832d2e4461', SQLDelete);
61
+
62
+
63
+ /***/ }),
64
+
65
+ /***/ "./src/node/Execute.js":
66
+ /*!*****************************!*\
67
+ !*** ./src/node/Execute.js ***!
68
+ \*****************************/
69
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
70
+
71
+ __webpack_require__.r(__webpack_exports__);
72
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
73
+ /* harmony export */ "default": () => (/* binding */ SQLExecute)
74
+ /* harmony export */ });
75
+ /* harmony import */ var olympe__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! olympe */ "olympe");
76
+ /* harmony import */ var olympe__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(olympe__WEBPACK_IMPORTED_MODULE_0__);
77
+ /* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./helpers */ "./src/node/helpers.js");
78
+
79
+
80
+
81
+ class SQLExecute extends olympe__WEBPACK_IMPORTED_MODULE_0__.ActionBrick {
82
+
83
+ /**
84
+ * @override
85
+ * @protected
86
+ * @param {!BrickContext} $
87
+ * @param {*} sQLConfig
88
+ * @param {string} schema
89
+ * @param {string} sqlQuery
90
+ * @param {function()} forwardEvent
91
+ * @param {function(Object)} setMetaData
92
+ * @param {function(Array)} setData
93
+ * @param {function(number)} setCount
94
+ * @param {function(*)} setErrorFlow
95
+ */
96
+ update($, [sQLConfig, schema, sqlQuery], [forwardEvent, setMetaData, setData, setCount, setErrorFlow]) {
97
+
98
+ (0,_helpers__WEBPACK_IMPORTED_MODULE_1__.execute)(sQLConfig, schema, sqlQuery, (result) => {
99
+ setMetaData(result);
100
+
101
+ // The response is depending on the database.
102
+ // For PG & some others we got the lines in the "rows" properties so we expose it directly.
103
+ // Otherwise for MSSQL for example the results comes directly in the root level
104
+ const rows = result['rows'] ?? result;
105
+ setData(rows);
106
+ setCount(Array.isArray(rows) ? rows.length : 0);
107
+ forwardEvent();
108
+ }, setErrorFlow);
109
+
110
+ }
111
+ }
112
+
113
+ (0,olympe__WEBPACK_IMPORTED_MODULE_0__.registerBrick)('018085271ab460a2f084', SQLExecute);
114
+
115
+
116
+ /***/ }),
117
+
118
+ /***/ "./src/node/GetSQLDBConfig.js":
119
+ /*!************************************!*\
120
+ !*** ./src/node/GetSQLDBConfig.js ***!
121
+ \************************************/
122
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
123
+
124
+ __webpack_require__.r(__webpack_exports__);
125
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
126
+ /* harmony export */ "default": () => (/* binding */ GetSQLDBConfig)
127
+ /* harmony export */ });
128
+ /* harmony import */ var olympe__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! olympe */ "olympe");
129
+ /* harmony import */ var olympe__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(olympe__WEBPACK_IMPORTED_MODULE_0__);
130
+ /* harmony import */ var _olympeio_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @olympeio/core */ "@olympeio/core");
131
+ /* harmony import */ var _olympeio_core__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_olympeio_core__WEBPACK_IMPORTED_MODULE_1__);
132
+ /* harmony import */ var knex__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! knex */ "knex");
133
+ /* harmony import */ var knex__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(knex__WEBPACK_IMPORTED_MODULE_2__);
134
+ /* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./helpers */ "./src/node/helpers.js");
135
+
136
+
137
+
138
+
139
+
140
+ class GetSQLDBConfig extends olympe__WEBPACK_IMPORTED_MODULE_0__.ActionBrick {
141
+ /**
142
+ * @protected
143
+ * @param {!BrickContext} context
144
+ * @param {string} configIdentifier
145
+ * @param {function()} forwardEvent
146
+ * @param {function(*)} setKnexClient
147
+ * @param {function(*)} setErrorFlow
148
+ */
149
+ update(context, [configIdentifier], [forwardEvent, setKnexClient, setErrorFlow]) {
150
+ const logger = (0,_olympeio_core__WEBPACK_IMPORTED_MODULE_1__.getLogger)('GetSQLDBConfig');
151
+
152
+ const errors = []
153
+ const getParameter = (name, mandatory = true) => {
154
+ const value = olympe__WEBPACK_IMPORTED_MODULE_0__.Config.getParameter(`sql_db.${configIdentifier}.${name}`);
155
+ if (value === undefined && mandatory) {
156
+ errors.push(`Mandatory parameter sql_db.${configIdentifier}.${name} not provided`);
157
+ }
158
+ return value;
159
+ }
160
+
161
+ // instantiate client
162
+ const client = getParameter('db_client');
163
+ const connection = {
164
+ host: getParameter('db_host'),
165
+ port: getParameter('db_port'),
166
+ user: getParameter('db_user'),
167
+ password: getParameter('db_password'),
168
+ database: getParameter('db_name')
169
+ }
170
+
171
+ // Read the options parameter, mandatory for mssql, set it up only if required
172
+ // because options on the connection variable is supposed to be a string for the pg client & an object for the mssql client
173
+ const options = getParameter('db_options', false);
174
+ if(options !== undefined){
175
+ connection['options'] = options;
176
+ }
177
+
178
+ if (errors.length === 0) {
179
+ let knexClient = (0,_helpers__WEBPACK_IMPORTED_MODULE_3__.dbConnectionHolder)().getByKey(configIdentifier);
180
+ if (!knexClient) {
181
+ knexClient = knex__WEBPACK_IMPORTED_MODULE_2___default()({
182
+ client: client,
183
+ connection: connection
184
+ });
185
+ (0,_helpers__WEBPACK_IMPORTED_MODULE_3__.dbConnectionHolder)().set(configIdentifier, knexClient);
186
+ }
187
+
188
+ setKnexClient(knexClient);
189
+ forwardEvent();
190
+ } else {
191
+ const errorMsg = errors.join('\n');
192
+ logger.error(errorMsg);
193
+ setErrorFlow(olympe__WEBPACK_IMPORTED_MODULE_0__.ErrorFlow.create(errorMsg, 1));
194
+ }
195
+ }
196
+ }
197
+
198
+ (0,olympe__WEBPACK_IMPORTED_MODULE_0__.registerBrick)('017d290ade8ab204486f', GetSQLDBConfig);
199
+
200
+
201
+ /***/ }),
202
+
203
+ /***/ "./src/node/Insert.js":
204
+ /*!****************************!*\
205
+ !*** ./src/node/Insert.js ***!
206
+ \****************************/
207
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
208
+
209
+ __webpack_require__.r(__webpack_exports__);
210
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
211
+ /* harmony export */ "default": () => (/* binding */ Insert)
212
+ /* harmony export */ });
213
+ /* harmony import */ var olympe__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! olympe */ "olympe");
214
+ /* harmony import */ var olympe__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(olympe__WEBPACK_IMPORTED_MODULE_0__);
215
+ /* harmony import */ var _olympeio_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @olympeio/core */ "@olympeio/core");
216
+ /* harmony import */ var _olympeio_core__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_olympeio_core__WEBPACK_IMPORTED_MODULE_1__);
217
+ /* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./helpers */ "./src/node/helpers.js");
218
+
219
+
220
+
221
+
222
+ class Insert extends olympe__WEBPACK_IMPORTED_MODULE_0__.ActionBrick {
223
+
224
+ /**
225
+ * @protected
226
+ * @param {!BrickContext} context
227
+ * @param {*} knexClient
228
+ * @param {string} schema
229
+ * @param {string} table
230
+ * @param {string|Object} data
231
+ * @param {function()} forwardEvent
232
+ * @param {function(ErrorFlow)} setErrorFlow
233
+ */
234
+ update(context, [knexClient, schema, table, data], [forwardEvent, setErrorFlow]) {
235
+ const logger = (0,_olympeio_core__WEBPACK_IMPORTED_MODULE_1__.getLogger)('Insert SQL');
236
+ const { json, error } = (0,_helpers__WEBPACK_IMPORTED_MODULE_2__.getAsJson)(logger, data);
237
+
238
+ if (!error) {
239
+ (0,_helpers__WEBPACK_IMPORTED_MODULE_2__.insert)(knexClient, schema, table, json, () => {
240
+ forwardEvent();
241
+ }, setErrorFlow);
242
+ } else {
243
+ setErrorFlow(olympe__WEBPACK_IMPORTED_MODULE_0__.ErrorFlow.create('Error while parsing data: ' + error.message, 1));
244
+ }
245
+ }
246
+ }
247
+
248
+ (0,olympe__WEBPACK_IMPORTED_MODULE_0__.registerBrick)('017d29101a1ca310eac4', Insert);
249
+
250
+
251
+ /***/ }),
252
+
253
+ /***/ "./src/node/Select.js":
254
+ /*!****************************!*\
255
+ !*** ./src/node/Select.js ***!
256
+ \****************************/
257
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
258
+
259
+ __webpack_require__.r(__webpack_exports__);
260
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
261
+ /* harmony export */ "default": () => (/* binding */ Select)
262
+ /* harmony export */ });
263
+ /* harmony import */ var olympe__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! olympe */ "olympe");
264
+ /* harmony import */ var olympe__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(olympe__WEBPACK_IMPORTED_MODULE_0__);
265
+ /* harmony import */ var _olympeio_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @olympeio/core */ "@olympeio/core");
266
+ /* harmony import */ var _olympeio_core__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_olympeio_core__WEBPACK_IMPORTED_MODULE_1__);
267
+ /* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./helpers */ "./src/node/helpers.js");
268
+
269
+
270
+
271
+
272
+ class Select extends olympe__WEBPACK_IMPORTED_MODULE_0__.ActionBrick {
273
+
274
+ /**
275
+ * @param {!Context} context
276
+ * @param {*} knexClient
277
+ * @param {string} schema
278
+ * @param {string} table
279
+ * @param {string|Object} whereConditions
280
+ * @param {boolean} disjunctiveWhere
281
+ * @param {function()} forwardEvent
282
+ * @param {function(!Array)} setTuples
283
+ * @param {function(ErrorFlow)} setErrorFlow
284
+ */
285
+ update(context, [knexClient, schema, table, whereConditions], [forwardEvent, setTuples, setErrorFlow]) {
286
+ const logger = (0,_olympeio_core__WEBPACK_IMPORTED_MODULE_1__.getLogger)('Select SQL');
287
+ const whereConditionJson = (0,_helpers__WEBPACK_IMPORTED_MODULE_2__.getAsJson)(logger, whereConditions);
288
+ const { json, error } = whereConditionJson;
289
+
290
+ if (!error) {
291
+ (0,_helpers__WEBPACK_IMPORTED_MODULE_2__.select)(knexClient, schema, table, json, (rows) => {
292
+ setTuples(rows);
293
+ forwardEvent();
294
+ }, setErrorFlow);
295
+ } else {
296
+ setErrorFlow(olympe__WEBPACK_IMPORTED_MODULE_0__.ErrorFlow.create('Error while parsing whereCondition: ' + error.message, 1));
297
+ }
298
+ }
299
+ }
300
+
301
+ (0,olympe__WEBPACK_IMPORTED_MODULE_0__.registerBrick)('017d2914303ce4bd3a2a', Select);
302
+
303
+
304
+ /***/ }),
305
+
306
+ /***/ "./src/node/Update.js":
307
+ /*!****************************!*\
308
+ !*** ./src/node/Update.js ***!
309
+ \****************************/
310
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
311
+
312
+ __webpack_require__.r(__webpack_exports__);
313
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
314
+ /* harmony export */ "default": () => (/* binding */ Update)
315
+ /* harmony export */ });
316
+ /* harmony import */ var olympe__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! olympe */ "olympe");
317
+ /* harmony import */ var olympe__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(olympe__WEBPACK_IMPORTED_MODULE_0__);
318
+ /* harmony import */ var _olympeio_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @olympeio/core */ "@olympeio/core");
319
+ /* harmony import */ var _olympeio_core__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_olympeio_core__WEBPACK_IMPORTED_MODULE_1__);
320
+ /* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./helpers */ "./src/node/helpers.js");
321
+
322
+
323
+
324
+
325
+ class Update extends olympe__WEBPACK_IMPORTED_MODULE_0__.ActionBrick {
326
+
327
+ /**
328
+ * @protected
329
+ * @param {!BrickContext} context
330
+ * @param {*} knexClient
331
+ * @param {string} schema
332
+ * @param {string} table
333
+ * @param {string|Object} whereConditions
334
+ * @param {string|Object} data
335
+ * @param {function()} forwardEvent
336
+ * @param {function(ErrorFlow)} setErrorFlow
337
+ */
338
+ update(context, [knexClient, schema, table, whereConditions, data], [forwardEvent, setErrorFlow]) {
339
+ const logger = (0,_olympeio_core__WEBPACK_IMPORTED_MODULE_1__.getLogger)('Update SQL');
340
+ const dataJson = (0,_helpers__WEBPACK_IMPORTED_MODULE_2__.getAsJson)(logger, data);
341
+ const whereConditionJson = (0,_helpers__WEBPACK_IMPORTED_MODULE_2__.getAsJson)(logger, whereConditions);
342
+
343
+ if (dataJson.error) {
344
+ setErrorFlow(olympe__WEBPACK_IMPORTED_MODULE_0__.ErrorFlow.create('Error while parsing dataJson: ' + dataJson.error.message, 1));
345
+ } else if (whereConditionJson.error) {
346
+ setErrorFlow(olympe__WEBPACK_IMPORTED_MODULE_0__.ErrorFlow.create('Error while parsing whereConditionJson: ' + whereConditionJson.error.message, 1));
347
+ } else {
348
+ (0,_helpers__WEBPACK_IMPORTED_MODULE_2__.update)(knexClient, schema, table, dataJson.json, whereConditionJson.json, () => {
349
+ forwardEvent();
350
+ }, setErrorFlow);
351
+ }
352
+ }
353
+ }
354
+
355
+ (0,olympe__WEBPACK_IMPORTED_MODULE_0__.registerBrick)('017d94b36645c31881f1', Update);
356
+
357
+
358
+ /***/ }),
359
+
360
+ /***/ "./src/node/helpers.js":
361
+ /*!*****************************!*\
362
+ !*** ./src/node/helpers.js ***!
363
+ \*****************************/
364
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
365
+
366
+ __webpack_require__.r(__webpack_exports__);
367
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
368
+ /* harmony export */ checkTable: () => (/* binding */ checkTable),
369
+ /* harmony export */ dbConnectionHolder: () => (/* binding */ dbConnectionHolder),
370
+ /* harmony export */ execute: () => (/* binding */ execute),
371
+ /* harmony export */ getAsJson: () => (/* binding */ getAsJson),
372
+ /* harmony export */ insert: () => (/* binding */ insert),
373
+ /* harmony export */ remove: () => (/* binding */ remove),
374
+ /* harmony export */ select: () => (/* binding */ select),
375
+ /* harmony export */ update: () => (/* binding */ update)
376
+ /* harmony export */ });
377
+ /* harmony import */ var olympe__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! olympe */ "olympe");
378
+ /* harmony import */ var olympe__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(olympe__WEBPACK_IMPORTED_MODULE_0__);
379
+
380
+
381
+ const checkTable = (knexClient, schema, table, onSuccess, setErrorFlow) => {
382
+ knexClient.schema.withSchema(schema).hasTable(table)
383
+ .then(exists => {
384
+ if (!exists) {
385
+ setErrorFlow(olympe__WEBPACK_IMPORTED_MODULE_0__.ErrorFlow.create(`Table ${table} doesn't exists`, 1));
386
+ } else {
387
+ onSuccess();
388
+ }
389
+ })
390
+ .catch(reason => {
391
+ setErrorFlow(olympe__WEBPACK_IMPORTED_MODULE_0__.ErrorFlow.create(`An error was encountered when checking if table ${table} exists: ${reason}`, 2));
392
+ });
393
+ };
394
+
395
+ const select = (knexClient, schema, table, whereConditions, onSuccess, setErrorFlow) => {
396
+ checkTable(knexClient, schema, table, () => {
397
+ let query = knexClient(table).withSchema(schema);
398
+
399
+ query = query.select();
400
+ if (whereConditions) {
401
+ query = query.where(whereConditions);
402
+ }
403
+
404
+ query
405
+ .then(rows => onSuccess(rows))
406
+ .catch(err => {
407
+ setErrorFlow(olympe__WEBPACK_IMPORTED_MODULE_0__.ErrorFlow.create(err.message, 1));
408
+ });
409
+ }, setErrorFlow);
410
+ };
411
+
412
+ const update = (knexClient, schema, table, data, whereConditions, onSuccess, setErrorFlow) => {
413
+ checkTable(knexClient, schema, table, () => {
414
+ let query = knexClient(table).withSchema(schema).update(data);
415
+
416
+ if (whereConditions) {
417
+ query = query.where(whereConditions);
418
+ }
419
+
420
+ query
421
+ .then(() => onSuccess())
422
+ .catch(err => setErrorFlow(olympe__WEBPACK_IMPORTED_MODULE_0__.ErrorFlow.create(err.message, 1)));
423
+
424
+ }, setErrorFlow);
425
+ };
426
+
427
+ const insert = (knexClient, schema, table, data, onSuccess, setErrorFlow) => {
428
+ checkTable(knexClient, schema, table, () => {
429
+ let query = knexClient(table).withSchema(schema).insert(data);
430
+
431
+ query
432
+ .then(() => onSuccess())
433
+ .catch(err => setErrorFlow(olympe__WEBPACK_IMPORTED_MODULE_0__.ErrorFlow.create(err.message, 1)));
434
+
435
+ }, setErrorFlow);
436
+ };
437
+
438
+ const remove = (knexClient, schema, table, whereConditions, onSuccess, setErrorFlow) => {
439
+ checkTable(knexClient, schema, table, () => {
440
+ let query = knexClient(table).withSchema(schema);
441
+
442
+ query = query.select();
443
+ if (whereConditions) {
444
+ query = query.where(whereConditions);
445
+ }
446
+ query = query.del();
447
+
448
+ query
449
+ .then(() => onSuccess())
450
+ .catch(err => setErrorFlow(olympe__WEBPACK_IMPORTED_MODULE_0__.ErrorFlow.create(err.message, 1)));
451
+
452
+ }, setErrorFlow);
453
+ };
454
+
455
+ const execute = (knexClient, schema, sqlQuery, onSuccess, setErrorFlow) => {
456
+ knexClient.schema.withSchema(schema).raw(sqlQuery)
457
+ .then((result) => onSuccess(result))
458
+ .catch(err => setErrorFlow(olympe__WEBPACK_IMPORTED_MODULE_0__.ErrorFlow.create(`Error encountered (${err.message}) during the execution of the query : ${sqlQuery}`, 1)));
459
+ };
460
+
461
+ const getAsJson = (logger, data) => {
462
+ try {
463
+ const dataJson = (typeof data === 'string') ? JSON.parse(data) : data;
464
+ return { json: dataJson, error: null };
465
+ } catch (e) {
466
+ return { json: null, error: e };
467
+ }
468
+ };
469
+
470
+ class DbConnectionHolder {
471
+ /**
472
+ * @public
473
+ * @return {DbConnectionHolder}
474
+ */
475
+ constructor() {
476
+ // Check if an instance already exists (Lazy loading)
477
+ if (!DbConnectionHolder.instance) {
478
+ /**
479
+ * @type {Map<String, Object>}
480
+ */
481
+ this.connectionMap = new Map();
482
+
483
+ /**
484
+ * The DbConnectionHolder Singleton instance
485
+ * @private
486
+ * @type {DbConnectionHolder}
487
+ */
488
+ DbConnectionHolder.instance = this;
489
+ }
490
+ return DbConnectionHolder.instance;
491
+ }
492
+
493
+ /**
494
+ * @public
495
+ * @return {Object}
496
+ */
497
+ getByKey(key) {
498
+ return this.connectionMap.get(key);
499
+ }
500
+
501
+ /**
502
+ * @public
503
+ * @return {Array}
504
+ */
505
+ getKeys() {
506
+ return [...this.connectionMap.keys()];
507
+ }
508
+
509
+ /**
510
+ * @public
511
+ */
512
+ set(key, value) {
513
+ this.connectionMap.set(key, value);
514
+ }
515
+
516
+ /**
517
+ * @public
518
+ */
519
+ clear() {
520
+ this.connectionMap.clear();
521
+ }
522
+ }
523
+
524
+ let instance = null;
525
+ const dbConnectionHolder = () => {
526
+ if (instance === null) {
527
+ // Instantiate the Singleton
528
+ instance = new DbConnectionHolder();
529
+ }
530
+ return instance;
531
+ }
532
+
533
+
534
+ /***/ }),
535
+
536
+ /***/ "@olympeio/core":
537
+ /*!*********************************!*\
538
+ !*** external "@olympeio/core" ***!
539
+ \*********************************/
540
+ /***/ ((module) => {
541
+
542
+ module.exports = require("@olympeio/core");
543
+
544
+ /***/ }),
545
+
546
+ /***/ "knex":
547
+ /*!***********************!*\
548
+ !*** external "knex" ***!
549
+ \***********************/
550
+ /***/ ((module) => {
551
+
552
+ module.exports = require("knex");
553
+
554
+ /***/ }),
555
+
556
+ /***/ "olympe":
557
+ /*!*************************!*\
558
+ !*** external "olympe" ***!
559
+ \*************************/
560
+ /***/ ((module) => {
561
+
562
+ module.exports = __WEBPACK_EXTERNAL_MODULE_olympe__;
563
+
564
+ /***/ })
565
+
566
+ /******/ });
567
+ /************************************************************************/
568
+ /******/ // The module cache
569
+ /******/ var __webpack_module_cache__ = {};
570
+ /******/
571
+ /******/ // The require function
572
+ /******/ function __webpack_require__(moduleId) {
573
+ /******/ // Check if module is in cache
574
+ /******/ var cachedModule = __webpack_module_cache__[moduleId];
575
+ /******/ if (cachedModule !== undefined) {
576
+ /******/ return cachedModule.exports;
577
+ /******/ }
578
+ /******/ // Create a new module (and put it into the cache)
579
+ /******/ var module = __webpack_module_cache__[moduleId] = {
580
+ /******/ // no module.id needed
581
+ /******/ // no module.loaded needed
582
+ /******/ exports: {}
583
+ /******/ };
584
+ /******/
585
+ /******/ // Execute the module function
586
+ /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
587
+ /******/
588
+ /******/ // Return the exports of the module
589
+ /******/ return module.exports;
590
+ /******/ }
591
+ /******/
592
+ /************************************************************************/
593
+ /******/ /* webpack/runtime/compat get default export */
594
+ /******/ (() => {
595
+ /******/ // getDefaultExport function for compatibility with non-harmony modules
596
+ /******/ __webpack_require__.n = (module) => {
597
+ /******/ var getter = module && module.__esModule ?
598
+ /******/ () => (module['default']) :
599
+ /******/ () => (module);
600
+ /******/ __webpack_require__.d(getter, { a: getter });
601
+ /******/ return getter;
602
+ /******/ };
603
+ /******/ })();
604
+ /******/
605
+ /******/ /* webpack/runtime/define property getters */
606
+ /******/ (() => {
607
+ /******/ // define getter functions for harmony exports
608
+ /******/ __webpack_require__.d = (exports, definition) => {
609
+ /******/ for(var key in definition) {
610
+ /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
611
+ /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
612
+ /******/ }
613
+ /******/ }
614
+ /******/ };
615
+ /******/ })();
616
+ /******/
617
+ /******/ /* webpack/runtime/hasOwnProperty shorthand */
618
+ /******/ (() => {
619
+ /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
620
+ /******/ })();
621
+ /******/
622
+ /******/ /* webpack/runtime/make namespace object */
623
+ /******/ (() => {
624
+ /******/ // define __esModule on exports
625
+ /******/ __webpack_require__.r = (exports) => {
626
+ /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
627
+ /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
628
+ /******/ }
629
+ /******/ Object.defineProperty(exports, '__esModule', { value: true });
630
+ /******/ };
631
+ /******/ })();
632
+ /******/
633
+ /************************************************************************/
634
+ var __webpack_exports__ = {};
635
+ // This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.
636
+ (() => {
637
+ /*!**************************!*\
638
+ !*** ./src/main-node.js ***!
639
+ \**************************/
640
+ __webpack_require__.r(__webpack_exports__);
641
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
642
+ /* harmony export */ checkTable: () => (/* reexport safe */ _node_helpers_js__WEBPACK_IMPORTED_MODULE_4__.checkTable),
643
+ /* harmony export */ dbConnectionHolder: () => (/* reexport safe */ _node_helpers_js__WEBPACK_IMPORTED_MODULE_4__.dbConnectionHolder),
644
+ /* harmony export */ execute: () => (/* reexport safe */ _node_helpers_js__WEBPACK_IMPORTED_MODULE_4__.execute),
645
+ /* harmony export */ getAsJson: () => (/* reexport safe */ _node_helpers_js__WEBPACK_IMPORTED_MODULE_4__.getAsJson),
646
+ /* harmony export */ insert: () => (/* reexport safe */ _node_helpers_js__WEBPACK_IMPORTED_MODULE_4__.insert),
647
+ /* harmony export */ remove: () => (/* reexport safe */ _node_helpers_js__WEBPACK_IMPORTED_MODULE_4__.remove),
648
+ /* harmony export */ select: () => (/* reexport safe */ _node_helpers_js__WEBPACK_IMPORTED_MODULE_4__.select),
649
+ /* harmony export */ update: () => (/* reexport safe */ _node_helpers_js__WEBPACK_IMPORTED_MODULE_4__.update)
650
+ /* harmony export */ });
651
+ /* harmony import */ var olympe__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! olympe */ "olympe");
652
+ /* harmony import */ var olympe__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(olympe__WEBPACK_IMPORTED_MODULE_0__);
653
+ /* harmony import */ var _node_Delete_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./node/Delete.js */ "./src/node/Delete.js");
654
+ /* harmony import */ var _node_Execute_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node/Execute.js */ "./src/node/Execute.js");
655
+ /* harmony import */ var _node_GetSQLDBConfig_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./node/GetSQLDBConfig.js */ "./src/node/GetSQLDBConfig.js");
656
+ /* harmony import */ var _node_helpers_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./node/helpers */ "./src/node/helpers.js");
657
+ /* harmony import */ var _node_Insert_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./node/Insert.js */ "./src/node/Insert.js");
658
+ /* harmony import */ var _node_Select_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./node/Select.js */ "./src/node/Select.js");
659
+ /* harmony import */ var _node_Update_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./node/Update.js */ "./src/node/Update.js");
660
+
661
+ // Import Olympe runtime or DRAW
662
+
663
+
664
+ // Import project bricks (we use webpack-import-glob-loader to import all bricks)
665
+ ;
666
+
667
+
668
+
669
+
670
+ })();
671
+
672
+ /******/ return __webpack_exports__;
673
+ /******/ })()
674
+ ;
675
+ });
676
+ //# sourceMappingURL=main-node.js.map