@intuitionrobotics/db-api-generator 0.47.58 → 1.0.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.
Files changed (48) hide show
  1. package/LICENSE +3 -0
  2. package/{app-backend → dist/app-backend}/BaseDB_ApiGenerator.d.ts +11 -10
  3. package/dist/app-backend/BaseDB_ApiGenerator.d.ts.map +1 -0
  4. package/dist/app-backend/BaseDB_ApiGenerator.js +477 -0
  5. package/dist/app-backend/BaseDB_ApiGenerator.js.map +1 -0
  6. package/{app-backend → dist/app-backend}/apis.d.ts +8 -7
  7. package/dist/app-backend/apis.d.ts.map +1 -0
  8. package/dist/app-backend/apis.js +68 -0
  9. package/dist/app-backend/apis.js.map +1 -0
  10. package/{app-frontend → dist/app-frontend}/BaseDB_ApiGeneratorCaller.d.ts +7 -6
  11. package/dist/app-frontend/BaseDB_ApiGeneratorCaller.d.ts.map +1 -0
  12. package/dist/app-frontend/BaseDB_ApiGeneratorCaller.js +164 -0
  13. package/dist/app-frontend/BaseDB_ApiGeneratorCaller.js.map +1 -0
  14. package/dist/backend.d.ts +3 -0
  15. package/dist/backend.d.ts.map +1 -0
  16. package/dist/backend.js +21 -0
  17. package/dist/backend.js.map +1 -0
  18. package/dist/frontend.d.ts +2 -0
  19. package/dist/frontend.d.ts.map +1 -0
  20. package/dist/frontend.js +3 -0
  21. package/dist/frontend.js.map +1 -0
  22. package/dist/index.d.ts +2 -0
  23. package/dist/index.d.ts.map +1 -0
  24. package/dist/index.js +2 -0
  25. package/dist/index.js.map +1 -0
  26. package/{shared → dist/shared}/types.d.ts +3 -2
  27. package/dist/shared/types.d.ts.map +1 -0
  28. package/dist/shared/types.js +31 -0
  29. package/dist/shared/types.js.map +1 -0
  30. package/dist/tsconfig.tsbuildinfo +1 -0
  31. package/package.json +63 -14
  32. package/app-backend/BaseDB_ApiGenerator.js +0 -535
  33. package/app-backend/BaseDB_ApiGenerator.js.map +0 -1
  34. package/app-backend/apis.js +0 -93
  35. package/app-backend/apis.js.map +0 -1
  36. package/app-frontend/BaseDB_ApiGeneratorCaller.js +0 -187
  37. package/app-frontend/BaseDB_ApiGeneratorCaller.js.map +0 -1
  38. package/backend.d.ts +0 -2
  39. package/backend.js +0 -37
  40. package/backend.js.map +0 -1
  41. package/frontend.d.ts +0 -1
  42. package/frontend.js +0 -18
  43. package/frontend.js.map +0 -1
  44. package/index.d.ts +0 -1
  45. package/index.js +0 -18
  46. package/index.js.map +0 -1
  47. package/shared/types.js +0 -33
  48. package/shared/types.js.map +0 -1
