@restorecommerce/resource-base-interface 0.1.1 → 0.2.3
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/CHANGELOG.md +22 -0
- package/lib/core/GraphResourcesServiceBase.js +121 -101
- package/lib/core/GraphResourcesServiceBase.js.map +1 -1
- package/lib/core/ResourcesAPI.d.ts +3 -2
- package/lib/core/ResourcesAPI.js +279 -228
- package/lib/core/ResourcesAPI.js.map +1 -1
- package/lib/core/ServiceBase.d.ts +2 -0
- package/lib/core/ServiceBase.js +345 -165
- package/lib/core/ServiceBase.js.map +1 -1
- package/lib/core/interfaces.d.ts +66 -1
- package/lib/core/interfaces.js +36 -0
- package/lib/core/interfaces.js.map +1 -1
- package/lib/index.d.ts +9 -2
- package/lib/index.js +187 -64
- package/lib/index.js.map +1 -1
- package/package.json +21 -20
- package/tsconfig.json +12 -4
package/lib/core/ServiceBase.js
CHANGED
|
@@ -1,19 +1,41 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
10
20
|
};
|
|
11
21
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
22
|
exports.ServiceBase = void 0;
|
|
13
|
-
const _ = require("lodash");
|
|
14
|
-
const chassis = require("@restorecommerce/chassis-srv");
|
|
23
|
+
const _ = __importStar(require("lodash"));
|
|
24
|
+
const chassis = __importStar(require("@restorecommerce/chassis-srv"));
|
|
15
25
|
const index_1 = require("../index");
|
|
16
26
|
const errors = chassis.errors;
|
|
27
|
+
// Mapping of arangodb error codes to standard HTTP error codes
|
|
28
|
+
const arangoHttpErrCodeMap = new Map([
|
|
29
|
+
[1210, 409],
|
|
30
|
+
[1200, 409],
|
|
31
|
+
[1201, 400],
|
|
32
|
+
[1202, 404],
|
|
33
|
+
[1203, 404],
|
|
34
|
+
[1204, 400],
|
|
35
|
+
[1205, 400],
|
|
36
|
+
[1207, 409],
|
|
37
|
+
[1228, 404], // ERROR_ARANGO_DATABASE_NOT_FOUND
|
|
38
|
+
]);
|
|
17
39
|
/**
|
|
18
40
|
* A microservice chassis ready class which provides endpoints for
|
|
19
41
|
* CRUD resource operations.
|
|
@@ -33,6 +55,7 @@ class ServiceBase {
|
|
|
33
55
|
entity: entityEvents
|
|
34
56
|
};
|
|
35
57
|
this.resourceapi = resourceapi;
|
|
58
|
+
this.resourceapi.logger = logger;
|
|
36
59
|
this.isEventsEnabled = isEventsEnabled;
|
|
37
60
|
}
|
|
38
61
|
/**
|
|
@@ -41,74 +64,190 @@ class ServiceBase {
|
|
|
41
64
|
* @param call request containing filter,limit, offset and sort options
|
|
42
65
|
* @param context
|
|
43
66
|
*/
|
|
44
|
-
read(call, context) {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
67
|
+
async read(call, context) {
|
|
68
|
+
let docs = {};
|
|
69
|
+
if (!_.isEmpty(call.request.search)) {
|
|
70
|
+
docs.operation_status = {
|
|
71
|
+
code: 404,
|
|
72
|
+
message: 'Full-text search is not implemented'
|
|
73
|
+
};
|
|
74
|
+
return docs;
|
|
75
|
+
}
|
|
76
|
+
try {
|
|
77
|
+
let objectEntities = [];
|
|
78
|
+
let sort;
|
|
79
|
+
if (!_.isEmpty(call.request.sort)) {
|
|
80
|
+
sort = {};
|
|
81
|
+
_.forEach(call.request.sort, (s) => {
|
|
82
|
+
switch (s.order) {
|
|
83
|
+
case 'ASCENDING':
|
|
84
|
+
case 1:
|
|
85
|
+
sort[s.field] = 'ASC';
|
|
86
|
+
break;
|
|
87
|
+
case 2:
|
|
88
|
+
case 'DESCENDING':
|
|
89
|
+
sort[s.field] = 'DESC';
|
|
90
|
+
break;
|
|
91
|
+
case 'UNSORTED':
|
|
92
|
+
case 0:
|
|
93
|
+
default:
|
|
94
|
+
break;
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
let limit = call.request.limit;
|
|
99
|
+
if (call.request.limit <= 0) {
|
|
100
|
+
limit = 1000;
|
|
101
|
+
}
|
|
102
|
+
const offset = call.request.offset;
|
|
103
|
+
let filter = {};
|
|
104
|
+
// convert the filter from proto structure (field, operation, value and operand) to {field: value } mapping
|
|
105
|
+
if (!_.isEmpty(call.request.filters)) {
|
|
106
|
+
if (_.isArray(call.request.filters)) {
|
|
107
|
+
for (let eachFilter of call.request.filters) {
|
|
108
|
+
let prevFilter = filter;
|
|
109
|
+
filter = (0, index_1.toObject)(eachFilter);
|
|
110
|
+
Object.assign(filter, prevFilter);
|
|
111
|
+
}
|
|
70
112
|
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
limit = 1000;
|
|
113
|
+
else {
|
|
114
|
+
filter = (0, index_1.toObject)(call.request.filters);
|
|
74
115
|
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
116
|
+
}
|
|
117
|
+
const field = {};
|
|
118
|
+
_.forEach(call.request.field, (f) => {
|
|
119
|
+
if (f.include) {
|
|
120
|
+
field[f.name] = 1;
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
field[f.name] = 0;
|
|
124
|
+
});
|
|
125
|
+
const customQueries = call.request.custom_queries;
|
|
126
|
+
const customArgs = call.request.custom_arguments || {};
|
|
127
|
+
objectEntities = (await this.resourceapi.read(filter, limit, offset, sort, field, customQueries, customArgs)) || [];
|
|
128
|
+
let readResponseWithStatus = [];
|
|
129
|
+
for (let object of objectEntities) {
|
|
130
|
+
readResponseWithStatus.push({
|
|
131
|
+
payload: object,
|
|
132
|
+
status: {
|
|
133
|
+
code: 200,
|
|
134
|
+
message: 'success'
|
|
83
135
|
}
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
docs = {
|
|
139
|
+
items: readResponseWithStatus,
|
|
140
|
+
total_count: objectEntities.length,
|
|
141
|
+
operation_status: {
|
|
142
|
+
code: 200,
|
|
143
|
+
message: 'success'
|
|
144
|
+
}
|
|
145
|
+
};
|
|
146
|
+
return docs;
|
|
147
|
+
}
|
|
148
|
+
catch (e) {
|
|
149
|
+
const { code, message } = e;
|
|
150
|
+
this.logger.error('Error caught while processing read request', { code, message });
|
|
151
|
+
if (!docs.status) {
|
|
152
|
+
docs.status = {};
|
|
153
|
+
}
|
|
154
|
+
docs.status = {
|
|
155
|
+
id: '',
|
|
156
|
+
code: e.code,
|
|
157
|
+
message: e.details ? e.details : e.message
|
|
158
|
+
};
|
|
159
|
+
return docs;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
generateStatusResponse(responseItems, inputItems, deleteIds) {
|
|
163
|
+
let statusArray = [];
|
|
164
|
+
if (!_.isArray(responseItems)) {
|
|
165
|
+
responseItems = [responseItems];
|
|
166
|
+
}
|
|
167
|
+
if (!_.isArray(inputItems)) {
|
|
168
|
+
inputItems = [inputItems];
|
|
169
|
+
}
|
|
170
|
+
for (let i = 0; i < responseItems.length; i++) {
|
|
171
|
+
const item = responseItems[i];
|
|
172
|
+
if (item.error) {
|
|
173
|
+
let code;
|
|
174
|
+
let id;
|
|
175
|
+
if (!deleteIds) {
|
|
176
|
+
id = inputItems[i].id;
|
|
177
|
+
}
|
|
178
|
+
else {
|
|
179
|
+
id = inputItems[i]; // for delete operation ids is a string and not object
|
|
84
180
|
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
if (
|
|
88
|
-
|
|
89
|
-
return;
|
|
181
|
+
// map arango error code to http error code
|
|
182
|
+
arangoHttpErrCodeMap.forEach((value, key) => {
|
|
183
|
+
if (key === item.errorNum) {
|
|
184
|
+
code = value;
|
|
90
185
|
}
|
|
91
|
-
field[f.name] = 0;
|
|
92
186
|
});
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
187
|
+
statusArray.push({
|
|
188
|
+
id,
|
|
189
|
+
code: code ? code : item.errorNum,
|
|
190
|
+
message: item.errorMessage
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
else {
|
|
194
|
+
statusArray.push({
|
|
195
|
+
id: item.id,
|
|
196
|
+
code: 200,
|
|
197
|
+
message: 'success'
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
return statusArray;
|
|
202
|
+
}
|
|
203
|
+
generateResponseWithStatus(responseItems, inputItems, deleteIds) {
|
|
204
|
+
let statusArray = [];
|
|
205
|
+
let responseItemsWithStatus = [];
|
|
206
|
+
if (!_.isArray(responseItems)) {
|
|
207
|
+
responseItems = [responseItems];
|
|
208
|
+
}
|
|
209
|
+
if (!_.isArray(inputItems)) {
|
|
210
|
+
inputItems = [inputItems];
|
|
211
|
+
}
|
|
212
|
+
for (let i = 0; i < responseItems.length; i++) {
|
|
213
|
+
const item = responseItems[i];
|
|
214
|
+
if (item.error) {
|
|
215
|
+
let code;
|
|
216
|
+
let id;
|
|
217
|
+
if (!deleteIds) {
|
|
218
|
+
id = inputItems[i].id;
|
|
106
219
|
}
|
|
107
220
|
else {
|
|
108
|
-
|
|
221
|
+
id = inputItems[i]; // for delete operation ids is a string and not object
|
|
109
222
|
}
|
|
223
|
+
// map arango error code to http error code
|
|
224
|
+
arangoHttpErrCodeMap.forEach((value, key) => {
|
|
225
|
+
if (key === item.errorNum) {
|
|
226
|
+
code = value;
|
|
227
|
+
}
|
|
228
|
+
});
|
|
229
|
+
responseItemsWithStatus.push({
|
|
230
|
+
payload: undefined,
|
|
231
|
+
status: {
|
|
232
|
+
id,
|
|
233
|
+
code: code ? code : item.errorNum,
|
|
234
|
+
message: item.errorMessage
|
|
235
|
+
}
|
|
236
|
+
});
|
|
237
|
+
statusArray.push();
|
|
238
|
+
}
|
|
239
|
+
else {
|
|
240
|
+
responseItemsWithStatus.push({
|
|
241
|
+
payload: item,
|
|
242
|
+
status: {
|
|
243
|
+
id: item.id,
|
|
244
|
+
code: 200,
|
|
245
|
+
message: 'success'
|
|
246
|
+
}
|
|
247
|
+
});
|
|
110
248
|
}
|
|
111
|
-
}
|
|
249
|
+
}
|
|
250
|
+
return responseItemsWithStatus;
|
|
112
251
|
}
|
|
113
252
|
/**
|
|
114
253
|
* Endpoint create.
|
|
@@ -116,32 +255,39 @@ class ServiceBase {
|
|
|
116
255
|
* @param call contains a list of resources to be created
|
|
117
256
|
* @param context
|
|
118
257
|
*/
|
|
119
|
-
create(call, context) {
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
258
|
+
async create(call, context) {
|
|
259
|
+
let docs = {};
|
|
260
|
+
try {
|
|
261
|
+
const createDocs = _.cloneDeep(call.request.items);
|
|
262
|
+
let createResponse = await this.resourceapi.create(createDocs);
|
|
263
|
+
const dispatch = [];
|
|
264
|
+
const events = this.events.entity;
|
|
265
|
+
if (this.isEventsEnabled) {
|
|
266
|
+
_.forEach(createResponse, (item) => {
|
|
267
|
+
if (!item.error) {
|
|
128
268
|
dispatch.push(events.emit(`${this.name}Created`, item));
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
return { items: call.request.items, total_count: call.request.items.length, };
|
|
133
|
-
}
|
|
134
|
-
catch (e) {
|
|
135
|
-
const { code, message, details } = e;
|
|
136
|
-
this.logger.error('Error caught while processing create request', { code, message });
|
|
137
|
-
if (details) {
|
|
138
|
-
throw { code, message: `${message} - ${details}` };
|
|
139
|
-
}
|
|
140
|
-
else {
|
|
141
|
-
throw { code, message };
|
|
142
|
-
}
|
|
269
|
+
}
|
|
270
|
+
});
|
|
271
|
+
await dispatch;
|
|
143
272
|
}
|
|
144
|
-
|
|
273
|
+
let createResponseWithStatus = this.generateResponseWithStatus(createResponse, createDocs);
|
|
274
|
+
const operation_status = {
|
|
275
|
+
code: 200,
|
|
276
|
+
message: 'success'
|
|
277
|
+
};
|
|
278
|
+
docs = { items: createResponseWithStatus, total_count: createResponseWithStatus.length, operation_status };
|
|
279
|
+
this.logger.info(this.name + ' create response', docs);
|
|
280
|
+
return docs;
|
|
281
|
+
}
|
|
282
|
+
catch (e) {
|
|
283
|
+
const { code, message } = e;
|
|
284
|
+
this.logger.error('Error caught while processing create request', { code, message });
|
|
285
|
+
docs.operation_status = {
|
|
286
|
+
code: e.code,
|
|
287
|
+
message: e.details ? e.details : e.message
|
|
288
|
+
};
|
|
289
|
+
return docs;
|
|
290
|
+
}
|
|
145
291
|
}
|
|
146
292
|
/**
|
|
147
293
|
* Endpoint delete.
|
|
@@ -149,42 +295,64 @@ class ServiceBase {
|
|
|
149
295
|
* @param call contains list of resource IDs to be deleted
|
|
150
296
|
* @param context
|
|
151
297
|
*/
|
|
152
|
-
delete(call, context) {
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
298
|
+
async delete(call, context) {
|
|
299
|
+
let deleteResponse = { status: [], operation_status: {} };
|
|
300
|
+
try {
|
|
301
|
+
const events = this.events.entity;
|
|
302
|
+
let docs;
|
|
303
|
+
if (call.request.collection) {
|
|
304
|
+
docs = await this.resourceapi.deleteCollection();
|
|
305
|
+
this.logger.info(`${this.name} deleted`);
|
|
306
|
+
}
|
|
307
|
+
else {
|
|
308
|
+
docs = await this.resourceapi.delete(call.request.ids);
|
|
309
|
+
}
|
|
310
|
+
// sanitize delete response for docs
|
|
311
|
+
for (let doc of docs) {
|
|
312
|
+
if (doc._id && doc._key && doc._rev) {
|
|
313
|
+
delete doc._id;
|
|
314
|
+
const id = doc._key;
|
|
315
|
+
doc.id = id;
|
|
316
|
+
delete doc._key;
|
|
317
|
+
delete doc._rev;
|
|
164
318
|
}
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
}
|
|
319
|
+
}
|
|
320
|
+
if (this.isEventsEnabled) {
|
|
321
|
+
const dispatch = [];
|
|
322
|
+
_.forEach(docs, (id) => {
|
|
323
|
+
if (typeof id == 'string') {
|
|
324
|
+
id = { id };
|
|
325
|
+
}
|
|
326
|
+
if (!id.error) {
|
|
171
327
|
dispatch.push(events.emit(`${this.name}Deleted`, id));
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
return {};
|
|
328
|
+
}
|
|
329
|
+
});
|
|
330
|
+
await dispatch;
|
|
176
331
|
}
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
else {
|
|
184
|
-
throw { code, message };
|
|
332
|
+
// if complete collection is dropped then there are no input ids provided,
|
|
333
|
+
// iterate docs and put ids to call.request.ids
|
|
334
|
+
if (call.request.collection && (_.isNil(call.request.ids) || _.isEmpty(call.request.ids))) {
|
|
335
|
+
call.request.ids = [];
|
|
336
|
+
for (let doc of docs) {
|
|
337
|
+
call.request.ids.push(doc.id);
|
|
185
338
|
}
|
|
186
339
|
}
|
|
187
|
-
|
|
340
|
+
let statusArray = this.generateStatusResponse(docs, call.request.ids, true);
|
|
341
|
+
const operation_status = {
|
|
342
|
+
code: 200,
|
|
343
|
+
message: 'success'
|
|
344
|
+
};
|
|
345
|
+
return { status: statusArray, operation_status };
|
|
346
|
+
}
|
|
347
|
+
catch (e) {
|
|
348
|
+
const { code, message } = e;
|
|
349
|
+
this.logger.error('Error caught while processing delete request', { code, message });
|
|
350
|
+
deleteResponse.operation_status = {
|
|
351
|
+
code: e.code,
|
|
352
|
+
message: e.details ? e.details : e.message
|
|
353
|
+
};
|
|
354
|
+
return deleteResponse;
|
|
355
|
+
}
|
|
188
356
|
}
|
|
189
357
|
/**
|
|
190
358
|
* Endpoint update.
|
|
@@ -192,32 +360,39 @@ class ServiceBase {
|
|
|
192
360
|
* @param call contains list of resources to be modified
|
|
193
361
|
* @param context
|
|
194
362
|
*/
|
|
195
|
-
update(call, context) {
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
363
|
+
async update(call, context) {
|
|
364
|
+
let docs = {};
|
|
365
|
+
try {
|
|
366
|
+
let updateDocs = _.cloneDeep(call.request.items);
|
|
367
|
+
let updateResponse = await this.resourceapi.update(updateDocs);
|
|
368
|
+
if (this.isEventsEnabled) {
|
|
369
|
+
const dispatch = [];
|
|
370
|
+
const events = this.events.entity;
|
|
371
|
+
_.forEach(updateResponse, (update) => {
|
|
372
|
+
if (!update.error) {
|
|
204
373
|
dispatch.push(events.emit(`${this.name}Modified`, update));
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
return { items: updateResult, total_count: updateResult.length };
|
|
209
|
-
}
|
|
210
|
-
catch (e) {
|
|
211
|
-
const { code, message, details } = e;
|
|
212
|
-
this.logger.error('Error caught while processing update request', { code, message });
|
|
213
|
-
if (details) {
|
|
214
|
-
throw { code, message: `${message} - ${details}` };
|
|
215
|
-
}
|
|
216
|
-
else {
|
|
217
|
-
throw { code, message };
|
|
218
|
-
}
|
|
374
|
+
}
|
|
375
|
+
});
|
|
376
|
+
await dispatch;
|
|
219
377
|
}
|
|
220
|
-
|
|
378
|
+
let responseWithStatus = this.generateResponseWithStatus(updateResponse, updateDocs);
|
|
379
|
+
const operation_status = {
|
|
380
|
+
code: 200,
|
|
381
|
+
message: 'success'
|
|
382
|
+
};
|
|
383
|
+
docs = { items: responseWithStatus, total_count: responseWithStatus.length, operation_status };
|
|
384
|
+
this.logger.info(this.name + ' update response', docs);
|
|
385
|
+
return docs;
|
|
386
|
+
}
|
|
387
|
+
catch (e) {
|
|
388
|
+
const { code, message } = e;
|
|
389
|
+
this.logger.error('Error caught while processing update request', { code, message });
|
|
390
|
+
docs.operation_status = {
|
|
391
|
+
code: e.code,
|
|
392
|
+
message: e.details ? e.details : e.message
|
|
393
|
+
};
|
|
394
|
+
return docs;
|
|
395
|
+
}
|
|
221
396
|
}
|
|
222
397
|
/**
|
|
223
398
|
* Endpoint upsert.
|
|
@@ -225,24 +400,29 @@ class ServiceBase {
|
|
|
225
400
|
* @param call contains list of resources to be created or modified
|
|
226
401
|
* @param context
|
|
227
402
|
*/
|
|
228
|
-
upsert(call, context) {
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
}
|
|
245
|
-
|
|
403
|
+
async upsert(call, context) {
|
|
404
|
+
let docs = {};
|
|
405
|
+
try {
|
|
406
|
+
let upsertDocs = _.cloneDeep(call.request.items);
|
|
407
|
+
let upsertResponse = await this.resourceapi.upsert(upsertDocs, this.events.entity, this.name);
|
|
408
|
+
let responseWithStatus = this.generateResponseWithStatus(upsertResponse, upsertDocs);
|
|
409
|
+
const operation_status = {
|
|
410
|
+
code: 200,
|
|
411
|
+
message: 'success'
|
|
412
|
+
};
|
|
413
|
+
docs = { items: responseWithStatus, total_count: responseWithStatus.length, operation_status };
|
|
414
|
+
this.logger.info(`${this.name} upsert response`, { items: upsertResponse });
|
|
415
|
+
return docs;
|
|
416
|
+
}
|
|
417
|
+
catch (e) {
|
|
418
|
+
const { code, message } = e;
|
|
419
|
+
this.logger.error('Error caught while processing upsert request', { code, message });
|
|
420
|
+
docs.operation_status = {
|
|
421
|
+
code: e.code,
|
|
422
|
+
message: e.details ? e.details : e.message
|
|
423
|
+
};
|
|
424
|
+
return docs;
|
|
425
|
+
}
|
|
246
426
|
}
|
|
247
427
|
}
|
|
248
428
|
exports.ServiceBase = ServiceBase;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServiceBase.js","sourceRoot":"","sources":["../../src/core/ServiceBase.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ServiceBase.js","sourceRoot":"","sources":["../../src/core/ServiceBase.ts"],"names":[],"mappings":"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"}
|