ismx-nexo-node-app 0.3.40 → 0.3.42
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/dist/js/api/ServiceRestFormalTemplate.js +28 -6
- package/dist/js/repository/RepositoryDatabasePostgres.js +2 -2
- package/dist/types/api/ServiceRestFormalTemplate.d.ts +5 -1
- package/package.json +1 -1
- package/src/main/node/api/ServiceRestFormalTemplate.ts +30 -5
- package/src/main/node/repository/RepositoryDatabasePostgres.ts +2 -2
|
@@ -26,6 +26,10 @@ class ServiceRestFormalTemplate {
|
|
|
26
26
|
this.getList.serveRestFormal = this.serveGetList.bind(this);
|
|
27
27
|
this.postList = new ServiceRestFormal_1.default("POST", `${resource}/list`);
|
|
28
28
|
this.postList.serveRestFormal = this.servePostList.bind(this);
|
|
29
|
+
this.full = new ServiceRestFormal_1.default("GET", `${resource}/full`);
|
|
30
|
+
this.full.serveRestFormal = this.serveFull.bind(this);
|
|
31
|
+
this.fullList = new ServiceRestFormal_1.default("GET", `${resource}/full/list`);
|
|
32
|
+
this.fullList.serveRestFormal = this.serveFullList.bind(this);
|
|
29
33
|
this.page = new ServiceRestFormal_1.default("GET", `${resource}/page`);
|
|
30
34
|
this.page.serveRestFormal = this.servePage.bind(this);
|
|
31
35
|
this.map = new ServiceRestFormal_1.default("GET", `${resource}/map`);
|
|
@@ -75,6 +79,12 @@ class ServiceRestFormalTemplate {
|
|
|
75
79
|
return Service_1.HttpResponse.ok(yield this.database.find(this.tableName, Object.assign({}, request.query)));
|
|
76
80
|
});
|
|
77
81
|
}
|
|
82
|
+
servePost(request) {
|
|
83
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
84
|
+
let entity = this.database.add(this.tableName, request.body);
|
|
85
|
+
return Service_1.HttpResponse.ok(entity);
|
|
86
|
+
});
|
|
87
|
+
}
|
|
78
88
|
servePostList(request) {
|
|
79
89
|
return __awaiter(this, void 0, void 0, function* () {
|
|
80
90
|
let list = request.body;
|
|
@@ -83,6 +93,24 @@ class ServiceRestFormalTemplate {
|
|
|
83
93
|
return Service_1.HttpResponse.ok(this.database.addAll(this.tableName, list));
|
|
84
94
|
});
|
|
85
95
|
}
|
|
96
|
+
serveFull(request) {
|
|
97
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
98
|
+
let id = this.getFormalId(request);
|
|
99
|
+
let result = yield this.database.one(this.tableName, id);
|
|
100
|
+
return Service_1.HttpResponse.ok(result);
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
serveFullList(request) {
|
|
104
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
105
|
+
let list = yield this.unwrap(this.getList.serve(request));
|
|
106
|
+
let promises = list === null || list === void 0 ? void 0 : list.map((model) => {
|
|
107
|
+
let query = {};
|
|
108
|
+
query[this.indexer] = model[this.indexer];
|
|
109
|
+
return this.unwrap(this.full.serve(query));
|
|
110
|
+
});
|
|
111
|
+
return Service_1.HttpResponse.ok(yield Promise.all(promises !== null && promises !== void 0 ? promises : []));
|
|
112
|
+
});
|
|
113
|
+
}
|
|
86
114
|
servePage(request) {
|
|
87
115
|
return __awaiter(this, void 0, void 0, function* () {
|
|
88
116
|
let { maxResults, pageNumber } = this.getFormalPage(request);
|
|
@@ -123,12 +151,6 @@ class ServiceRestFormalTemplate {
|
|
|
123
151
|
return Service_1.HttpResponse.ok((yield this.database.count(this.tableName, Object.assign({}, request.query))));
|
|
124
152
|
});
|
|
125
153
|
}
|
|
126
|
-
servePost(request) {
|
|
127
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
128
|
-
let entity = this.database.add(this.tableName, request.body);
|
|
129
|
-
return Service_1.HttpResponse.ok(entity);
|
|
130
|
-
});
|
|
131
|
-
}
|
|
132
154
|
servePut(request) {
|
|
133
155
|
return __awaiter(this, void 0, void 0, function* () {
|
|
134
156
|
return Service_1.HttpResponse.ok("not implemented yet");
|
|
@@ -146,7 +146,7 @@ class RepositoryDatabasePostgres extends RepositoryDatabase_1.default {
|
|
|
146
146
|
let schema = this.tables[tableName][0].schema;
|
|
147
147
|
let { where, values } = this.toWhere(tableName, filters);
|
|
148
148
|
let query = `SELECT count(*) as count FROM ${schema}.${tableName} WHERE ${where}`;
|
|
149
|
-
return this.query(query, values).then((result) => result[0].count);
|
|
149
|
+
return this.query(query, values).then((result) => { var _a, _b; return (_b = (_a = result[0]) === null || _a === void 0 ? void 0 : _a.count) !== null && _b !== void 0 ? _b : 0; });
|
|
150
150
|
});
|
|
151
151
|
}
|
|
152
152
|
select(tableName_1, select_1) {
|
|
@@ -156,7 +156,7 @@ class RepositoryDatabasePostgres extends RepositoryDatabase_1.default {
|
|
|
156
156
|
let schema = this.tables[tableName][0].schema;
|
|
157
157
|
let { where, values } = this.toWhere(tableName, filters);
|
|
158
158
|
let query = `SELECT json_agg(u.${select}) as list FROM ${schema}.${tableName} u WHERE ${where}`;
|
|
159
|
-
return this.query(query, values).then((result) => result[0].list);
|
|
159
|
+
return this.query(query, values).then((result) => { var _a, _b; return (_b = (_a = result[0]) === null || _a === void 0 ? void 0 : _a.list) !== null && _b !== void 0 ? _b : []; });
|
|
160
160
|
});
|
|
161
161
|
}
|
|
162
162
|
del(tableName, id) {
|
|
@@ -10,6 +10,8 @@ export default class ServiceRestFormalTemplate<Model = any> {
|
|
|
10
10
|
readonly getList: ServiceRestFormal<any, Model[]>;
|
|
11
11
|
readonly post: ServiceRestFormal<Model, Model>;
|
|
12
12
|
readonly postList: ServiceRestFormal<Model[], Model[]>;
|
|
13
|
+
readonly full: ServiceRestFormal<any, Model>;
|
|
14
|
+
readonly fullList: ServiceRestFormal<any, Model[]>;
|
|
13
15
|
readonly put: ServiceRestFormal<Model, Model>;
|
|
14
16
|
readonly del: ServiceRestFormal<any, Model>;
|
|
15
17
|
readonly select: ServiceRestFormal<any, string[]>;
|
|
@@ -28,7 +30,10 @@ export default class ServiceRestFormalTemplate<Model = any> {
|
|
|
28
30
|
};
|
|
29
31
|
protected serveGet(request: HttpRequest): Promise<HttpResponse<Model>>;
|
|
30
32
|
protected serveGetList(request: HttpRequest): Promise<HttpResponse<Model[]>>;
|
|
33
|
+
protected servePost(request: HttpRequest<Model>): Promise<HttpResponse<Model>>;
|
|
31
34
|
protected servePostList(request: HttpRequest<Model[]>): Promise<HttpResponse<Model[]>>;
|
|
35
|
+
protected serveFull(request: HttpRequest): Promise<HttpResponse<Model>>;
|
|
36
|
+
protected serveFullList(request: HttpRequest): Promise<HttpResponse<Model[]>>;
|
|
32
37
|
protected servePage(request: HttpRequest): Promise<HttpResponse<Pagination<Model>>>;
|
|
33
38
|
protected serveMap(request: HttpRequest): Promise<HttpResponse<{
|
|
34
39
|
[key: string]: Model;
|
|
@@ -36,7 +41,6 @@ export default class ServiceRestFormalTemplate<Model = any> {
|
|
|
36
41
|
protected serveSelect(request: HttpRequest): Promise<HttpResponse<string[]>>;
|
|
37
42
|
protected serveExist(request: HttpRequest): Promise<HttpResponse<Boolean>>;
|
|
38
43
|
protected serveCount(request: HttpRequest): Promise<HttpResponse<Number>>;
|
|
39
|
-
protected servePost(request: HttpRequest<Model>): Promise<HttpResponse<Model>>;
|
|
40
44
|
protected servePut(request: HttpRequest<Model>): Promise<HttpResponse<Model>>;
|
|
41
45
|
protected serveDel(request: HttpRequest): Promise<HttpResponse<Model>>;
|
|
42
46
|
protected unwrap<Res>(request: Promise<HttpResponse<Wrapper<Res>>>): Promise<Res | undefined>;
|
package/package.json
CHANGED
|
@@ -13,6 +13,9 @@ export default class ServiceRestFormalTemplate<Model=any>
|
|
|
13
13
|
readonly getList!: ServiceRestFormal<any, Model[]>;
|
|
14
14
|
readonly post!: ServiceRestFormal<Model, Model>;
|
|
15
15
|
readonly postList!: ServiceRestFormal<Model[], Model[]>;
|
|
16
|
+
readonly full!: ServiceRestFormal<any, Model>
|
|
17
|
+
readonly fullList!: ServiceRestFormal<any, Model[]>
|
|
18
|
+
|
|
16
19
|
readonly put!: ServiceRestFormal<Model, Model>;
|
|
17
20
|
readonly del!: ServiceRestFormal<any, Model>;
|
|
18
21
|
|
|
@@ -36,6 +39,12 @@ export default class ServiceRestFormalTemplate<Model=any>
|
|
|
36
39
|
this.postList = new ServiceRestFormal("POST", `${resource}/list`);
|
|
37
40
|
this.postList.serveRestFormal = this.servePostList.bind(this);
|
|
38
41
|
|
|
42
|
+
this.full = new ServiceRestFormal("GET", `${resource}/full`);
|
|
43
|
+
this.full.serveRestFormal = this.serveFull.bind(this);
|
|
44
|
+
|
|
45
|
+
this.fullList = new ServiceRestFormal("GET", `${resource}/full/list`);
|
|
46
|
+
this.fullList.serveRestFormal = this.serveFullList.bind(this);
|
|
47
|
+
|
|
39
48
|
this.page = new ServiceRestFormal("GET", `${resource}/page`);
|
|
40
49
|
this.page.serveRestFormal = this.servePage.bind(this);
|
|
41
50
|
|
|
@@ -88,12 +97,33 @@ export default class ServiceRestFormalTemplate<Model=any>
|
|
|
88
97
|
return HttpResponse.ok(await this.database.find<Model>(this.tableName, { ...request.query }));
|
|
89
98
|
}
|
|
90
99
|
|
|
100
|
+
protected async servePost(request: HttpRequest<Model>): Promise<HttpResponse<Model>> {
|
|
101
|
+
let entity = this.database.add<Model>(this.tableName, request.body);
|
|
102
|
+
return HttpResponse.ok(entity);
|
|
103
|
+
}
|
|
104
|
+
|
|
91
105
|
protected async servePostList(request: HttpRequest<Model[]>): Promise<HttpResponse<Model[]>> {
|
|
92
106
|
let list = request.body
|
|
93
107
|
if (!(list instanceof Array)) throw new Error("body must be a list");
|
|
94
108
|
return HttpResponse.ok(this.database.addAll<Model>(this.tableName, list as any));
|
|
95
109
|
}
|
|
96
110
|
|
|
111
|
+
protected async serveFull(request: HttpRequest): Promise<HttpResponse<Model>> {
|
|
112
|
+
let id = this.getFormalId(request);
|
|
113
|
+
let result = await this.database.one<Model>(this.tableName, id);
|
|
114
|
+
return HttpResponse.ok(result);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
protected async serveFullList(request: HttpRequest): Promise<HttpResponse<Model[]>>
|
|
118
|
+
{
|
|
119
|
+
let list = await this.unwrap(this.getList.serve(request));
|
|
120
|
+
let promises = list?.map((model: any) => {
|
|
121
|
+
let query: any = {}; query[this.indexer] = model[this.indexer];
|
|
122
|
+
return this.unwrap(this.full.serve(query));
|
|
123
|
+
});
|
|
124
|
+
return HttpResponse.ok(await Promise.all(promises ?? []));
|
|
125
|
+
}
|
|
126
|
+
|
|
97
127
|
protected async servePage(request: HttpRequest): Promise<HttpResponse<Pagination<Model>>> {
|
|
98
128
|
let { maxResults, pageNumber } = this.getFormalPage(request);
|
|
99
129
|
let results = await this.database.page<Model>(this.tableName, "timestamp", maxResults, pageNumber);
|
|
@@ -125,11 +155,6 @@ export default class ServiceRestFormalTemplate<Model=any>
|
|
|
125
155
|
return HttpResponse.ok((await this.database.count(this.tableName, { ...request.query })));
|
|
126
156
|
}
|
|
127
157
|
|
|
128
|
-
protected async servePost(request: HttpRequest<Model>): Promise<HttpResponse<Model>> {
|
|
129
|
-
let entity = this.database.add<Model>(this.tableName, request.body);
|
|
130
|
-
return HttpResponse.ok(entity);
|
|
131
|
-
}
|
|
132
|
-
|
|
133
158
|
protected async servePut(request: HttpRequest<Model>): Promise<HttpResponse<Model>> {
|
|
134
159
|
return HttpResponse.ok("not implemented yet");
|
|
135
160
|
}
|
|
@@ -147,7 +147,7 @@ export default class RepositoryDatabasePostgres extends RepositoryDatabase
|
|
|
147
147
|
let schema = this.tables[tableName][0].schema;
|
|
148
148
|
let { where, values } = this.toWhere(tableName, filters);
|
|
149
149
|
let query = `SELECT count(*) as count FROM ${schema}.${tableName} WHERE ${where}`
|
|
150
|
-
return this.query<{count:number}>(query, values).then((result) => result[0]
|
|
150
|
+
return this.query<{count:number}>(query, values).then((result) => result[0]?.count ?? 0);
|
|
151
151
|
}
|
|
152
152
|
|
|
153
153
|
async select(tableName: string, select: string, filters: { [key: string]: Primitive | Array<Primitive> }={}): Promise<string[]>
|
|
@@ -156,7 +156,7 @@ export default class RepositoryDatabasePostgres extends RepositoryDatabase
|
|
|
156
156
|
let schema = this.tables[tableName][0].schema;
|
|
157
157
|
let { where, values } = this.toWhere(tableName, filters);
|
|
158
158
|
let query = `SELECT json_agg(u.${select}) as list FROM ${schema}.${tableName} u WHERE ${where}`
|
|
159
|
-
return this.query<{list:string[]}>(query, values).then((result) => result[0]
|
|
159
|
+
return this.query<{list:string[]}>(query, values).then((result) => result[0]?.list ?? []);
|
|
160
160
|
}
|
|
161
161
|
|
|
162
162
|
async del<T>(tableName: string, id: string): Promise<T>
|