@@ -1,535 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.BaseDB_ApiGenerator = exports.validator_InternationalPhoneNumber = exports.validator_LowerUpperStringWithDashesAndUnderscore = exports.validator_LowerUpperStringWithSpaces = exports.validator_LowercaseStringWithDashes = exports.validateNameWithDashesAndDots = exports.validator_JavaObjectMemberName = exports.validateStringAndNumbersWithDashes = exports.validateStringWithDashes = exports.validateOptionalId = exports.validateUniqueId = exports.validateGeneralUrl = exports.validateBucketUrl = exports.validateEmail = exports.validateId = void 0;
13
- const ts_common_1 = require("@intuitionrobotics/ts-common");
14
- const apis_1 = require("./apis");
15
- const backend_1 = require("@intuitionrobotics/thunderstorm/backend");
16
- const backend_2 = require("@intuitionrobotics/firebase/backend");
17
- const types_1 = require("../shared/types");
18
- const idLength = 32;
19
- const validateId = (length, mandatory = true) => (0, ts_common_1.validateRegexp)(new RegExp(`^[0-9a-f]{${length}}$`), mandatory);
20
- exports.validateId = validateId;
21
- exports.validateEmail = ts_common_1.validateEmail;
22
- const validateBucketUrl = (mandatory) => (0, ts_common_1.validateRegexp)(/gs?:\/\/[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,4}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/, mandatory);
23
- exports.validateBucketUrl = validateBucketUrl;
24
- const validateGeneralUrl = (mandatory) => (0, ts_common_1.validateRegexp)(/[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,4}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/, mandatory);
25
- exports.validateGeneralUrl = validateGeneralUrl;
26
- exports.validateUniqueId = (0, exports.validateId)(idLength);
27
- exports.validateOptionalId = (0, exports.validateId)(idLength, false);
28
- exports.validateStringWithDashes = (0, ts_common_1.validateRegexp)(/^[A-Za-z-]+$/);
29
- exports.validateStringAndNumbersWithDashes = (0, ts_common_1.validateRegexp)(/^[0-9A-Za-z-]+$/);
30
- exports.validator_JavaObjectMemberName = (0, ts_common_1.validateRegexp)(/^[a-z][a-zA-Z0-9]+$/);
31
- exports.validateNameWithDashesAndDots = (0, ts_common_1.validateRegexp)(/^[a-z-.]+$/);
32
- exports.validator_LowercaseStringWithDashes = (0, ts_common_1.validateRegexp)(/^[a-z-.]+$/);
33
- exports.validator_LowerUpperStringWithSpaces = (0, ts_common_1.validateRegexp)(/^[A-Za-z ]+$/);
34
- exports.validator_LowerUpperStringWithDashesAndUnderscore = (0, ts_common_1.validateRegexp)(/^[A-Za-z-_]+$/);
35
- exports.validator_InternationalPhoneNumber = (0, ts_common_1.validateRegexp)(/^\+(?:[0-9] ?){6,14}[0-9]$/);
36
- /**
37
- * An abstract base class used for implementing CRUD operations on a specific collection.
38
- *
39
- * By default, it exposes API endpoints for creating, deleting, updating, querying and querying for unique document.
40
- */
41
- class BaseDB_ApiGenerator extends ts_common_1.Module {
42
- constructor(collectionName, validator, itemName, moduleName) {
43
- super(moduleName);
44
- // @ts-ignore
45
- this.setDefaultConfig({ itemName, collectionName, externalFilterKeys: ["_id"], lockKeys: ["_id"] });
46
- this.validator = validator;
47
- }
48
- setValidator(validator) {
49
- this.validator = validator;
50
- }
51
- __onFirestoreBackupSchedulerAct() {
52
- return [{
53
- backupQuery: this.resolveBackupQuery(),
54
- collection: this.collection,
55
- keepInterval: 7 * ts_common_1.Day,
56
- interval: ts_common_1.Day,
57
- moduleKey: this.config.collectionName
58
- }];
59
- }
60
- resolveBackupQuery() {
61
- return { where: {} };
62
- }
63
- // this.setExternalUniqueKeys(["accessLevelIds"]);
64
- /**
65
- * Sets the external unique keys. External keys are the attributes of a document that must be unique inside the
66
- * collection. Default is `_id`.
67
- *
68
- * @remarks
69
- * You can only update the external unique keys before the module is initialized, preferably from its constructor.
70
- *
71
- * @param keys - The external unique keys.
72
- *
73
- * @returns
74
- * The external filter keys.
75
- */
76
- setExternalUniqueKeys(keys) {
77
- if (this.initiated)
78
- throw new ts_common_1.BadImplementationException("You can only update the 'externalUniqueKeys' before the module was initialized.. preferably from its constructor");
79
- return this.config.externalFilterKeys = keys;
80
- }
81
- /**
82
- * Sets the lock keys. Lock keys are the attributes of a document that must not be changed during a patch.
83
- * Thr property `_id` is always part of the lock keys.
84
- *
85
- * @remarks
86
- * You can only update the lock keys before the module is initialized, preferably from its constructor.
87
- *
88
- * @param keys - The lock keys.
89
- *
90
- * @returns
91
- * The lock keys.
92
- */
93
- setLockKeys(keys) {
94
- if (this.initiated)
95
- throw new ts_common_1.BadImplementationException("You can only update the 'lockKeys' before the module was initialized.. preferably from its constructor");
96
- return this.config.lockKeys = (0, ts_common_1.filterDuplicates)([...keys,
97
- "_id"]);
98
- }
99
- getCollectionName() {
100
- return this.config.collectionName;
101
- }
102
- getItemName() {
103
- return this.config.itemName;
104
- }
105
- /**
106
- * Executed during the initialization of the module.
107
- * The collection reference is set in this method.
108
- */
109
- init() {
110
- var _a;
111
- const firestore = backend_2.FirebaseModule.createAdminSession((_a = this.config) === null || _a === void 0 ? void 0 : _a.projectId).getFirestore();
112
- // @ts-ignore
113
- this.collection = firestore.getCollection(this.config.collectionName, this.config.externalFilterKeys);
114
- }
115
- assertExternalQueryUnique(instance, transaction) {
116
- return __awaiter(this, void 0, void 0, function* () {
117
- const dbInstance = yield transaction.queryItem(this.collection, instance);
118
- if (!dbInstance) {
119
- const uniqueQuery = backend_2.FirestoreInterface.buildUniqueQuery(this.collection, instance);
120
- throw new backend_1.ApiException(404, `Could not find ${this.config.itemName} with unique query '${(0, ts_common_1.__stringify)(uniqueQuery)}'`);
121
- }
122
- return dbInstance;
123
- });
124
- }
125
- /**
126
- * Asserts the uniqueness of an instance in two steps:
127
- * - Executes `this.preUpsertProcessing`.
128
- * - Asserts uniqueness based on the internal filters.
129
- *
130
- * @param transaction - The transaction object.
131
- * @param instance - The document for which the uniqueness assertion will occur.
132
- */
133
- assertUniqueness(transaction, instance, request) {
134
- return __awaiter(this, void 0, void 0, function* () {
135
- yield this.preUpsertProcessing(transaction, instance, request);
136
- const uniqueQueries = this.internalFilter(instance);
137
- if (uniqueQueries.length === 0)
138
- return;
139
- const dbInstances = yield Promise.all(uniqueQueries.map(uniqueQuery => {
140
- return transaction.queryUnique(this.collection, { where: uniqueQuery });
141
- }));
142
- for (const idx in dbInstances) {
143
- const dbInstance = dbInstances[idx];
144
- if (!dbInstance || dbInstance._id === instance._id)
145
- continue;
146
- const query = uniqueQueries[idx];
147
- const message = (0, ts_common_1._keys)(query).reduce((carry, key) => {
148
- return carry + "\n" + `${String(key)}: ${query[key]}`;
149
- }, `${this.config.itemName} uniqueness violation. There is already a document with`);
150
- this.logWarning(message);
151
- throw new backend_1.ApiException(422, message);
152
- }
153
- });
154
- }
155
- /**
156
- * Runs the module's validator for the instance.
157
- *
158
- * @param instance - The object to be validated.
159
- *
160
- * @throws `ApiException` for bad implementation or invalid input.
161
- */
162
- validateImpl(instance) {
163
- try {
164
- (0, ts_common_1.validate)(instance, this.validator);
165
- }
166
- catch (e) {
167
- const badImplementation = (0, ts_common_1.isErrorOfType)(e, ts_common_1.BadImplementationException);
168
- if (badImplementation)
169
- throw new backend_1.ApiException(500, badImplementation.message);
170
- const error = (0, ts_common_1.isErrorOfType)(e, ts_common_1.ValidationException);
171
- if (error) {
172
- const errorBody = { type: types_1.ErrorKey_BadInput, body: { path: error.path, input: error.input } };
173
- throw new backend_1.ApiException(400, error.message).setErrorBody(errorBody);
174
- }
175
- throw e;
176
- }
177
- }
178
- /**
179
- * Override this method to return a list of "where" queries that dictate uniqueness inside the collection.
180
- * Example return value: [{attribute1: item.attribute1, attribute2: item.attribute2}].
181
- *
182
- * @param item - The DB entry that will be used.
183
- */
184
- internalFilter(item) {
185
- return [];
186
- }
187
- /**
188
- * Override this method to customize the assertions that should be done before the insertion of the document to the DB.
189
- *
190
- * @param transaction - The transaction object.
191
- * @param dbInstance - The DB entry for which the uniqueness is being asserted.
192
- */
193
- preUpsertProcessing(transaction, dbInstance, request) {
194
- return __awaiter(this, void 0, void 0, function* () {
195
- });
196
- }
197
- /**
198
- * Override this method to provide actions or assertions to be executed before the deletion happens.
199
- *
200
- * Currently executed only before `deleteUnique()`.
201
- *
202
- * @param transaction - The transaction object
203
- * @param dbInstance - The DB entry that is going to be deleted.
204
- */
205
- assertDeletion(transaction, dbInstance, request) {
206
- return __awaiter(this, void 0, void 0, function* () {
207
- return (yield this.assertDeletion_Read(transaction, dbInstance, request))();
208
- });
209
- }
210
- assertDeletion_Read(transaction, dbInstance, request) {
211
- return __awaiter(this, void 0, void 0, function* () {
212
- return () => __awaiter(this, void 0, void 0, function* () {
213
- });
214
- });
215
- }
216
- /**
217
- * A wrapper of the collections's `runInTransaction`.
218
- *
219
- * @param processor - The transaction's processor.
220
- *
221
- * @returns
222
- * A promise of the result of the `processor`.
223
- */
224
- runInTransaction(processor) {
225
- return __awaiter(this, void 0, void 0, function* () {
226
- return this.collection.runInTransaction(processor);
227
- });
228
- }
229
- // @ts-ignore
230
- deleteCollection() {
231
- return __awaiter(this, void 0, void 0, function* () {
232
- yield this.collection.deleteAll();
233
- });
234
- }
235
- /**
236
- * Inserts the `instance` using the `transaction` object.
237
- *
238
- * @param transaction - The transaction object.
239
- * @param instance - The object to be inserted.
240
- * @param request - The request in order to possibly obtain more info.
241
- *
242
- * @returns
243
- * A promise of the document that was inserted.
244
- */
245
- // private async createImpl(transaction: FirestoreTransaction, instance: DBType, request?: ExpressRequest): Promise<DBType> {
246
- // return (await this.createImpl_Read(transaction, instance, request))()
247
- // };
248
- createImpl_Read(transaction, instance, request) {
249
- return __awaiter(this, void 0, void 0, function* () {
250
- yield this.validateImpl(instance);
251
- yield this.assertUniqueness(transaction, instance, request);
252
- return () => transaction.insert(this.collection, instance);
253
- });
254
- }
255
- ;
256
- /**
257
- * Upserts the `instance` using a transaction, after validating it and asserting uniqueness.
258
- *
259
- * @param instance - The object to be upserted.
260
- * @param transaction - OPTIONAL transaction to perform the upsert operation on
261
- * @param request - The request in order to possibly obtain more info.
262
- *
263
- * @returns
264
- * A promise of the document that was upserted.
265
- */
266
- upsert(instance, transaction, request) {
267
- return __awaiter(this, void 0, void 0, function* () {
268
- const processor = (_transaction) => __awaiter(this, void 0, void 0, function* () {
269
- return (yield this.upsert_Read(instance, _transaction, request))();
270
- });
271
- if (transaction)
272
- return processor(transaction);
273
- return this.collection.runInTransaction(processor);
274
- });
275
- }
276
- upsert_Read(instance, transaction, request) {
277
- return __awaiter(this, void 0, void 0, function* () {
278
- if (instance._id === undefined)
279
- return this.createImpl_Read(transaction, Object.assign(Object.assign({}, instance), { _id: (0, ts_common_1.generateHex)(idLength) }), request);
280
- return this.upsertImpl_Read(transaction, instance, request);
281
- });
282
- }
283
- /**
284
- * Upserts a set of objects. Batching is used to circumvent firestore limitations on the number of objects.
285
- *
286
- * @param instances - The objects to be upserted.
287
- * @param request - The request in order to possibly obtain more info.
288
- *
289
- * @returns
290
- * A promise of an array of documents that were upserted.
291
- */
292
- upsertAll_Batched(instances, request) {
293
- return __awaiter(this, void 0, void 0, function* () {
294
- return (0, ts_common_1.batchAction)(instances, 500, (chunked) => __awaiter(this, void 0, void 0, function* () { return this.upsertAll(chunked, undefined, request); }));
295
- });
296
- }
297
- /**
298
- * Upserts the `dbInstances` using the `transaction` object.
299
- *
300
- * @param transaction - The transaction object.
301
- * @param instances - The instances to update.
302
- * @param request - The request in order to possibly obtain more info.
303
- *
304
- * @throws `BadImplementationException` when the instances are more than 500.
305
- *
306
- * @returns
307
- * A promise of the array of documents that were upserted.
308
- */
309
- upsertAll(instances, transaction, request) {
310
- return __awaiter(this, void 0, void 0, function* () {
311
- if (instances.length > 500) {
312
- if (transaction)
313
- throw new ts_common_1.BadImplementationException('Firestore transaction supports maximum 500 at a time');
314
- return this.upsertAll_Batched(instances, request);
315
- }
316
- const processor = (_transaction) => __awaiter(this, void 0, void 0, function* () {
317
- const writes = yield Promise.all(yield this.upsertAllImpl_Read(instances, _transaction, request));
318
- return writes.map(write => write());
319
- });
320
- if (transaction)
321
- return processor(transaction);
322
- return this.collection.runInTransaction(processor);
323
- });
324
- }
325
- upsertAllImpl_Read(instances, transaction, request) {
326
- return __awaiter(this, void 0, void 0, function* () {
327
- const actions = [];
328
- instances.reduce((carry, instance) => {
329
- (0, ts_common_1.addItemToArray)(carry, this.upsert_Read(instance, transaction, request));
330
- return carry;
331
- }, actions);
332
- return Promise.all(actions);
333
- });
334
- }
335
- /**
336
- * Upserts the `dbInstance` using the `transaction` transaction object.
337
- *
338
- * @param transaction - The transaction object.
339
- * @param dbInstance - The object to be upserted.
340
- * @param request - The request in order to possibly obtain more info.
341
- *
342
- * @returns
343
- * A promise of the document that was upserted.
344
- */
345
- upsertImpl(transaction, dbInstance, request) {
346
- return __awaiter(this, void 0, void 0, function* () {
347
- return (yield this.upsertImpl_Read(transaction, dbInstance, request))();
348
- });
349
- }
350
- ;
351
- upsertImpl_Read(transaction, dbInstance, request) {
352
- return __awaiter(this, void 0, void 0, function* () {
353
- yield this.validateImpl(dbInstance);
354
- yield this.assertUniqueness(transaction, dbInstance, request);
355
- return transaction.upsert_Read(this.collection, dbInstance);
356
- });
357
- }
358
- ;
359
- /**
360
- * Deletes a unique document based on its `_id`. Uses a transaction, after deletion assertions occur.
361
- *
362
- * @param _id - The _id of the object to be deleted.
363
- * @param transaction
364
- * @param request - The request in order to possibly obtain more info.
365
- *
366
- * @throws `ApiException` when the document doesn't exist in the collection.
367
- *
368
- * @returns
369
- * A promise of the document that was deleted.
370
- */
371
- deleteUnique(_id, transaction, request) {
372
- return __awaiter(this, void 0, void 0, function* () {
373
- if (!_id)
374
- throw new ts_common_1.BadImplementationException(`No _id for deletion provided.`);
375
- const processor = (_transaction) => __awaiter(this, void 0, void 0, function* () {
376
- const write = yield this.deleteUnique_Read(_id, _transaction, request);
377
- if (!write)
378
- throw new backend_1.ApiException(404, `Could not find ${this.config.itemName} with unique id: ${_id}`);
379
- return write();
380
- });
381
- if (transaction)
382
- return processor(transaction);
383
- return this.collection.runInTransaction(processor);
384
- });
385
- }
386
- deleteUnique_Read(_id, transaction, request) {
387
- return __awaiter(this, void 0, void 0, function* () {
388
- if (!_id)
389
- throw new ts_common_1.BadImplementationException(`No _id for deletion provided.`);
390
- const ourQuery = { where: { _id } };
391
- const dbInstance = yield transaction.queryUnique(this.collection, ourQuery);
392
- if (!dbInstance)
393
- throw new backend_1.ApiException(404, `Could not find ${this.config.itemName} with unique id: ${_id}`);
394
- const write = yield this.deleteImpl_Read(transaction, ourQuery, request);
395
- return () => __awaiter(this, void 0, void 0, function* () {
396
- if (!write)
397
- return dbInstance;
398
- // Here can do both read an write!
399
- yield this.assertDeletion(transaction, dbInstance, request);
400
- return write();
401
- });
402
- });
403
- }
404
- /**
405
- * Uses the `transaction` to delete a unique document, querying with the `ourQuery`.
406
- *
407
- * @param transaction - The transaction object.
408
- * @param ourQuery - The query to be used for the deletion.
409
- * @param request - The request in order to possibly obtain more info.
410
- *
411
- * @returns
412
- * A promise of the document that was deleted.
413
- */
414
- deleteImpl_Read(transaction, ourQuery, request) {
415
- return __awaiter(this, void 0, void 0, function* () {
416
- const write = yield transaction.deleteUnique_Read(this.collection, ourQuery);
417
- if (!write)
418
- throw new ts_common_1.ThisShouldNotHappenException(`I just checked that I had an instance for query: ${(0, ts_common_1.__stringify)(ourQuery)}`);
419
- return write;
420
- });
421
- }
422
- /**
423
- * Calls the `delete` method of the module's collection.
424
- *
425
- * @param query - The query to be executed for the deletion.
426
- * @param request - The request in order to possibly obtain more info.
427
- */
428
- delete(query, request) {
429
- return __awaiter(this, void 0, void 0, function* () {
430
- return this.collection.delete(query);
431
- });
432
- }
433
- /**
434
- * Queries the database for a specific document in the module's collection.
435
- *
436
- * @param where - The where clause to be used for querying.
437
- * @param request - The request in order to possibly obtain more info.
438
- *
439
- * @throws `ApiException` if the document is not found.
440
- *
441
- * @returns
442
- * The DB document that was found.
443
- */
444
- queryUnique(where, request) {
445
- return __awaiter(this, void 0, void 0, function* () {
446
- const dbItem = yield this.collection.queryUnique({ where });
447
- if (!dbItem)
448
- throw new backend_1.ApiException(404, `Could not find ${this.config.itemName} with unique query: ${JSON.stringify(where)}`);
449
- return dbItem;
450
- });
451
- }
452
- /**
453
- * Executes the specified query on the module's collection.
454
- *
455
- * @param query - The query to be executed.
456
- * @param request - The request in order to possibly obtain more info.
457
- *
458
- * @returns
459
- * A promise of an array of documents.
460
- */
461
- query(query, request) {
462
- return __awaiter(this, void 0, void 0, function* () {
463
- return yield this.collection.query(query);
464
- });
465
- }
466
- /**
467
- * If propsToPatch is not set, we remove the lock keys from the caller's instance
468
- * before merging with the original dbInstance.
469
- * If propsToPatch is set, we also remove all of the instance's keys that
470
- * are not specified in propsToPatch.
471
- *
472
- * @param instance - The instance to be upserted.
473
- * @param propsToPatch - Properties to patch.
474
- * @param request - The request in order to possibly obtain more info.
475
- *
476
- * @returns
477
- * A promise of the patched document.
478
- */
479
- patch(instance, propsToPatch, request) {
480
- return __awaiter(this, void 0, void 0, function* () {
481
- return this.collection.runInTransaction((transaction) => __awaiter(this, void 0, void 0, function* () {
482
- const dbInstance = yield this.assertExternalQueryUnique(instance, transaction);
483
- // If the caller has specified props to be changed, make sure the don't conflict with the lockKeys.
484
- const wrongKey = propsToPatch === null || propsToPatch === void 0 ? void 0 : propsToPatch.find(prop => this.config.lockKeys.includes(prop));
485
- if (wrongKey)
486
- throw new ts_common_1.BadImplementationException(`Key ${String(wrongKey)} is part of the 'lockKeys' and cannot be updated.`);
487
- // If the caller has not specified props, we remove the keys from the caller's instance
488
- // before merging with the original dbInstance.
489
- (0, ts_common_1._keys)(instance).forEach(key => {
490
- if (this.config.lockKeys.includes(key) || (propsToPatch && !propsToPatch.includes(key))) {
491
- delete instance[key];
492
- }
493
- });
494
- const mergedObject = (0, ts_common_1.merge)(dbInstance, instance);
495
- yield (0, ts_common_1.validate)(mergedObject, this.validator);
496
- yield this.assertUniqueness(transaction, mergedObject, request);
497
- return this.upsertImpl(transaction, mergedObject, request);
498
- }));
499
- });
500
- }
501
- apiCreate(pathPart) {
502
- return new apis_1.ServerApi_Create(this, pathPart);
503
- }
504
- apiQuery(pathPart) {
505
- return new apis_1.ServerApi_Query(this, pathPart);
506
- }
507
- apiQueryUnique(pathPart) {
508
- return new apis_1.ServerApi_Unique(this, pathPart);
509
- }
510
- apiUpdate(pathPart) {
511
- return new apis_1.ServerApi_Update(this, pathPart);
512
- }
513
- apiDelete(pathPart) {
514
- return new apis_1.ServerApi_Delete(this, pathPart);
515
- }
516
- /**
517
- * Override this method, to control which server api endpoints are created automatically.
518
- *
519
- * @param pathPart - The path part.
520
- *
521
- * @returns
522
- * An array of api endpoints.
523
- */
524
- apis(pathPart) {
525
- return (0, ts_common_1.filterInstances)([
526
- this.apiCreate(pathPart),
527
- this.apiQuery(pathPart),
528
- this.apiQueryUnique(pathPart),
529
- this.apiUpdate(pathPart),
530
- this.apiDelete(pathPart),
531
- ]);
532
- }
533
- }
534
- exports.BaseDB_ApiGenerator = BaseDB_ApiGenerator;
535
- //# sourceMappingURL=BaseDB_ApiGenerator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BaseDB_ApiGenerator.js","sourceRoot":"","sources":["../../src/main/app-backend/BaseDB_ApiGenerator.ts"],"names":[],"mappings":";;;;;;;;;;;;AAMA,4DAoBsC;AACtC,iCAMgB;AAChB,qEAMiD;AACjD,iEAK6C;AAC7C,2CAGyB;AAEzB,MAAM,QAAQ,GAAG,EAAE,CAAC;AACb,MAAM,UAAU,GAAG,CAAC,MAAc,EAAE,YAAqB,IAAI,EAAE,EAAE,CAAC,IAAA,0BAAc,EAAC,IAAI,MAAM,CAAC,aAAa,MAAM,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC;AAA3H,QAAA,UAAU,cAAiH;AAC3H,QAAA,aAAa,GAAG,yBAAc,CAAC;AACrC,MAAM,iBAAiB,GAAG,CAAC,SAAmB,EAAE,EAAE,CAAC,IAAA,0BAAc,EACvE,kFAAkF,EAAE,SAAS,CAAC,CAAC;AADnF,QAAA,iBAAiB,qBACkE;AACzF,MAAM,kBAAkB,GAAG,CAAC,SAAmB,EAAE,EAAE,CAAC,IAAA,0BAAc,EACxE,0EAA0E,EAAE,SAAS,CAAC,CAAC;AAD3E,QAAA,kBAAkB,sBACyD;AAC3E,QAAA,gBAAgB,GAAG,IAAA,kBAAU,EAAC,QAAQ,CAAC,CAAC;AACxC,QAAA,kBAAkB,GAAG,IAAA,kBAAU,EAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AACjD,QAAA,wBAAwB,GAAG,IAAA,0BAAc,EAAC,cAAc,CAAC,CAAC;AAC1D,QAAA,kCAAkC,GAAG,IAAA,0BAAc,EAAC,iBAAiB,CAAC,CAAC;AACvE,QAAA,8BAA8B,GAAG,IAAA,0BAAc,EAAC,qBAAqB,CAAC,CAAC;AACvE,QAAA,6BAA6B,GAAG,IAAA,0BAAc,EAAC,YAAY,CAAC,CAAC;AAC7D,QAAA,mCAAmC,GAAG,IAAA,0BAAc,EAAC,YAAY,CAAC,CAAC;AACnE,QAAA,oCAAoC,GAAG,IAAA,0BAAc,EAAC,cAAc,CAAC,CAAC;AACtE,QAAA,iDAAiD,GAAG,IAAA,0BAAc,EAAC,eAAe,CAAC,CAAC;AACpF,QAAA,kCAAkC,GAAG,IAAA,0BAAc,EAAC,4BAA4B,CAAC,CAAC;AAa/F;;;;GAIG;AACH,MAAsB,mBACrB,SAAQ,kBAAkB;IAM1B,YAAsB,cAAsB,EAAE,SAAwC,EAAE,QAAgB,EAAE,UAAkB;QAC3H,KAAK,CAAC,UAAU,CAAC,CAAC;QAClB,aAAa;QACb,IAAI,CAAC,gBAAgB,CAAC,EAAC,QAAQ,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAC,CAAC,CAAC;QAClG,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC5B,CAAC;IAED,YAAY,CAAC,SAAwC;QACpD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC5B,CAAC;IAED,+BAA+B;QAC9B,OAAO,CAAC;gBACP,WAAW,EAAE,IAAI,CAAC,kBAAkB,EAAE;gBACtC,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,YAAY,EAAE,CAAC,GAAG,eAAG;gBACrB,QAAQ,EAAE,eAAG;gBACb,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc;aACrC,CAAC,CAAC;IACJ,CAAC;IAES,kBAAkB;QAC3B,OAAO,EAAC,KAAK,EAAE,EAAE,EAAC,CAAC;IACpB,CAAC;IAEF,kDAAkD;IAEjD;;;;;;;;;;;OAWG;IACO,qBAAqB,CAAC,IAAwB;QACvD,IAAI,IAAI,CAAC,SAAS;YACjB,MAAM,IAAI,sCAA0B,CAAC,kHAAkH,CAAC,CAAC;QAE1J,OAAO,IAAI,CAAC,MAAM,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAC9C,CAAC;IAED;;;;;;;;;;;OAWG;IACO,WAAW,CAAC,IAAsB;QAC3C,IAAI,IAAI,CAAC,SAAS;YACjB,MAAM,IAAI,sCAA0B,CAAC,wGAAwG,CAAC,CAAC;QAEhJ,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAA,4BAAgB,EAAC,CAAC,GAAG,IAAI;YACP,KAAK,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,iBAAiB;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;IACnC,CAAC;IAED,WAAW;QACV,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACH,IAAI;;QACH,MAAM,SAAS,GAAG,wBAAc,CAAC,kBAAkB,CAAC,MAAA,IAAI,CAAC,MAAM,0CAAE,SAAS,CAAC,CAAC,YAAY,EAAE,CAAC;QAC3F,aAAa;QACb,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,aAAa,CAAS,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAC/G,CAAC;IAEK,yBAAyB,CAAC,QAAgB,EAAE,WAAiC;;YAClF,MAAM,UAAU,GAAuB,MAAM,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAC9F,IAAI,CAAC,UAAU,EAAE,CAAC;gBACjB,MAAM,WAAW,GAAG,4BAAkB,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;gBACnF,MAAM,IAAI,sBAAY,CAAC,GAAG,EAAE,kBAAkB,IAAI,CAAC,MAAM,CAAC,QAAQ,uBAAuB,IAAA,uBAAW,EAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACvH,CAAC;YAED,OAAO,UAAU,CAAC;QACnB,CAAC;KAAA;IAED;;;;;;;OAOG;IACU,gBAAgB,CAAC,WAAiC,EAAE,QAAgB,EAAE,OAAwB;;YAC1G,MAAM,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YAE/D,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;YACpD,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;gBAC7B,OAAO;YAER,MAAM,WAAW,GAA2B,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;gBAC7F,OAAO,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,EAAC,KAAK,EAAE,WAAW,EAAC,CAAC,CAAC;YACvE,CAAC,CAAC,CAAC,CAAC;YAEJ,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;gBAC/B,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;gBACpC,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,GAAG,KAAK,QAAQ,CAAC,GAAG;oBACjD,SAAS;gBAEV,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;gBACjC,MAAM,OAAO,GAAG,IAAA,iBAAK,EAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;oBAClD,OAAO,KAAK,GAAG,IAAI,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvD,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,yDAAyD,CAAC,CAAC;gBAErF,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;gBACzB,MAAM,IAAI,sBAAY,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YACtC,CAAC;QACF,CAAC;KAAA;IAED;;;;;;OAMG;IACI,YAAY,CAAC,QAAgB;QACnC,IAAI,CAAC;YACJ,IAAA,oBAAQ,EAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACpC,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAEjB,MAAM,iBAAiB,GAAG,IAAA,yBAAa,EAAC,CAAC,EAAE,sCAA0B,CAAC,CAAC;YACvE,IAAI,iBAAiB;gBACpB,MAAM,IAAI,sBAAY,CAAC,GAAG,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAExD,MAAM,KAAK,GAAG,IAAA,yBAAa,EAAC,CAAC,EAAE,+BAAmB,CAAC,CAAC;YACpD,IAAI,KAAK,EAAE,CAAC;gBACX,MAAM,SAAS,GAAG,EAAC,IAAI,EAAE,yBAAiB,EAAE,IAAI,EAAE,EAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAC,EAAC,CAAC;gBAC1F,MAAM,IAAI,sBAAY,CAAoB,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;YACvF,CAAC;YAED,MAAM,CAAC,CAAC;QACT,CAAC;IACF,CAAC;IAED;;;;;OAKG;IACO,cAAc,CAAC,IAAY;QACpC,OAAO,EAAE,CAAC;IACX,CAAC;IAED;;;;;OAKG;IACa,mBAAmB,CAAC,WAAiC,EAAE,UAAkB,EAAE,OAAwB;;QACnH,CAAC;KAAA;IAED;;;;;;;OAOG;IACa,cAAc,CAAC,WAAiC,EAAE,UAAkB,EAAE,OAAwB;;YAC7G,OAAO,CAAC,MAAM,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;QAC7E,CAAC;KAAA;IAEe,mBAAmB,CAAC,WAAiC,EAAE,UAAkB,EAAE,OAAwB;;YAClH,OAAO,GAAS,EAAE;YAClB,CAAC,CAAA,CAAC;QACH,CAAC;KAAA;IAED;;;;;;;OAOG;IACG,gBAAgB,CAAa,SAAqE;;YACvG,OAAO,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QACpD,CAAC;KAAA;IAED,aAAa;IACC,gBAAgB;;YAC7B,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;QACnC,CAAC;KAAA;IAED;;;;;;;;;OASG;IACH,6HAA6H;IAC7H,yEAAyE;IACzE,KAAK;IAEC,eAAe,CAAC,WAAiC,EAAE,QAAgB,EAAE,OAAwB;;YAClG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YAClC,MAAM,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC5D,OAAQ,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC7D,CAAC;KAAA;IAAA,CAAC;IAEF;;;;;;;;;OASG;IACG,MAAM,CAAC,QAAe,EAAE,WAAkC,EAAE,OAAwB;;YACzF,MAAM,SAAS,GAAG,CAAO,YAAkC,EAAE,EAAE;gBAC9D,OAAO,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;YACpE,CAAC,CAAA,CAAC;YAEF,IAAI,WAAW;gBACd,OAAO,SAAS,CAAC,WAAW,CAAC,CAAC;YAE/B,OAAO,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QACpD,CAAC;KAAA;IAEK,WAAW,CAAC,QAAe,EAAE,WAAiC,EAAE,OAAwB;;YAC7F,IAAI,QAAQ,CAAC,GAAG,KAAK,SAAS;gBAC7B,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,gCAAI,QAAQ,KAAE,GAAG,EAAE,IAAA,uBAAW,EAAC,QAAQ,CAAC,GAAsB,EAAE,OAAO,CAAC,CAAC;YAEnH,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,QAA6B,EAAE,OAAO,CAAC,CAAC;QAClF,CAAC;KAAA;IAED;;;;;;;;OAQG;IACG,iBAAiB,CAAC,SAAkB,EAAE,OAAwB;;YACnE,OAAO,IAAA,uBAAW,EAAC,SAAS,EAAE,GAAG,EAAE,CAAO,OAAgB,EAAE,EAAE,gDAAC,OAAA,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA,GAAA,CAAC,CAAC;QAC7G,CAAC;KAAA;IAED;;;;;;;;;;;OAWG;IACG,SAAS,CAAC,SAAkB,EAAE,WAAkC,EAAE,OAAwB;;YAC/F,IAAI,SAAS,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;gBAC5B,IAAI,WAAW;oBACd,MAAM,IAAI,sCAA0B,CAAC,sDAAsD,CAAC,CAAC;gBAE9F,OAAO,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YACnD,CAAC;YAED,MAAM,SAAS,GAAG,CAAO,YAAkC,EAAE,EAAE;gBAC9D,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;gBAClG,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;YACrC,CAAC,CAAA,CAAC;YAEF,IAAI,WAAW;gBACd,OAAO,SAAS,CAAC,WAAW,CAAC,CAAC;YAE/B,OAAO,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QACpD,CAAC;KAAA;IAGe,kBAAkB,CAAC,SAAkB,EAAE,WAAiC,EAAE,OAAwB;;YACjH,MAAM,OAAO,GAAG,EAA6B,CAAC;YAE9C,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,QAAe,EAAE,EAAE;gBAC3C,IAAA,0BAAc,EAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;gBACxE,OAAO,KAAK,CAAC;YACd,CAAC,EAAE,OAAO,CAAC,CAAC;YAEZ,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;KAAA;IAED;;;;;;;;;OASG;IACa,UAAU,CAAC,WAAiC,EAAE,UAAkB,EAAE,OAAwB;;YACzG,OAAO,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;QACzE,CAAC;KAAA;IAAA,CAAC;IAEc,eAAe,CAAC,WAAiC,EAAE,UAAkB,EAAE,OAAwB;;YAC9G,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;YACpC,MAAM,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;YAC9D,OAAO,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAC7D,CAAC;KAAA;IAAA,CAAC;IAEF;;;;;;;;;;;OAWG;IACG,YAAY,CAAC,GAAW,EAAE,WAAkC,EAAE,OAAwB;;YAC3F,IAAI,CAAC,GAAG;gBACP,MAAM,IAAI,sCAA0B,CAAC,+BAA+B,CAAC,CAAC;YAEvE,MAAM,SAAS,GAAG,CAAO,YAAkC,EAAE,EAAE;gBAC9D,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;gBACvE,IAAI,CAAC,KAAK;oBACT,MAAM,IAAI,sBAAY,CAAC,GAAG,EAAE,kBAAkB,IAAI,CAAC,MAAM,CAAC,QAAQ,oBAAoB,GAAG,EAAE,CAAC,CAAC;gBAE9F,OAAO,KAAK,EAAE,CAAC;YAChB,CAAC,CAAA,CAAC;YAEF,IAAI,WAAW;gBACd,OAAO,SAAS,CAAC,WAAW,CAAC,CAAC;YAE/B,OAAO,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QACpD,CAAC;KAAA;IAEK,iBAAiB,CAAC,GAAW,EAAE,WAAiC,EAAE,OAAwB;;YAC/F,IAAI,CAAC,GAAG;gBACP,MAAM,IAAI,sCAA0B,CAAC,+BAA+B,CAAC,CAAC;YAEvE,MAAM,QAAQ,GAAG,EAAC,KAAK,EAAE,EAAC,GAAG,EAAyB,EAAC,CAAC;YACxD,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAC5E,IAAI,CAAC,UAAU;gBACd,MAAM,IAAI,sBAAY,CAAC,GAAG,EAAE,kBAAkB,IAAI,CAAC,MAAM,CAAC,QAAQ,oBAAoB,GAAG,EAAE,CAAC,CAAC;YAE9F,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YACzE,OAAO,GAAS,EAAE;gBACjB,IAAI,CAAC,KAAK;oBACT,OAAO,UAAU,CAAC;gBAEnB,kCAAkC;gBAClC,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;gBAE5D,OAAO,KAAK,EAAE,CAAC;YAChB,CAAC,CAAA,CAAC;QACH,CAAC;KAAA;IAED;;;;;;;;;OASG;IACW,eAAe,CAAC,WAAiC,EAAE,QAAyC,EAAE,OAAwB;;YACnI,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAC7E,IAAI,CAAC,KAAK;gBACT,MAAM,IAAI,wCAA4B,CAAC,oDAAoD,IAAA,uBAAW,EAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAErH,OAAO,KAAK,CAAC;QACd,CAAC;KAAA;IAED;;;;;OAKG;IACG,MAAM,CAAC,KAA6B,EAAE,OAAwB;;YACnE,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;KAAA;IAED;;;;;;;;;;OAUG;IACG,WAAW,CAAC,KAA2B,EAAE,OAAwB;;YACtE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAC,KAAK,EAAC,CAAC,CAAC;YAC1D,IAAI,CAAC,MAAM;gBACV,MAAM,IAAI,sBAAY,CAAC,GAAG,EAAE,kBAAkB,IAAI,CAAC,MAAM,CAAC,QAAQ,uBAAuB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAEnH,OAAO,MAAM,CAAC;QACf,CAAC;KAAA;IAED;;;;;;;;OAQG;IACG,KAAK,CAAC,KAA6B,EAAE,OAAwB;;YAClE,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC;KAAA;IAED;;;;;;;;;;;;OAYG;IACG,KAAK,CAAC,QAAgB,EAAE,YAA+B,EAAE,OAAwB;;YACtF,OAAO,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAO,WAAW,EAAE,EAAE;gBAC7D,MAAM,UAAU,GAAW,MAAM,IAAI,CAAC,yBAAyB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;gBACvF,mGAAmG;gBACnG,MAAM,QAAQ,GAAG,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;gBACjF,IAAI,QAAQ;oBACX,MAAM,IAAI,sCAA0B,CAAC,OAAO,MAAM,CAAC,QAAQ,CAAC,mDAAmD,CAAC,CAAC;gBAElH,uFAAuF;gBACvF,+CAA+C;gBAC/C,IAAA,iBAAK,EAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;oBAC7B,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;wBACzF,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;oBACtB,CAAC;gBACF,CAAC,CAAC,CAAC;gBAEH,MAAM,YAAY,GAAG,IAAA,iBAAK,EAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;gBAEjD,MAAM,IAAA,oBAAQ,EAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;gBAE7C,MAAM,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;gBAEhE,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;YAC5D,CAAC,CAAA,CAAC,CAAC;QACJ,CAAC;KAAA;IAED,SAAS,CAAC,QAAiB;QAC1B,OAAO,IAAI,uBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAED,QAAQ,CAAC,QAAiB;QACzB,OAAO,IAAI,sBAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAED,cAAc,CAAC,QAAiB;QAC/B,OAAO,IAAI,uBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAED,SAAS,CAAC,QAAiB;QAC1B,OAAO,IAAI,uBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAED,SAAS,CAAC,QAAiB;QAC1B,OAAO,IAAI,uBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,CAAC,QAAiB;QACrB,OAAO,IAAA,2BAAe,EACrB;YACC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;YACxB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACvB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;YAC7B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;YACxB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;SACxB,CAAC,CAAC;IACL,CAAC;CACD;AA9gBD,kDA8gBC"}
@@ -1,93 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.ServerApi_Delete = exports.ServerApi_Query = exports.ServerApi_Unique = exports.ServerApi_Update = exports.ServerApi_Create = exports.GenericServerApi = void 0;
13
- exports.resolveUrlPart = resolveUrlPart;
14
- const __1 = require("..");
15
- const backend_1 = require("@intuitionrobotics/thunderstorm/backend");
16
- const ts_common_1 = require("@intuitionrobotics/ts-common");
17
- function resolveUrlPart(dbModule, pathPart, pathSuffix) {
18
- return `${!pathPart ? dbModule.getItemName() : pathPart}${pathSuffix ? "/" + pathSuffix : ""}`;
19
- }
20
- class GenericServerApi extends backend_1.ServerApi {
21
- constructor(dbModule, def, pathPart) {
22
- super(def.method, resolveUrlPart(dbModule, pathPart, def.suffix));
23
- this.postProcessors = [];
24
- this.dbModule = dbModule;
25
- }
26
- addPostProcessor(processor) {
27
- (0, ts_common_1.addItemToArray)(this.postProcessors, processor);
28
- }
29
- }
30
- exports.GenericServerApi = GenericServerApi;
31
- class ServerApi_Create extends GenericServerApi {
32
- constructor(dbModule, pathPart) {
33
- super(dbModule, __1.DefaultApiDefs.Create, pathPart);
34
- }
35
- process(request, response, queryParams, body) {
36
- return __awaiter(this, void 0, void 0, function* () {
37
- let toRet = yield this.dbModule.upsert(body, undefined, request);
38
- for (const postProcessor of this.postProcessors) {
39
- toRet = yield postProcessor(toRet);
40
- }
41
- return toRet;
42
- });
43
- }
44
- }
45
- exports.ServerApi_Create = ServerApi_Create;
46
- class ServerApi_Update extends GenericServerApi {
47
- constructor(dbModule, pathPart) {
48
- super(dbModule, __1.DefaultApiDefs.Update, pathPart);
49
- }
50
- process(request, response, queryParams, body) {
51
- return __awaiter(this, void 0, void 0, function* () {
52
- return this.dbModule.patch(body, undefined, request);
53
- });
54
- }
55
- }
56
- exports.ServerApi_Update = ServerApi_Update;
57
- class ServerApi_Unique extends GenericServerApi {
58
- constructor(dbModule, pathPart) {
59
- super(dbModule, __1.DefaultApiDefs.Unique, pathPart);
60
- }
61
- process(request, response, queryParams, body) {
62
- return __awaiter(this, void 0, void 0, function* () {
63
- return this.dbModule.queryUnique(queryParams, request);
64
- });
65
- }
66
- }
67
- exports.ServerApi_Unique = ServerApi_Unique;
68
- class ServerApi_Query extends GenericServerApi {
69
- constructor(dbModule, pathPart) {
70
- super(dbModule, __1.DefaultApiDefs.Query, pathPart);
71
- }
72
- process(request, response, queryParams, _body) {
73
- return __awaiter(this, void 0, void 0, function* () {
74
- // for (const postProcessor of this.postProcessors) {
75
- // queries = await postProcessor();
76
- // }
77
- return this.dbModule.query({ where: _body }, request);
78
- });
79
- }
80
- }
81
- exports.ServerApi_Query = ServerApi_Query;
82
- class ServerApi_Delete extends GenericServerApi {
83
- constructor(dbModule, pathPart) {
84
- super(dbModule, __1.DefaultApiDefs.Delete, pathPart);
85
- }
86
- process(request, response, queryParams, body) {
87
- return __awaiter(this, void 0, void 0, function* () {
88
- return this.dbModule.deleteUnique(queryParams._id, undefined, request);
89
- });
90
- }
91
- }
92
- exports.ServerApi_Delete = ServerApi_Delete;
93
- //# sourceMappingURL=apis.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"apis.js","sourceRoot":"","sources":["../../src/main/app-backend/apis.ts"],"names":[],"mappings":"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"}