ismx-nexo-node-app 0.4.21 → 0.4.23
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 +9 -5
- package/dist/js/repository/utils/PostgresUtils.js +10 -1
- package/dist/types/api/ServiceRestFormalTemplate.d.ts +1 -1
- package/dist/types/repository/utils/PostgresUtils.d.ts +1 -0
- package/package.json +1 -1
- package/src/main/node/api/ServiceRestFormalTemplate.ts +8 -5
- package/src/main/node/repository/utils/PostgresUtils.ts +10 -1
|
@@ -95,6 +95,15 @@ class ServiceRestFormalTemplate {
|
|
|
95
95
|
return Service_1.HttpResponse.ok(result);
|
|
96
96
|
});
|
|
97
97
|
}
|
|
98
|
+
servePut(request) {
|
|
99
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
100
|
+
var _a;
|
|
101
|
+
let id = this.getFormalId(request);
|
|
102
|
+
(_a = request.body) === null || _a === void 0 ? true : delete _a[this.indexer];
|
|
103
|
+
let result = yield this.database.update(this.tableName, id, request.body);
|
|
104
|
+
return Service_1.HttpResponse.ok(result);
|
|
105
|
+
});
|
|
106
|
+
}
|
|
98
107
|
servePost(request) {
|
|
99
108
|
return __awaiter(this, void 0, void 0, function* () {
|
|
100
109
|
return Service_1.HttpResponse.ok(yield this.database.add(this.tableName, request.body));
|
|
@@ -169,11 +178,6 @@ class ServiceRestFormalTemplate {
|
|
|
169
178
|
return Service_1.HttpResponse.ok((yield this.database.count(this.tableName, Object.assign({}, request.query))));
|
|
170
179
|
});
|
|
171
180
|
}
|
|
172
|
-
servePut(request) {
|
|
173
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
174
|
-
return Service_1.HttpResponse.ok("not implemented yet");
|
|
175
|
-
});
|
|
176
|
-
}
|
|
177
181
|
serveDel(request) {
|
|
178
182
|
return __awaiter(this, void 0, void 0, function* () {
|
|
179
183
|
return Service_1.HttpResponse.ok("not implemented yet");
|
|
@@ -19,7 +19,16 @@ class PostgresUtils {
|
|
|
19
19
|
]));
|
|
20
20
|
}
|
|
21
21
|
static columns(table) {
|
|
22
|
-
return table.map((t) =>
|
|
22
|
+
return table.map((t) => {
|
|
23
|
+
if (!PostgresUtils.isReservedWord(t.name))
|
|
24
|
+
return t.name;
|
|
25
|
+
else
|
|
26
|
+
return `"${t.name}"`;
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
static isReservedWord(word) {
|
|
30
|
+
const reservedWords = new Set(['select', 'from', 'where', 'join', 'table', 'user', 'group', 'order', 'limit', 'offset', 'insert', 'update', 'delete']);
|
|
31
|
+
return reservedWords.has(word.toLowerCase());
|
|
23
32
|
}
|
|
24
33
|
static bindOrDefault(table, object, startIndex) {
|
|
25
34
|
let index = startIndex;
|
|
@@ -41,6 +41,7 @@ export default class ServiceRestFormalTemplate<Model = any> {
|
|
|
41
41
|
protected serveGetKeymap(request: HttpRequest): Promise<HttpResponse<{
|
|
42
42
|
[key: string]: any;
|
|
43
43
|
}>>;
|
|
44
|
+
protected servePut(request: HttpRequest<Model>): Promise<HttpResponse<Model>>;
|
|
44
45
|
protected servePost(request: HttpRequest<Model>): Promise<HttpResponse<Model>>;
|
|
45
46
|
protected servePostList(request: HttpRequest<Model[]>): Promise<HttpResponse<Model[]>>;
|
|
46
47
|
protected servePostKeymap(request: HttpRequest<{
|
|
@@ -57,7 +58,6 @@ export default class ServiceRestFormalTemplate<Model = any> {
|
|
|
57
58
|
protected serveSelect(request: HttpRequest): Promise<HttpResponse<string[]>>;
|
|
58
59
|
protected serveExist(request: HttpRequest): Promise<HttpResponse<Boolean>>;
|
|
59
60
|
protected serveCount(request: HttpRequest): Promise<HttpResponse<Number>>;
|
|
60
|
-
protected servePut(request: HttpRequest<Model>): Promise<HttpResponse<Model>>;
|
|
61
61
|
protected serveDel(request: HttpRequest): Promise<HttpResponse<Model>>;
|
|
62
62
|
protected unwrap<Res>(request: Promise<HttpResponse<Wrapper<Res>>>): Promise<Res | undefined>;
|
|
63
63
|
protected fullSelect<Req, Res>(request: HttpRequest<Req>, api: {
|
|
@@ -5,6 +5,7 @@ export default abstract class PostgresUtils {
|
|
|
5
5
|
static camelToSnake(column: string): string;
|
|
6
6
|
static snakeToCamel(obj: any): any;
|
|
7
7
|
static columns(table: Column[]): string[];
|
|
8
|
+
static isReservedWord(word: string): boolean;
|
|
8
9
|
static bindOrDefault(table: Column[], object: {
|
|
9
10
|
[p: string]: Primitive;
|
|
10
11
|
}, startIndex: any): {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {HttpRequest, HttpResponse} from "./Service";
|
|
2
2
|
import ServiceRestFormal, {Wrapper} from "./ServiceRestFormal";
|
|
3
|
-
import {Pagination} from "../repository/Repository";
|
|
3
|
+
import {Pagination, Transient} from "../repository/Repository";
|
|
4
4
|
import RepositoryDatabase from "../repository/RepositoryDatabase";
|
|
5
5
|
|
|
6
6
|
export default class ServiceRestFormalTemplate<Model=any>
|
|
@@ -103,6 +103,13 @@ export default class ServiceRestFormalTemplate<Model=any>
|
|
|
103
103
|
return HttpResponse.ok(result);
|
|
104
104
|
}
|
|
105
105
|
|
|
106
|
+
protected async servePut(request: HttpRequest<Model>): Promise<HttpResponse<Model>> {
|
|
107
|
+
let id = this.getFormalId(request);
|
|
108
|
+
delete request.body?.[this.indexer as keyof Model];
|
|
109
|
+
let result = await this.database.update<Model>(this.tableName, id, request.body);
|
|
110
|
+
return HttpResponse.ok(result);
|
|
111
|
+
}
|
|
112
|
+
|
|
106
113
|
protected async servePost(request: HttpRequest<Model>): Promise<HttpResponse<Model>> {
|
|
107
114
|
return HttpResponse.ok(await this.database.add<Model>(this.tableName, request.body));
|
|
108
115
|
}
|
|
@@ -162,10 +169,6 @@ export default class ServiceRestFormalTemplate<Model=any>
|
|
|
162
169
|
return HttpResponse.ok((await this.database.count(this.tableName, { ...request.query })));
|
|
163
170
|
}
|
|
164
171
|
|
|
165
|
-
protected async servePut(request: HttpRequest<Model>): Promise<HttpResponse<Model>> {
|
|
166
|
-
return HttpResponse.ok("not implemented yet");
|
|
167
|
-
}
|
|
168
|
-
|
|
169
172
|
protected async serveDel(request: HttpRequest): Promise<HttpResponse<Model>> {
|
|
170
173
|
return HttpResponse.ok("not implemented yet");
|
|
171
174
|
}
|
|
@@ -27,7 +27,16 @@ export default abstract class PostgresUtils
|
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
static columns(table: Column[]): string[] {
|
|
30
|
-
return table.map((t) =>
|
|
30
|
+
return table.map((t) => {
|
|
31
|
+
if (!PostgresUtils.isReservedWord(t.name))
|
|
32
|
+
return t.name;
|
|
33
|
+
else return `"${t.name}"`;
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
static isReservedWord(word: string): boolean {
|
|
38
|
+
const reservedWords = new Set(['select', 'from', 'where', 'join', 'table', 'user', 'group', 'order', 'limit', 'offset', 'insert', 'update', 'delete']);
|
|
39
|
+
return reservedWords.has(word.toLowerCase());
|
|
31
40
|
}
|
|
32
41
|
|
|
33
42
|
static bindOrDefault(table: Column[], object: { [p: string]: Primitive }, startIndex: any): { bindings: string[], values: any[] } {
|