@restorecommerce/resource-base-interface 1.2.0 → 1.2.2

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 CHANGED
@@ -1,3 +1,13 @@
1
+ ### 1.2.2 (July 13th, 2023)
2
+
3
+ - support nested buffer fields and also multiple bufferfields per entity, dateTime stamp field handlers
4
+ - updated depeendencies
5
+
6
+ ### 1.2.1 (June 19th, 2023)
7
+
8
+ - extended resource base to support for nested buffer fields
9
+ - updated depeendencies
10
+
1
11
  ### 1.2.0 (May 31st, 2023)
2
12
 
3
13
  - updated dependencies (includes chassis-srv updates for updated ArangoJs), pluralize protos and meta owner changes
package/README.md CHANGED
@@ -24,7 +24,7 @@ This interface describes the following gRPC endpoints for a generic resource of
24
24
 
25
25
  | Field | Type | Label | Description |
26
26
  | ----- | ---- | ----- | ----------- |
27
- | id | string | required | identifier for the resource |
27
+ | id | string | optional | identifier for the resource |
28
28
  | meta | io.restorecommerce.meta.Meta meta | optional | Meta information common to all Restore Commerce resources |
29
29
  | value | number | optional | value for the resource |
30
30
  | text | string | optional | textual data for the resource |
@@ -48,49 +48,48 @@ If there is a [graph configuration](test/cfg/config.json#L11) specified for the
48
48
  This operation returns resources based on provided filter and options.
49
49
  Requests are performed using `io.restorecommerce.resourcebase.ReadRequest` and responses are a list of resources.
50
50
 
51
- `google.protobuf.Struct`
51
+ `io.restorecommerce.resourcebase.ReadRequest`
52
52
 
53
53
  | Field | Type | Label | Description |
54
54
  | ----- | ---- | ----- | ----------- |
55
- | fields | map<string, Value> | optional | Unordered map of dynamically typed values. |
56
-
55
+ | offset | number | optional | offset of the resource |
56
+ | limit | number | optional | limit, default value is `1000` |
57
+ | filters | `io.restorecommerce.filter.FilterOp` | optional | nested filters based on field values, multiple filters can be combined with `AND` and `OR` operators |
58
+ | sorts | [ ]`io.restorecommerce.resourcebase.Sort` | optional | sort the resources |
59
+ | fields | [ ] `io.restorecommerce.resourcebase.FieldFilter` | optional | fields selector, list of fields to be included or excluded, by default we get all the fields |
60
+ | search | [ ]string | optional | word search, not yet implemeneted |
61
+ | locales_limiter | [ ]string | optional | querying based on locales, not yet implemented |
57
62
 
58
- `io.restorecommerce.resourcebase.Sort`
63
+ `io.restorecommerce.filter.FilterOp`
59
64
 
60
65
  | Field | Type | Label | Description |
61
66
  | ----- | ---- | ----- | ----------- |
62
- | field | string | optional | field to be sorted upon |
63
- | SortOrder | enum | optional | sorting order, `UNSORTED`, `ASCENDING` or `DESCENDING` |
67
+ | filters | `io.restorecommerce.filter.Filter` | optional | nested filters |
68
+ | operator | enum | optional | operator `and`, or `or` |
64
69
 
65
-
66
- `io.restorecommerce.resourcebase.FieldFilter`
70
+ `io.restorecommerce.graph.Filter`
67
71
 
68
72
  | Field | Type | Label | Description |
69
73
  | ----- | ---- | ----- | ----------- |
70
- | name | string | optional | field name |
71
- | include | bool | optional | include or exclude field |
72
-
74
+ | field | string | required | filter based on field |
75
+ | operation | enum | optional | operator `eq`, `lt`, `lte`, `gt`, `gte`, `isEmpty`, `ilike`, `in`, `neq`, default value is `eq` |
76
+ | value | string | required | filter based on value |
77
+ | type | enum | optional | value type `STRING`, `NUMBER`, `BOOLEAN`, `DATE` or `ARRAY`, default value is `STRING` |
78
+ | filters | [ ] `io.restorecommerce.filter.FilterOp` | required | nested filters |
73
79
 
74
- `io.restorecommerce.resourcebase.ScopeFilter`
80
+ `io.restorecommerce.resourcebase.Sort`
75
81
 
76
82
  | Field | Type | Label | Description |
77
83
  | ----- | ---- | ----- | ----------- |
78
- | scope | string | optional | scope to operate on |
79
- | instance | string | optional | value to compare |
80
-
84
+ | field | string | optional | field to be sorted upon |
85
+ | SortOrder | enum | optional | sorting order, `UNSORTED`, `ASCENDING` or `DESCENDING` |
81
86
 
82
- `io.restorecommerce.resourcebase.ReadRequest`
87
+ `io.restorecommerce.resourcebase.FieldFilter`
83
88
 
84
89
  | Field | Type | Label | Description |
85
90
  | ----- | ---- | ----- | ----------- |
86
- | offset | number | optional | offset of the resource |
87
- | limit | number | optional | limit, default value is `1000` |
88
- | filter | google.protobuf.Struct | optional | filter based on field values, multiple filters can be combined with `AND` and `OR` operators |
89
- | sort | [ ]`io.restorecommerce.resourcebase.Sort` | optional | sort the resources |
90
- | field | [ ] `io.restorecommerce.resourcebase.FieldFilter` | optional | fields selector, list of fields to be included or excluded, by default we get all the fields |
91
- | search | [ ]string | optional | word search, not yet implemeneted |
92
- | locales_limiter | [ ]string | optional | querying based on locales, not yet implemented |
93
- | scope | `io.restorecommerce.resourcebase.ScopeFilter` | optional | scope to operate on, not yet implemented |
91
+ | name | string | optional | field name |
92
+ | include | bool | optional | include or exclude field |
94
93
 
95
94
  ### Update
96
95
 
@@ -113,7 +112,7 @@ If a graph vertex is deleted, all connected edges are also deleted.
113
112
 
114
113
  | Field | Type | Label | Description |
115
114
  | ----- | ---- | ----- | ----------- |
116
- | collection | string | required | Name of the target collection |
115
+ | collection | string | optional | Name of the target collection |
117
116
  | ids | [ ]string | optional | List of resource identifiers to be deleted; if empty or not provided, the whole collection is truncated |
118
117
 
119
118
  ### Traversal
@@ -125,71 +124,54 @@ Requests are performed using `io.restorecommerce.graph.TraversalRequest` and res
125
124
 
126
125
  | Field | Type | Label | Description |
127
126
  | ----- | ---- | ----- | ----------- |
128
- | start_vertex | string | required | this can be either the `_id` or the `_key` of a vertex in the collection |
127
+ | vertices | [ ]`io.restorecommerce.graph.Vertices` | optional | list of vertices for traversal |
128
+ | collection | `io.restorecommerce.graph.Collection` | optional | collection data for traversal |
129
129
  | opts | `io.restorecommerce.graph.Options` | optional | List of options for graph traversal |
130
- | collection_name | string | optional | starting vertex's Collection name |
131
- | edge_name | string | optional | edge name for traversal |
132
- | data | bool | optional | if set to `true` only the vertices data is returned |
133
130
  | path | bool | optional | if set to `true` only the traversed paths are returned |
134
- | aql | bool | optional | if set to `true` traversal is executed as an AQL query |
131
+ | subject | `io.restorecommerce.auth.Subject` | required | Subject details |
132
+ | filters | `io.restorecommerce.graph.Filters` | optional | filters |
135
133
 
136
- `io.restorecommerce.graph.Options`
134
+ `io.restorecommerce.graph.Vertices`
137
135
 
138
136
  | Field | Type | Label | Description |
139
137
  | ----- | ---- | ----- | ----------- |
140
- | direction | string | optional | Graph traversal direction, possible values are `outbound` or `inbound`, if not provided by default it is `outbound` traversal |
141
- | filter | [ ] `io.restorecommerce.graph.Filter` | optional | List Vertexes to be filtered out, i.e. these vertices are not traversed |
142
- | expander | [ ] `io.restorecommerce.graph.Expander` | optional | List of edges to be included in the traversal, by default all edges are included in traversal |
143
- | sort | string | optional | JS code of custom comparison function for the edges |
144
- | min_depth | uint32 | optional | visits only vertices in atleast the give depth |
145
- | start_vertex | string | optional | id of the start vertex |
146
- | visitor | string | optional | JS code of custom visitor function |
147
- | init | string | optional | JS code of custom result initialization function |
148
- | item_order | string | optional | item iteration order, possible values are either `forward` or `backward` |
149
- | strategy | string | optional | traversal strategy, possible values are either `depthfirst` or `breadthfirst` |
150
- | max_iterations | uint32 | optional | maximum number of iterations in each traversal, this is used to prevent endless loops in cyclic graphs |
151
- | max_depth | uint32 | optional | visits nodes in at most the given depth |
152
- | uniqueness | `io.restorecommerce.graph.Uniqueness` | optional | specifiy uniqueness for vertices and edges visited |
153
- | order | string | optional | traversal order, possible values are `preorder`, `postorder` or `preorder-expander` |
154
- | graph_name | string | optional | name of graph that contain the edges |
155
- | edge_collection | string | optional | name of the collection that contains the edges |
138
+ | collection_name | string | required | collection name |
139
+ | start_vertex_ids | [ ] string | required | list of start vertex ids |
156
140
 
157
- `io.restorecommerce.graph.Filter`
141
+ `io.restorecommerce.graph.Collection`
158
142
 
159
143
  | Field | Type | Label | Description |
160
144
  | ----- | ---- | ----- | ----------- |
161
- | vertex | string | optional | vertex would be excluded on traversal |
145
+ | collection_name | string | required | collection name |
146
+ | limit | [ ] number | optional | limit |
147
+ | sorts | [ ] `io.restorecommerce.resourcebase.Sort` | optional | sorting based on fields |
162
148
 
163
- `io.restorecommerce.graph.Expander`
149
+ `io.restorecommerce.graph.Filters`
164
150
 
165
151
  | Field | Type | Label | Description |
166
152
  | ----- | ---- | ----- | ----------- |
167
- | edge | string | optional | expand this edge |
168
- | direction | string | optional | direction of traversal, either `outbound` or `inbound` |
153
+ | entity | string | optional | entity name |
154
+ | edge | string | optional | edge name |
155
+ | filters | `io.restorecommerce.graph.Filter` | optional | Filter |
156
+ | operator | enum | optional | operator, `and` or `or`, default is `and` |
169
157
 
170
- `io.restorecommerce.graph.Uniqueness`
158
+ `io.restorecommerce.graph.Options`
171
159
 
172
160
  | Field | Type | Label | Description |
173
161
  | ----- | ---- | ----- | ----------- |
174
- | vertices | string | optional | specifies uniqueness for vertices visited, possible values are `none`, `global` or `path` |
175
- | edges | string | optional | specifies uniqueness for edges visited, possible values are `none`, `global` or `path` |
162
+ | include_vertexs | [ ] string | optional | list of vertex's to be included in traversal |
163
+ | exclude_vertexs | [ ] string | optional | list of vertex's to be excluded in traversal |
164
+ | include_edges | [ ] string | optional | list of edge's to be included in traversal |
165
+ | exclude_edges | [ ] string | optional | list of edge's to be excluded in traversal |
166
+ | direction | enum | optional | direction of traversal, `OUTBOUND` or `INBOUND`, default is `OUTBOUND` |
176
167
 
177
168
  `io.restorecommerce.graph.TraversalResponse`
178
169
 
179
170
  | Field | Type | Label | Description |
180
171
  | ----- | ---- | ----- | ----------- |
181
- | vertex_fields | [ ] `io.restorecommerce.graph.VertexFields` | required | Object containing vertex metadata: `id`, `_id`, `_key` and `_rev` values |
182
172
  | paths | `google.protobuf.Any` | required | buffered data, contains the list of visited paths |
183
173
  | data | `google.protobuf.Any` | required | buffered data, contains all the data from the visited vertices |
184
-
185
- `io.restorecommerce.graph.VertexFields`
186
-
187
- | Field | Type | Label | Description |
188
- | ----- | ---- | ----- | ----------- |
189
- | _id | string | required | vertex document handle |
190
- | _key | string | required | vertex document unique key |
191
- | _rev | string | required | revision or vertex document ETag |
192
- | id | string | required | id of the vertex collection |
174
+ | operation_status | `io.restorecommerce.status.OperationStatus` | required | operation status |
193
175
 
194
176
  ## Kafka Events
195
177
 
@@ -11,9 +11,9 @@ export declare class ResourcesAPIBase {
11
11
  private collectionName;
12
12
  private edgeCfg?;
13
13
  private graphName?;
14
- bufferField: string;
14
+ bufferFields: string[];
15
15
  requiredFields: any;
16
- dateTimeField: string[];
16
+ timeStampFields: string[];
17
17
  resourceName: string;
18
18
  logger: any;
19
19
  /**
@@ -69,7 +69,5 @@ export declare class ResourcesAPIBase {
69
69
  * A list of documents or partial documents. Each document must contain an id field.
70
70
  */
71
71
  update(documents: BaseDocument[]): Promise<BaseDocument[]>;
72
- private convertSecondsNanosToms;
73
- private convertmsToSecondsNanos;
74
- private updateJSON;
72
+ private encodeOrDecode;
75
73
  }
@@ -27,6 +27,7 @@ exports.ResourcesAPIBase = void 0;
27
27
  const _ = __importStar(require("lodash"));
28
28
  const chassis_srv_1 = require("@restorecommerce/chassis-srv");
29
29
  const uuid = __importStar(require("uuid"));
30
+ const utils_1 = require("./utils");
30
31
  let redisClient;
31
32
  const Strategies = {
32
33
  INCREMENT: 'increment',
@@ -45,7 +46,6 @@ const setDefaults = async (obj, collectionName) => {
45
46
  if (_.isEmpty(o.meta)) {
46
47
  throw new chassis_srv_1.errors.InvalidArgument('Object does not contain ownership information');
47
48
  }
48
- const now = Date.now();
49
49
  if (redisClient) {
50
50
  const values = await redisClient.hGetAll(collectionName);
51
51
  if (values) {
@@ -71,9 +71,9 @@ const setDefaults = async (obj, collectionName) => {
71
71
  }
72
72
  }
73
73
  if (_.isNil(o.meta.created) || o.meta.created === 0) {
74
- o.meta.created = now;
74
+ o.meta.created = new Date();
75
75
  }
76
- o.meta.modified = now;
76
+ o.meta.modified = new Date();
77
77
  if (_.isNil(o.id) || o.id === 0 || isEmptyObject(o.id)) {
78
78
  o.id = uuidGen();
79
79
  }
@@ -89,31 +89,10 @@ const updateMetadata = (docMeta, newDoc) => {
89
89
  docMeta.owners = newDoc.meta.owners;
90
90
  }
91
91
  docMeta.modified_by = newDoc.meta.modified_by;
92
- docMeta.modified = Date.now();
92
+ docMeta.modified = new Date();
93
93
  newDoc.meta = docMeta;
94
94
  return newDoc;
95
95
  };
96
- const decodeBufferObj = (document, bufferField) => {
97
- if (bufferField in document && !_.isEmpty(document[bufferField])) {
98
- const encodedBufferObj = document[bufferField].value;
99
- // By default it was encoded in utf8 so decoding by default from utf8
100
- let decodedMsg = Buffer.from(encodedBufferObj).toString();
101
- // store as object in DB
102
- decodedMsg = JSON.parse(decodedMsg);
103
- document[bufferField] = decodedMsg;
104
- }
105
- return document;
106
- };
107
- const encodeMsgObj = (document, bufferField) => {
108
- if (bufferField in document && document[bufferField]) {
109
- const decodedMsg = document[bufferField];
110
- // convert the Msg obj to Buffer Obj
111
- const encodedBufferObj = Buffer.from(JSON.stringify(decodedMsg));
112
- document[bufferField] = {};
113
- document[bufferField].value = encodedBufferObj;
114
- }
115
- return document;
116
- };
117
96
  /**
118
97
  * Resource API base provides functions for CRUD operations.
119
98
  */
@@ -129,51 +108,6 @@ class ResourcesAPIBase {
129
108
  this.collectionName = collectionName;
130
109
  this.edgeCfg = edgeCfg;
131
110
  this.graphName = graphName;
132
- this.updateJSON = (path, obj, secondsNanoToms = true) => {
133
- let fields = path.split('.');
134
- let result = obj;
135
- let j = 0;
136
- for (let i = 0, n = fields.length; i < n && result !== undefined; i++) {
137
- let field = fields[i];
138
- if (i === n - 1) {
139
- // reset value finally after iterating to the position (only if value already exists)
140
- if (result[field]) {
141
- if (secondsNanoToms && result[field]?.seconds) {
142
- let millis = result[field].seconds * 1000;
143
- millis += result[field]?.nanos / 1000000;
144
- result[field] = millis;
145
- }
146
- else {
147
- const seconds = result[field] / 1000;
148
- const nanos = (result[field] % 1000) * 1000000;
149
- result[field] = { seconds, nanos };
150
- }
151
- }
152
- }
153
- else {
154
- if (_.isArray(result[field])) {
155
- // till i < n concat new fields
156
- let newField;
157
- for (let k = i + 1; k < n; k++) {
158
- if (newField) {
159
- newField = newField + '.' + fields[k];
160
- }
161
- else {
162
- newField = fields[k];
163
- }
164
- }
165
- for (; j < result[field].length; j++) {
166
- // recurisve call to update each element if its an array
167
- this.updateJSON(newField, result[field][j], secondsNanoToms);
168
- }
169
- }
170
- else {
171
- // update object till final path is reached
172
- result = result[field];
173
- }
174
- }
175
- }
176
- };
177
111
  this.resourceName = collectionName.substring(0, collectionName.length - 1);
178
112
  if (!fieldHandlerConf) {
179
113
  return;
@@ -182,12 +116,12 @@ class ResourcesAPIBase {
182
116
  if (!redisClient) {
183
117
  redisClient = fieldHandlerConf.redisClient;
184
118
  }
185
- if (fieldHandlerConf.bufferField) {
186
- this.bufferField = fieldHandlerConf.bufferField;
119
+ if (fieldHandlerConf.bufferFields) {
120
+ this.bufferFields = fieldHandlerConf.bufferFields;
187
121
  }
188
122
  // config fix to be removed after ts-proto is used
189
- if (fieldHandlerConf.dateTimeField) {
190
- this.dateTimeField = fieldHandlerConf.dateTimeField;
123
+ if (fieldHandlerConf.timeStampFields) {
124
+ this.timeStampFields = fieldHandlerConf.timeStampFields;
191
125
  }
192
126
  if (fieldHandlerConf.requiredFields) {
193
127
  this.requiredFields = fieldHandlerConf.requiredFields;
@@ -237,17 +171,14 @@ class ResourcesAPIBase {
237
171
  search
238
172
  };
239
173
  let entities = await this.db.find(this.collectionName, filter, options);
240
- if (this.bufferField) {
174
+ if (this.bufferFields && entities?.length > 0) {
241
175
  // encode the msg obj back to buffer obj and send it back
242
- entities.forEach(element => {
243
- if (element[this.bufferField]) {
244
- element = encodeMsgObj(element, this.bufferField);
245
- return element;
246
- }
247
- });
176
+ entities = this.encodeOrDecode(entities, this.bufferFields, 'endcode');
177
+ }
178
+ if (this.timeStampFields && entities?.length > 0) {
179
+ // convert number to Date Object
180
+ entities = this.encodeOrDecode(entities, this.timeStampFields, 'convertMilisecToDateObj');
248
181
  }
249
- // config fix to be removed after ts-proto is used
250
- entities = this.convertmsToSecondsNanos(entities);
251
182
  return entities;
252
183
  }
253
184
  /**
@@ -257,7 +188,6 @@ class ResourcesAPIBase {
257
188
  */
258
189
  async create(documents) {
259
190
  const collection = this.collectionName;
260
- let toInsert = [];
261
191
  let result = [];
262
192
  try {
263
193
  let result = [];
@@ -267,22 +197,20 @@ class ResourcesAPIBase {
267
197
  documents = requiredFieldsResult.documents;
268
198
  result = requiredFieldsResult.result;
269
199
  }
270
- toInsert = await Promise.all(documents.map(async (doc) => {
271
- doc = await setDefaults(doc, collection);
272
- // decode the buffer and store it to DB
273
- if (this.bufferField) {
274
- return (decodeBufferObj(_.cloneDeep(doc), this.bufferField));
275
- }
276
- else {
277
- return doc;
278
- }
200
+ documents = await Promise.all(documents.map(async (doc) => {
201
+ return await setDefaults(doc, collection);
279
202
  }));
280
- // config fix to be removed after ts-proto is used
281
- documents = this.convertSecondsNanosToms(documents);
203
+ if (this.bufferFields && documents?.length > 0) {
204
+ documents = this.encodeOrDecode(documents, this.bufferFields, 'decode');
205
+ }
206
+ if (this.timeStampFields && documents?.length > 0) {
207
+ // convert Date Object to Number
208
+ documents = this.encodeOrDecode(documents, this.timeStampFields, 'convertDateObjToMilisec');
209
+ }
282
210
  if (this.isGraphDB(this.db)) {
283
211
  await this.db.createGraphDB(this.graphName);
284
212
  await this.db.addVertexCollection(collection);
285
- let createVertexResp = await this.db.createVertex(collection, this.bufferField ? toInsert : documents);
213
+ let createVertexResp = await this.db.createVertex(collection, documents);
286
214
  for (let document of documents) {
287
215
  if (this.edgeCfg && _.isArray(this.edgeCfg) && this.edgeCfg.length > 0) {
288
216
  for (let eachEdgeCfg of this.edgeCfg) {
@@ -317,8 +245,10 @@ class ResourcesAPIBase {
317
245
  else {
318
246
  result.push(createVertexResp);
319
247
  }
320
- // config fix to be removed after ts-proto is used
321
- result = this.convertmsToSecondsNanos(result);
248
+ if (this.timeStampFields && result?.length > 0) {
249
+ // convert number to Date Object
250
+ result = this.encodeOrDecode(result, this.timeStampFields, 'convertMilisecToDateObj');
251
+ }
322
252
  return result;
323
253
  }
324
254
  else {
@@ -326,12 +256,14 @@ class ResourcesAPIBase {
326
256
  if (!_.isEmpty(result)) {
327
257
  checkReqFieldResult = result;
328
258
  }
329
- result = await this.db.insert(collection, this.bufferField ? toInsert : documents);
259
+ result = await this.db.insert(collection, documents);
330
260
  if (!_.isEmpty(checkReqFieldResult)) {
331
261
  checkReqFieldResult.forEach((reqFieldResult) => result.push(reqFieldResult));
332
262
  }
333
- // config fix to be removed after ts-proto is used
334
- result = this.convertmsToSecondsNanos(result);
263
+ if (this.timeStampFields && result?.length > 0) {
264
+ // convert number to Date Object
265
+ result = this.encodeOrDecode(result, this.timeStampFields, 'convertMilisecToDateObj');
266
+ }
335
267
  return result;
336
268
  }
337
269
  }
@@ -448,7 +380,9 @@ class ResourcesAPIBase {
448
380
  let updateDocuments = [];
449
381
  let dispatch = [];
450
382
  dispatch = await Promise.all(documents.map(async (doc) => {
451
- decodeBufferObj(doc, this.bufferField);
383
+ if (this.bufferFields && doc) {
384
+ doc = this.encodeOrDecode([doc], this.bufferFields, 'decode')[0];
385
+ }
452
386
  let foundDocs;
453
387
  if (doc && doc.id) {
454
388
  foundDocs = await this.db.find(this.collectionName, { id: doc.id }, {
@@ -465,6 +399,10 @@ class ResourcesAPIBase {
465
399
  eventName = 'Created';
466
400
  }
467
401
  else {
402
+ // convert dateTimeStamp fields
403
+ if (this.timeStampFields) {
404
+ foundDocs = this.encodeOrDecode(foundDocs, this.timeStampFields, 'convertMilisecToDateObj');
405
+ }
468
406
  // update
469
407
  const dbDoc = foundDocs[0];
470
408
  updateMetadata(dbDoc.meta, doc);
@@ -475,20 +413,20 @@ class ResourcesAPIBase {
475
413
  return events.emit(`${resourceName}${eventName}`, doc);
476
414
  }
477
415
  }));
478
- if (createDocuments.length > 0) {
479
- createDocuments = this.convertSecondsNanosToms(createDocuments);
416
+ if (createDocuments?.length > 0) {
480
417
  createDocsResult = await this.create(createDocuments);
481
418
  }
482
- if (updateDocuments.length > 0) {
483
- updateDocuments = this.convertSecondsNanosToms(updateDocuments);
419
+ if (updateDocuments?.length > 0) {
484
420
  updateDocsResult = await this.update(updateDocuments);
485
421
  }
486
422
  result = _.union(createDocuments, updateDocuments);
487
- // config fix to be removed after ts-proto is used
488
- result = this.convertmsToSecondsNanos(result);
423
+ if (this.timeStampFields && result?.length > 0) {
424
+ // convert number to Date Object
425
+ result = this.encodeOrDecode(result, this.timeStampFields, 'convertMilisecToDateObj');
426
+ }
489
427
  await Promise.all(dispatch);
490
- if (this.bufferField) {
491
- return _.map(result, doc => encodeMsgObj(doc, this.bufferField));
428
+ if (this.bufferFields && result?.length > 0) {
429
+ result = this.encodeOrDecode(result, this.bufferFields, 'encode');
492
430
  }
493
431
  return result;
494
432
  }
@@ -513,10 +451,10 @@ class ResourcesAPIBase {
513
451
  try {
514
452
  const collectionName = this.collectionName;
515
453
  let docsWithUpMetadata = await Promise.all(documents.map(async (doc) => {
516
- if (this.bufferField) {
517
- doc = decodeBufferObj(_.cloneDeep(doc), this.bufferField);
454
+ if (this.bufferFields && doc) {
455
+ doc = this.encodeOrDecode([_.cloneDeep(doc)], this.bufferFields, 'decode')[0];
518
456
  }
519
- const foundDocs = await this.db.find(collectionName, { id: doc.id });
457
+ let foundDocs = await this.db.find(collectionName, { id: doc.id });
520
458
  let dbDoc;
521
459
  if (foundDocs && foundDocs.length === 1) {
522
460
  dbDoc = foundDocs[0];
@@ -572,12 +510,15 @@ class ResourcesAPIBase {
572
510
  }
573
511
  return doc;
574
512
  }));
575
- // config fix to be removed after ts-proto is used
576
- docsWithUpMetadata = this.convertSecondsNanosToms(docsWithUpMetadata);
513
+ if (this.timeStampFields && docsWithUpMetadata?.length > 0) {
514
+ docsWithUpMetadata = this.encodeOrDecode(docsWithUpMetadata, this.timeStampFields, 'convertDateObjToMilisec');
515
+ }
577
516
  updateResponse = await this.db.update(collectionName, docsWithUpMetadata);
578
- updateResponse = this.convertmsToSecondsNanos(updateResponse);
579
- if (this.bufferField) {
580
- updateResponse = _.map(updateResponse, patch => encodeMsgObj(patch, this.bufferField));
517
+ if (this.timeStampFields && updateResponse?.length > 0) {
518
+ updateResponse = this.encodeOrDecode(updateResponse, this.timeStampFields, 'convertMilisecToDateObj');
519
+ }
520
+ if (this.bufferFields && updateResponse?.length > 0) {
521
+ updateResponse = this.encodeOrDecode(updateResponse, this.bufferFields, 'encode');
581
522
  }
582
523
  return updateResponse;
583
524
  }
@@ -591,35 +532,12 @@ class ResourcesAPIBase {
591
532
  return updateResponse;
592
533
  }
593
534
  }
594
- convertSecondsNanosToms(documents) {
595
- documents?.forEach(doc => {
596
- this.dateTimeField?.forEach((field) => {
597
- if (field.indexOf('.')) {
598
- this.updateJSON(field, doc, true);
599
- }
600
- else if (field && doc[field]?.seconds) {
601
- // convert seconds and nano seconds to unix epoch date time in mili seconds
602
- let millis = doc[field].seconds * 1000;
603
- millis += doc[field]?.nanos / 1000000;
604
- doc[field] = millis;
605
- }
606
- });
607
- });
608
- return documents;
609
- }
610
- convertmsToSecondsNanos(documents) {
611
- documents?.forEach(doc => {
612
- this.dateTimeField?.forEach(field => {
613
- if (field.indexOf('.')) {
614
- this.updateJSON(field, doc, false);
615
- }
616
- else if (doc && doc[field]) {
617
- const seconds = doc[field] / 1000;
618
- const nanos = (doc[field] % 1000) * 1000000;
619
- doc[field] = { seconds, nanos };
620
- }
621
- });
622
- });
535
+ encodeOrDecode(documents, fieldPaths, fieldHanlder) {
536
+ for (let doc of documents) {
537
+ for (let fieldPath of fieldPaths) {
538
+ doc = (0, utils_1.fieldHandler)(doc, fieldPath, fieldHanlder);
539
+ }
540
+ }
623
541
  return documents;
624
542
  }
625
543
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ResourcesAPI.js","sourceRoot":"","sources":["../../src/core/ResourcesAPI.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ResourcesAPI.js","sourceRoot":"","sources":["../../src/core/ResourcesAPI.ts"],"names":[],"mappings":"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"}
@@ -37,14 +37,18 @@ export interface BaseDocument {
37
37
  [key: string]: any;
38
38
  }
39
39
  export interface DocumentMetadata {
40
- created?: number;
41
- modified?: number;
40
+ created?: any;
41
+ modified?: any;
42
42
  modified_by?: string;
43
43
  owners: {
44
44
  id?: string;
45
45
  value?: string;
46
46
  }[];
47
47
  }
48
+ export interface DateTimeConfig {
49
+ fields: string[];
50
+ entities: string[];
51
+ }
48
52
  export declare enum Direction {
49
53
  OUTBOUND = "OUTBOUND",
50
54
  INBOUND = "INBOUND"
@@ -12,7 +12,7 @@ var FilterOperation;
12
12
  FilterOperation[FilterOperation["iLike"] = 6] = "iLike";
13
13
  FilterOperation[FilterOperation["in"] = 7] = "in";
14
14
  FilterOperation[FilterOperation["neq"] = 8] = "neq";
15
- })(FilterOperation = exports.FilterOperation || (exports.FilterOperation = {}));
15
+ })(FilterOperation || (exports.FilterOperation = FilterOperation = {}));
16
16
  var FilterValueType;
17
17
  (function (FilterValueType) {
18
18
  FilterValueType[FilterValueType["STRING"] = 0] = "STRING";
@@ -20,15 +20,15 @@ var FilterValueType;
20
20
  FilterValueType[FilterValueType["BOOLEAN"] = 2] = "BOOLEAN";
21
21
  FilterValueType[FilterValueType["DATE"] = 3] = "DATE";
22
22
  FilterValueType[FilterValueType["ARRAY"] = 4] = "ARRAY";
23
- })(FilterValueType = exports.FilterValueType || (exports.FilterValueType = {}));
23
+ })(FilterValueType || (exports.FilterValueType = FilterValueType = {}));
24
24
  var OperatorType;
25
25
  (function (OperatorType) {
26
26
  OperatorType[OperatorType["and"] = 0] = "and";
27
27
  OperatorType[OperatorType["or"] = 1] = "or";
28
- })(OperatorType = exports.OperatorType || (exports.OperatorType = {}));
28
+ })(OperatorType || (exports.OperatorType = OperatorType = {}));
29
29
  var Direction;
30
30
  (function (Direction) {
31
31
  Direction["OUTBOUND"] = "OUTBOUND";
32
32
  Direction["INBOUND"] = "INBOUND";
33
- })(Direction = exports.Direction || (exports.Direction = {}));
33
+ })(Direction || (exports.Direction = Direction = {}));
34
34
  //# sourceMappingURL=interfaces.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/core/interfaces.ts"],"names":[],"mappings":";;;AAAA,IAAY,eAUX;AAVD,WAAY,eAAe;IACzB,iDAAM,CAAA;IACN,iDAAM,CAAA;IACN,mDAAO,CAAA;IACP,iDAAM,CAAA;IACN,mDAAO,CAAA;IACP,2DAAW,CAAA;IACX,uDAAS,CAAA;IACT,iDAAM,CAAA;IACN,mDAAO,CAAA;AACT,CAAC,EAVW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAU1B;AAED,IAAY,eAMX;AAND,WAAY,eAAe;IACzB,yDAAU,CAAA;IACV,yDAAU,CAAA;IACV,2DAAW,CAAA;IACX,qDAAQ,CAAA;IACR,uDAAS,CAAA;AACX,CAAC,EANW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAM1B;AAED,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,6CAAO,CAAA;IACP,2CAAM,CAAA;AACR,CAAC,EAHW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAGvB;AA4BD,IAAY,SAGX;AAHD,WAAY,SAAS;IACnB,kCAAqB,CAAA;IACrB,gCAAmB,CAAA;AACrB,CAAC,EAHW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAGpB"}
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/core/interfaces.ts"],"names":[],"mappings":";;;AAAA,IAAY,eAUX;AAVD,WAAY,eAAe;IACzB,iDAAM,CAAA;IACN,iDAAM,CAAA;IACN,mDAAO,CAAA;IACP,iDAAM,CAAA;IACN,mDAAO,CAAA;IACP,2DAAW,CAAA;IACX,uDAAS,CAAA;IACT,iDAAM,CAAA;IACN,mDAAO,CAAA;AACT,CAAC,EAVW,eAAe,+BAAf,eAAe,QAU1B;AAED,IAAY,eAMX;AAND,WAAY,eAAe;IACzB,yDAAU,CAAA;IACV,yDAAU,CAAA;IACV,2DAAW,CAAA;IACX,qDAAQ,CAAA;IACR,uDAAS,CAAA;AACX,CAAC,EANW,eAAe,+BAAf,eAAe,QAM1B;AAED,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,6CAAO,CAAA;IACP,2CAAM,CAAA;AACR,CAAC,EAHW,YAAY,4BAAZ,YAAY,QAGvB;AAiCD,IAAY,SAGX;AAHD,WAAY,SAAS;IACnB,kCAAqB,CAAA;IACrB,gCAAmB,CAAA;AACrB,CAAC,EAHW,SAAS,yBAAT,SAAS,QAGpB"}
@@ -0,0 +1 @@
1
+ export declare const fieldHandler: (obj: any, fieldPath: string, fieldHandlerType: string) => any;
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.fieldHandler = void 0;
27
+ const _ = __importStar(require("lodash"));
28
+ const marshallObj = (val) => {
29
+ try {
30
+ return {
31
+ type_url: '',
32
+ value: Buffer.from(JSON.stringify(val))
33
+ };
34
+ }
35
+ catch (error) {
36
+ // throw error and it is handled and logged in ServiceBase functions
37
+ throw error;
38
+ }
39
+ };
40
+ const updateObject = (obj, path, value, fieldHandlerType) => {
41
+ try {
42
+ if (value && fieldHandlerType === 'encode') {
43
+ const marshalled = marshallObj(value);
44
+ _.set(obj, path, marshalled);
45
+ }
46
+ else if (value?.value && fieldHandlerType === 'decode') {
47
+ let unmarshalled = JSON.parse(value.value.toString());
48
+ _.set(obj, path, unmarshalled);
49
+ }
50
+ else if (value && fieldHandlerType == 'convertDateObjToMilisec' && value instanceof Date) {
51
+ _.set(obj, path, value.getTime());
52
+ }
53
+ else if (value && fieldHandlerType == 'convertMilisecToDateObj' && typeof (value) == 'number') {
54
+ _.set(obj, path, new Date(value));
55
+ }
56
+ }
57
+ catch (error) {
58
+ // rethrow the error, this is caught and logged in ResourceAPI
59
+ throw error;
60
+ }
61
+ };
62
+ const setNestedPath = (object, fieldPath, fieldHandlerType) => {
63
+ const prefix = fieldPath?.substring(0, fieldPath.indexOf('.['));
64
+ const suffix = fieldPath?.substring(fieldPath.indexOf('].') + 2);
65
+ let setRecursive = false;
66
+ // recursive check if the sub suffix again contains an array index
67
+ if (suffix.indexOf('.[') > 0) {
68
+ setRecursive = true;
69
+ }
70
+ if (prefix && suffix) {
71
+ let array = _.get(object, prefix);
72
+ array.forEach((obj) => {
73
+ let fieldExists = _.get(obj, suffix);
74
+ if (fieldExists) {
75
+ updateObject(obj, suffix, fieldExists, fieldHandlerType);
76
+ }
77
+ // recursive call
78
+ if (fieldExists && setRecursive) {
79
+ setNestedPath(obj, suffix, fieldHandlerType);
80
+ }
81
+ });
82
+ }
83
+ };
84
+ const baseGet = (object, path) => {
85
+ let index = 0;
86
+ const length = path.length;
87
+ while (object != null && index < length) {
88
+ object = object[path[index++]];
89
+ }
90
+ return (index && index == length) ? object : undefined;
91
+ };
92
+ const fieldHandler = (obj, fieldPath, fieldHandlerType) => {
93
+ // fieldList contains the split Path to individual fields for fieldPath
94
+ // and the baseGet breaks when the first field do not exist
95
+ // ex: if fieldPath is `a.[0].b.c` then dotFieldPath is `a.0.b.c`
96
+ let dotFieldPath = fieldPath.split('.[').join('.');
97
+ dotFieldPath = dotFieldPath.split('].').join('.');
98
+ dotFieldPath = dotFieldPath.split('.');
99
+ const array = fieldPath.includes('[');
100
+ let fieldExists = baseGet(obj, dotFieldPath);
101
+ // only if the configured field exist check recursively for all entries in object
102
+ if (fieldExists && array) {
103
+ // use setNestedPath
104
+ setNestedPath(obj, fieldPath, fieldHandlerType);
105
+ }
106
+ else if (fieldExists) {
107
+ // use normal set and return
108
+ updateObject(obj, fieldPath, fieldExists, fieldHandlerType);
109
+ }
110
+ return obj;
111
+ };
112
+ exports.fieldHandler = fieldHandler;
113
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/core/utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@restorecommerce/resource-base-interface",
3
- "version": "1.2.0",
3
+ "version": "1.2.2",
4
4
  "description": "Restorecommerce Resource Base Interface",
5
5
  "main": "lib/index.js",
6
6
  "author": "n-fuse GmbH",
@@ -17,11 +17,11 @@
17
17
  "interface"
18
18
  ],
19
19
  "dependencies": {
20
- "@restorecommerce/chassis-srv": "^1.2.1",
21
- "@restorecommerce/grpc-client": "^2.0.1",
22
- "@restorecommerce/kafka-client": "^1.0.7",
23
- "@restorecommerce/rc-grpc-clients": "^3.0.1",
24
- "@restorecommerce/service-config": "^1.0.5",
20
+ "@restorecommerce/chassis-srv": "^1.2.4",
21
+ "@restorecommerce/grpc-client": "^2.0.2",
22
+ "@restorecommerce/kafka-client": "^1.0.14",
23
+ "@restorecommerce/rc-grpc-clients": "^4.1.1",
24
+ "@restorecommerce/service-config": "^1.0.6",
25
25
  "lodash": "^4.17.21",
26
26
  "redis": "^4.6.7"
27
27
  },
@@ -29,12 +29,12 @@
29
29
  "@types/lodash": "^4.14.195",
30
30
  "@types/mocha": "^10.0.1",
31
31
  "@types/redis": "^4.0.11",
32
- "@typescript-eslint/eslint-plugin": "^5.59.8",
33
- "@typescript-eslint/eslint-plugin-tslint": "^5.59.8",
34
- "@typescript-eslint/parser": "^5.59.8",
35
- "arangojs": "^8.3.0",
32
+ "@typescript-eslint/eslint-plugin": "^6.0.0",
33
+ "@typescript-eslint/eslint-plugin-tslint": "^6.0.0",
34
+ "@typescript-eslint/parser": "^6.0.0",
35
+ "arangojs": "^8.4.0",
36
36
  "cross-env": "^7.0.3",
37
- "eslint": "^8.41.0",
37
+ "eslint": "^8.44.0",
38
38
  "eslint-plugin-prefer-arrow-functions": "^3.1.4",
39
39
  "mocha": "^10.2.0",
40
40
  "npm-run-all": "^4.1.5",
@@ -44,7 +44,7 @@
44
44
  "sleep": "^6.3.0",
45
45
  "ts-node": "^10.9.1",
46
46
  "tslint": "^6.1.3",
47
- "typescript": "^5.0.4"
47
+ "typescript": "^5.1.6"
48
48
  },
49
49
  "scripts": {
50
50
  "test": "npm run lint && nyc npm run mocha",
@@ -63,4 +63,4 @@
63
63
  "engines": {
64
64
  "node": ">= 12.0.0"
65
65
  }
66
- }
66
+ }