ismx-nexo-node-app 0.4.59 → 0.4.61
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.
|
@@ -71,6 +71,11 @@ class ServiceRestFormalTemplate {
|
|
|
71
71
|
let pageNumber = Number.parseInt(pageNumberStr);
|
|
72
72
|
return { maxResults, pageNumber };
|
|
73
73
|
}
|
|
74
|
+
extendEntity(entity) {
|
|
75
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
76
|
+
return entity;
|
|
77
|
+
});
|
|
78
|
+
}
|
|
74
79
|
/**
|
|
75
80
|
* Handles GET requests by retrieving a single record from the database based on the provided request.
|
|
76
81
|
*
|
|
@@ -80,7 +85,8 @@ class ServiceRestFormalTemplate {
|
|
|
80
85
|
serveGet(request) {
|
|
81
86
|
return __awaiter(this, void 0, void 0, function* () {
|
|
82
87
|
let id = this.getFormalId(request);
|
|
83
|
-
let
|
|
88
|
+
let entity = yield this.database.one(this.tableName, id);
|
|
89
|
+
let result = yield this.extendEntity(entity);
|
|
84
90
|
return Service_1.HttpResponse.ok(result);
|
|
85
91
|
});
|
|
86
92
|
}
|
|
@@ -92,7 +98,44 @@ class ServiceRestFormalTemplate {
|
|
|
92
98
|
*/
|
|
93
99
|
serveGetList(request) {
|
|
94
100
|
return __awaiter(this, void 0, void 0, function* () {
|
|
95
|
-
|
|
101
|
+
let entities = yield this.database.find(this.tableName, Object.assign({}, request.query));
|
|
102
|
+
let result = yield Promise.all(entities.map(this.extendEntity));
|
|
103
|
+
return Service_1.HttpResponse.ok(result);
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Serves a paginated response for the requested page entities.
|
|
108
|
+
*
|
|
109
|
+
* @param {HttpRequest} request The HTTP request containing details needed for pagination processing, such as query parameters.
|
|
110
|
+
* @return {Promise<HttpResponse<Pagination<Model>>>} A promise resolving to an HTTP response containing the paginated list of entities.
|
|
111
|
+
*/
|
|
112
|
+
servePage(request) {
|
|
113
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
114
|
+
let { maxResults, pageNumber } = this.getFormalPage(request);
|
|
115
|
+
let result = yield this.database.page(this.tableName, "timestamp", maxResults, pageNumber);
|
|
116
|
+
result.elements = yield Promise.all(result.elements.map(this.extendEntity));
|
|
117
|
+
return Service_1.HttpResponse.ok(result);
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Serves a map of models retrieved from the database based on the request query parameters.
|
|
122
|
+
*
|
|
123
|
+
* @param {HttpRequest} request - The HTTP request containing query parameters for retrieving models.
|
|
124
|
+
* @return {Promise<HttpResponse<{[key: string]: Model}>>} A promise that resolves to an HTTP response containing a map of models, where the key is derived from the indexed property of each model.
|
|
125
|
+
*/
|
|
126
|
+
serveMap(request) {
|
|
127
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
128
|
+
let results = yield this.database.find(this.tableName, Object.assign({}, request.query));
|
|
129
|
+
let response = {};
|
|
130
|
+
for (let result of results) {
|
|
131
|
+
let key = result[this.indexer];
|
|
132
|
+
if (!key)
|
|
133
|
+
return Service_1.HttpResponse.ok({});
|
|
134
|
+
else
|
|
135
|
+
response[key] = this.extendEntity(result);
|
|
136
|
+
}
|
|
137
|
+
yield Promise.all(Object.values(response));
|
|
138
|
+
return Service_1.HttpResponse.ok(response);
|
|
96
139
|
});
|
|
97
140
|
}
|
|
98
141
|
/**
|
|
@@ -114,20 +157,35 @@ class ServiceRestFormalTemplate {
|
|
|
114
157
|
return Service_1.HttpResponse.ok(result);
|
|
115
158
|
});
|
|
116
159
|
}
|
|
160
|
+
/**
|
|
161
|
+
* Handles PUT requests by updating an existing record in the database based on the provided request.
|
|
162
|
+
*
|
|
163
|
+
* @param {HttpRequest<Model>} request - The HTTP request containing the model data to be updated.
|
|
164
|
+
* @return {Promise<HttpResponse<Model>>} A promise that resolves to an HTTP response containing the updated model data.
|
|
165
|
+
*/
|
|
117
166
|
servePut(request) {
|
|
118
167
|
return __awaiter(this, void 0, void 0, function* () {
|
|
119
168
|
var _a;
|
|
120
169
|
let id = this.getFormalId(request);
|
|
121
170
|
(_a = request.body) === null || _a === void 0 ? true : delete _a[this.indexer];
|
|
122
|
-
let
|
|
123
|
-
|
|
171
|
+
let entity = yield this.database.update(this.tableName, id, request.body);
|
|
172
|
+
let result = (yield this.serveGet({ query: { [this.indexer]: id } })).content;
|
|
173
|
+
return Service_1.HttpResponse.ok(result);
|
|
124
174
|
});
|
|
125
175
|
}
|
|
176
|
+
/**
|
|
177
|
+
* Handles POST requests by adding a new record to the database based on the provided request.
|
|
178
|
+
*
|
|
179
|
+
* @param {HttpRequest<Transient<Model>>} request - The HTTP request containing the model data to be added.
|
|
180
|
+
* @return {Promise<HttpResponse<Model>>} A promise that resolves to an HTTP response containing the added model data.
|
|
181
|
+
*/
|
|
182
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
126
183
|
servePost(request) {
|
|
127
184
|
return __awaiter(this, void 0, void 0, function* () {
|
|
128
|
-
let
|
|
129
|
-
let id =
|
|
130
|
-
|
|
185
|
+
let entity = yield this.database.add(this.tableName, request.body);
|
|
186
|
+
let id = entity[this.indexer];
|
|
187
|
+
let result = (yield this.serveGet({ query: { [this.indexer]: id } })).content;
|
|
188
|
+
return Service_1.HttpResponse.ok(result);
|
|
131
189
|
});
|
|
132
190
|
}
|
|
133
191
|
servePostList(request) {
|
|
@@ -169,27 +227,6 @@ class ServiceRestFormalTemplate {
|
|
|
169
227
|
return Service_1.HttpResponse.ok(yield Promise.all(promises !== null && promises !== void 0 ? promises : []));
|
|
170
228
|
});
|
|
171
229
|
}
|
|
172
|
-
servePage(request) {
|
|
173
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
174
|
-
let { maxResults, pageNumber } = this.getFormalPage(request);
|
|
175
|
-
let results = yield this.database.page(this.tableName, "timestamp", maxResults, pageNumber);
|
|
176
|
-
return Service_1.HttpResponse.ok(results);
|
|
177
|
-
});
|
|
178
|
-
}
|
|
179
|
-
serveMap(request) {
|
|
180
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
181
|
-
let results = yield this.database.find(this.tableName, Object.assign({}, request.query));
|
|
182
|
-
let response = {};
|
|
183
|
-
for (let result of results) {
|
|
184
|
-
let key = result[this.indexer];
|
|
185
|
-
if (!key)
|
|
186
|
-
return Service_1.HttpResponse.ok({});
|
|
187
|
-
else
|
|
188
|
-
response[key] = result;
|
|
189
|
-
}
|
|
190
|
-
return Service_1.HttpResponse.ok(response);
|
|
191
|
-
});
|
|
192
|
-
}
|
|
193
230
|
serveSelect(request) {
|
|
194
231
|
return __awaiter(this, void 0, void 0, function* () {
|
|
195
232
|
var _a, _b, _c;
|
|
@@ -36,6 +36,7 @@ export default class ServiceRestFormalTemplate<Model = any> {
|
|
|
36
36
|
maxResults: number;
|
|
37
37
|
pageNumber: number;
|
|
38
38
|
};
|
|
39
|
+
extendEntity<T extends Model = Model>(entity: Model): Promise<T>;
|
|
39
40
|
/**
|
|
40
41
|
* Handles GET requests by retrieving a single record from the database based on the provided request.
|
|
41
42
|
*
|
|
@@ -50,6 +51,22 @@ export default class ServiceRestFormalTemplate<Model = any> {
|
|
|
50
51
|
* @return {Promise<HttpResponse<Model[]>>} A promise that resolves to an HTTP response containing an array of models.
|
|
51
52
|
*/
|
|
52
53
|
protected serveGetList(request: HttpRequest): Promise<HttpResponse<Model[]>>;
|
|
54
|
+
/**
|
|
55
|
+
* Serves a paginated response for the requested page entities.
|
|
56
|
+
*
|
|
57
|
+
* @param {HttpRequest} request The HTTP request containing details needed for pagination processing, such as query parameters.
|
|
58
|
+
* @return {Promise<HttpResponse<Pagination<Model>>>} A promise resolving to an HTTP response containing the paginated list of entities.
|
|
59
|
+
*/
|
|
60
|
+
protected servePage(request: HttpRequest): Promise<HttpResponse<Pagination<Model>>>;
|
|
61
|
+
/**
|
|
62
|
+
* Serves a map of models retrieved from the database based on the request query parameters.
|
|
63
|
+
*
|
|
64
|
+
* @param {HttpRequest} request - The HTTP request containing query parameters for retrieving models.
|
|
65
|
+
* @return {Promise<HttpResponse<{[key: string]: Model}>>} A promise that resolves to an HTTP response containing a map of models, where the key is derived from the indexed property of each model.
|
|
66
|
+
*/
|
|
67
|
+
protected serveMap(request: HttpRequest): Promise<HttpResponse<{
|
|
68
|
+
[key: string]: Model;
|
|
69
|
+
}>>;
|
|
53
70
|
/**
|
|
54
71
|
* Handles a GET request to retrieve a key-value mapping from the database table.
|
|
55
72
|
* Groups data based on provided key and value parameters, and returns a flattened keymap object.
|
|
@@ -60,7 +77,19 @@ export default class ServiceRestFormalTemplate<Model = any> {
|
|
|
60
77
|
protected serveGetKeymap(request: HttpRequest): Promise<HttpResponse<{
|
|
61
78
|
[key: string]: any;
|
|
62
79
|
}>>;
|
|
80
|
+
/**
|
|
81
|
+
* Handles PUT requests by updating an existing record in the database based on the provided request.
|
|
82
|
+
*
|
|
83
|
+
* @param {HttpRequest<Model>} request - The HTTP request containing the model data to be updated.
|
|
84
|
+
* @return {Promise<HttpResponse<Model>>} A promise that resolves to an HTTP response containing the updated model data.
|
|
85
|
+
*/
|
|
63
86
|
protected servePut(request: HttpRequest<Model>): Promise<HttpResponse<Model>>;
|
|
87
|
+
/**
|
|
88
|
+
* Handles POST requests by adding a new record to the database based on the provided request.
|
|
89
|
+
*
|
|
90
|
+
* @param {HttpRequest<Transient<Model>>} request - The HTTP request containing the model data to be added.
|
|
91
|
+
* @return {Promise<HttpResponse<Model>>} A promise that resolves to an HTTP response containing the added model data.
|
|
92
|
+
*/
|
|
64
93
|
protected servePost(request: HttpRequest<Transient<Model>>): Promise<HttpResponse<Model>>;
|
|
65
94
|
protected servePostList(request: HttpRequest<Model[]>): Promise<HttpResponse<Model[]>>;
|
|
66
95
|
protected servePostKeymap(request: HttpRequest<{
|
|
@@ -80,10 +109,6 @@ export default class ServiceRestFormalTemplate<Model = any> {
|
|
|
80
109
|
* @protected
|
|
81
110
|
*/
|
|
82
111
|
protected serveFullList(request: HttpRequest): Promise<HttpResponse<Model[]>>;
|
|
83
|
-
protected servePage(request: HttpRequest): Promise<HttpResponse<Pagination<Model>>>;
|
|
84
|
-
protected serveMap(request: HttpRequest): Promise<HttpResponse<{
|
|
85
|
-
[key: string]: Model;
|
|
86
|
-
}>>;
|
|
87
112
|
protected serveSelect(request: HttpRequest): Promise<HttpResponse<string[]>>;
|
|
88
113
|
protected serveExist(request: HttpRequest): Promise<HttpResponse<Boolean>>;
|
|
89
114
|
protected serveCount(request: HttpRequest): Promise<HttpResponse<Number>>;
|
package/package.json
CHANGED
|
@@ -84,6 +84,10 @@ export default class ServiceRestFormalTemplate<Model=any>
|
|
|
84
84
|
return { maxResults, pageNumber }
|
|
85
85
|
}
|
|
86
86
|
|
|
87
|
+
async extendEntity<T extends Model = Model>(entity : Model) : Promise<T> {
|
|
88
|
+
return entity as T;
|
|
89
|
+
}
|
|
90
|
+
|
|
87
91
|
/**
|
|
88
92
|
* Handles GET requests by retrieving a single record from the database based on the provided request.
|
|
89
93
|
*
|
|
@@ -92,7 +96,8 @@ export default class ServiceRestFormalTemplate<Model=any>
|
|
|
92
96
|
*/
|
|
93
97
|
protected async serveGet(request: HttpRequest): Promise<HttpResponse<Model>> {
|
|
94
98
|
let id = this.getFormalId(request);
|
|
95
|
-
let
|
|
99
|
+
let entity = await this.database.one<Model>(this.tableName, id);
|
|
100
|
+
let result = await this.extendEntity(entity);
|
|
96
101
|
return HttpResponse.ok(result);
|
|
97
102
|
}
|
|
98
103
|
|
|
@@ -103,7 +108,40 @@ export default class ServiceRestFormalTemplate<Model=any>
|
|
|
103
108
|
* @return {Promise<HttpResponse<Model[]>>} A promise that resolves to an HTTP response containing an array of models.
|
|
104
109
|
*/
|
|
105
110
|
protected async serveGetList(request: HttpRequest): Promise<HttpResponse<Model[]>> {
|
|
106
|
-
|
|
111
|
+
let entities = await this.database.find<Model>(this.tableName, { ...request.query });
|
|
112
|
+
let result = await Promise.all(entities.map(this.extendEntity));
|
|
113
|
+
return HttpResponse.ok(result);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* Serves a paginated response for the requested page entities.
|
|
118
|
+
*
|
|
119
|
+
* @param {HttpRequest} request The HTTP request containing details needed for pagination processing, such as query parameters.
|
|
120
|
+
* @return {Promise<HttpResponse<Pagination<Model>>>} A promise resolving to an HTTP response containing the paginated list of entities.
|
|
121
|
+
*/
|
|
122
|
+
protected async servePage(request: HttpRequest): Promise<HttpResponse<Pagination<Model>>> {
|
|
123
|
+
let { maxResults, pageNumber } = this.getFormalPage(request);
|
|
124
|
+
let result = await this.database.page<Model>(this.tableName, "timestamp", maxResults, pageNumber);
|
|
125
|
+
result.elements = await Promise.all(result.elements.map(this.extendEntity));
|
|
126
|
+
return HttpResponse.ok(result);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* Serves a map of models retrieved from the database based on the request query parameters.
|
|
131
|
+
*
|
|
132
|
+
* @param {HttpRequest} request - The HTTP request containing query parameters for retrieving models.
|
|
133
|
+
* @return {Promise<HttpResponse<{[key: string]: Model}>>} A promise that resolves to an HTTP response containing a map of models, where the key is derived from the indexed property of each model.
|
|
134
|
+
*/
|
|
135
|
+
protected async serveMap(request: HttpRequest): Promise<HttpResponse<{[key: string]: Model}>> {
|
|
136
|
+
let results = await this.database.find<Model>(this.tableName, { ...request.query });
|
|
137
|
+
let response: {[key: string]: Promise<Model>} = {};
|
|
138
|
+
for (let result of results) {
|
|
139
|
+
let key = (result as any)[this.indexer];
|
|
140
|
+
if (!key) return HttpResponse.ok({});
|
|
141
|
+
else response[key] = this.extendEntity(result);
|
|
142
|
+
}
|
|
143
|
+
await Promise.all(Object.values(response));
|
|
144
|
+
return HttpResponse.ok(response);
|
|
107
145
|
}
|
|
108
146
|
|
|
109
147
|
/**
|
|
@@ -122,17 +160,32 @@ export default class ServiceRestFormalTemplate<Model=any>
|
|
|
122
160
|
return HttpResponse.ok(result);
|
|
123
161
|
}
|
|
124
162
|
|
|
163
|
+
/**
|
|
164
|
+
* Handles PUT requests by updating an existing record in the database based on the provided request.
|
|
165
|
+
*
|
|
166
|
+
* @param {HttpRequest<Model>} request - The HTTP request containing the model data to be updated.
|
|
167
|
+
* @return {Promise<HttpResponse<Model>>} A promise that resolves to an HTTP response containing the updated model data.
|
|
168
|
+
*/
|
|
125
169
|
protected async servePut(request: HttpRequest<Model>): Promise<HttpResponse<Model>> {
|
|
126
170
|
let id = this.getFormalId(request);
|
|
127
171
|
delete request.body?.[this.indexer as keyof Model];
|
|
128
|
-
let
|
|
129
|
-
|
|
172
|
+
let entity = await this.database.update<Model>(this.tableName, id, request.body);
|
|
173
|
+
let result = (await this.serveGet({ query: { [this.indexer]: id } })).content;
|
|
174
|
+
return HttpResponse.ok(result);
|
|
130
175
|
}
|
|
131
176
|
|
|
177
|
+
/**
|
|
178
|
+
* Handles POST requests by adding a new record to the database based on the provided request.
|
|
179
|
+
*
|
|
180
|
+
* @param {HttpRequest<Transient<Model>>} request - The HTTP request containing the model data to be added.
|
|
181
|
+
* @return {Promise<HttpResponse<Model>>} A promise that resolves to an HTTP response containing the added model data.
|
|
182
|
+
*/
|
|
183
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
132
184
|
protected async servePost(request: HttpRequest<Transient<Model>>): Promise<HttpResponse<Model>> {
|
|
133
|
-
let
|
|
134
|
-
let id =
|
|
135
|
-
|
|
185
|
+
let entity = await this.database.add<Model>(this.tableName, request.body);
|
|
186
|
+
let id = entity[this.indexer as keyof Model] as unknown as string;
|
|
187
|
+
let result = (await this.serveGet({ query: { [this.indexer]: id } })).content
|
|
188
|
+
return HttpResponse.ok(result);
|
|
136
189
|
}
|
|
137
190
|
|
|
138
191
|
protected async servePostList(request: HttpRequest<Model[]>): Promise<HttpResponse<Model[]>> {
|
|
@@ -169,22 +222,6 @@ export default class ServiceRestFormalTemplate<Model=any>
|
|
|
169
222
|
return HttpResponse.ok(await Promise.all(promises ?? []));
|
|
170
223
|
}
|
|
171
224
|
|
|
172
|
-
protected async servePage(request: HttpRequest): Promise<HttpResponse<Pagination<Model>>> {
|
|
173
|
-
let { maxResults, pageNumber } = this.getFormalPage(request);
|
|
174
|
-
let results = await this.database.page<Model>(this.tableName, "timestamp", maxResults, pageNumber);
|
|
175
|
-
return HttpResponse.ok(results);
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
protected async serveMap(request: HttpRequest): Promise<HttpResponse<{[key: string]: Model}>> {
|
|
179
|
-
let results = await this.database.find<Model>(this.tableName, { ...request.query });
|
|
180
|
-
let response: {[key: string]: Model} = {}; for (let result of results) {
|
|
181
|
-
let key = (result as any)[this.indexer];
|
|
182
|
-
if (!key) return HttpResponse.ok({});
|
|
183
|
-
else response[key] = result;
|
|
184
|
-
}
|
|
185
|
-
return HttpResponse.ok(response);
|
|
186
|
-
}
|
|
187
|
-
|
|
188
225
|
protected async serveSelect(request: HttpRequest): Promise<HttpResponse<string[]>> {
|
|
189
226
|
let selection = request.query?.["selection"] ?? this.indexer;
|
|
190
227
|
delete request.query?.["selection"];
|