ismx-nexo-node-app 0.3.33 → 0.3.35
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 +10 -2
- package/dist/js/repository/RepositoryDatabasePostgres.js +5 -5
- package/dist/types/api/ServiceRestFormalTemplate.d.ts +6 -3
- package/dist/types/repository/RepositoryDatabasePostgres.d.ts +6 -1
- package/package.json +1 -1
- package/src/main/node/api/ServiceRestFormalTemplate.ts +8 -3
- package/src/main/node/repository/RepositoryDatabasePostgres.ts +5 -5
|
@@ -17,8 +17,6 @@ const ServiceRestFormal_1 = __importDefault(require("./ServiceRestFormal"));
|
|
|
17
17
|
class ServiceRestFormalTemplate {
|
|
18
18
|
constructor(resource, database, tableName) {
|
|
19
19
|
this.indexer = "id";
|
|
20
|
-
this.unwrap = ServiceRestFormal_1.default.unwrap;
|
|
21
|
-
this.fullSelect = ServiceRestFormal_1.default.fullSelect;
|
|
22
20
|
this.resource = resource;
|
|
23
21
|
this.database = database;
|
|
24
22
|
this.tableName = tableName;
|
|
@@ -141,5 +139,15 @@ class ServiceRestFormalTemplate {
|
|
|
141
139
|
return Service_1.HttpResponse.ok("not implemented yet");
|
|
142
140
|
});
|
|
143
141
|
}
|
|
142
|
+
unwrap(request) {
|
|
143
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
144
|
+
return ServiceRestFormal_1.default.unwrap(request);
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
fullSelect(request, api) {
|
|
148
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
149
|
+
return ServiceRestFormal_1.default.fullSelect(request, api);
|
|
150
|
+
});
|
|
151
|
+
}
|
|
144
152
|
}
|
|
145
153
|
exports.default = ServiceRestFormalTemplate;
|
|
@@ -72,7 +72,7 @@ class RepositoryDatabasePostgres extends RepositoryDatabase_1.default {
|
|
|
72
72
|
return __awaiter(this, void 0, void 0, function* () {
|
|
73
73
|
if (!this.tables[tableName])
|
|
74
74
|
throw new Error(`table ${tableName} does not exist`);
|
|
75
|
-
let { where, values } = this.
|
|
75
|
+
let { where, values } = this.toWhere(tableName, filters);
|
|
76
76
|
let query = `SELECT * FROM ${this.schema}.${tableName} WHERE ${where}`;
|
|
77
77
|
return this.query(query, values);
|
|
78
78
|
});
|
|
@@ -137,7 +137,7 @@ class RepositoryDatabasePostgres extends RepositoryDatabase_1.default {
|
|
|
137
137
|
let table = this.tables[tableName];
|
|
138
138
|
let columns = PostgresUtils_1.default.columns(table);
|
|
139
139
|
let offset = maxResults * pageNumber;
|
|
140
|
-
let { where, values } = this.
|
|
140
|
+
let { where, values } = this.toWhere(tableName, filters, "", 4);
|
|
141
141
|
let query = `SELECT * FROM ${this.schema}.${tableName} WHERE ${where} ORDER BY $1 LIMIT $2 OFFSET $3`;
|
|
142
142
|
let elements = this.query(query, [sortKey, maxResults, offset, ...values]);
|
|
143
143
|
let total = this.count(tableName, filters);
|
|
@@ -148,7 +148,7 @@ class RepositoryDatabasePostgres extends RepositoryDatabase_1.default {
|
|
|
148
148
|
return __awaiter(this, void 0, void 0, function* () {
|
|
149
149
|
if (!this.tables[tableName])
|
|
150
150
|
throw new Error(`table ${tableName} does not exist`);
|
|
151
|
-
let { where, values } = this.
|
|
151
|
+
let { where, values } = this.toWhere(tableName, filters);
|
|
152
152
|
let query = `SELECT count(*) as count FROM ${this.schema}.${tableName} WHERE ${where}`;
|
|
153
153
|
return this.query(query, values).then((result) => result[0].count);
|
|
154
154
|
});
|
|
@@ -157,7 +157,7 @@ class RepositoryDatabasePostgres extends RepositoryDatabase_1.default {
|
|
|
157
157
|
return __awaiter(this, void 0, void 0, function* () {
|
|
158
158
|
if (!this.tables[tableName])
|
|
159
159
|
throw new Error(`table ${tableName} does not exist`);
|
|
160
|
-
let { where, values } = this.
|
|
160
|
+
let { where, values } = this.toWhere(tableName, filters);
|
|
161
161
|
let query = `SELECT json_agg(u.${select}) as list FROM ${this.schema}.${tableName} u WHERE ${where}`;
|
|
162
162
|
return this.query(query, values).then((result) => result[0].list);
|
|
163
163
|
});
|
|
@@ -167,7 +167,7 @@ class RepositoryDatabasePostgres extends RepositoryDatabase_1.default {
|
|
|
167
167
|
throw new Error(`not implemented yet`);
|
|
168
168
|
});
|
|
169
169
|
}
|
|
170
|
-
|
|
170
|
+
toWhere(tableName, filters, alias = "", index = 1) {
|
|
171
171
|
let table = this.tables[tableName];
|
|
172
172
|
let columns = PostgresUtils_1.default.columns(table);
|
|
173
173
|
let elements = Object.entries(filters !== null && filters !== void 0 ? filters : []);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { HttpRequest, HttpResponse } from "./Service";
|
|
2
|
-
import ServiceRestFormal from "./ServiceRestFormal";
|
|
2
|
+
import ServiceRestFormal, { Wrapper } from "./ServiceRestFormal";
|
|
3
3
|
import { Pagination } from "../repository/RepositoryDatabase";
|
|
4
4
|
import RepositoryDatabase from "../repository/RepositoryDatabase";
|
|
5
5
|
export default class ServiceRestFormalTemplate<Model = any> {
|
|
@@ -39,6 +39,9 @@ export default class ServiceRestFormalTemplate<Model = any> {
|
|
|
39
39
|
protected servePost(request: HttpRequest<Model>): Promise<HttpResponse<Model>>;
|
|
40
40
|
protected servePut(request: HttpRequest<Model>): Promise<HttpResponse<Model>>;
|
|
41
41
|
protected serveDel(request: HttpRequest): Promise<HttpResponse<Model>>;
|
|
42
|
-
protected
|
|
43
|
-
protected
|
|
42
|
+
protected unwrap<Res>(request: Promise<HttpResponse<Wrapper<Res>>>): Promise<Res | undefined>;
|
|
43
|
+
protected fullSelect<Req, Res>(request: HttpRequest<Req>, api: {
|
|
44
|
+
select: ServiceRestFormal<Req, string[]>;
|
|
45
|
+
full: ServiceRestFormal<Req, Res>;
|
|
46
|
+
}): Promise<(Awaited<Res> | undefined)[]>;
|
|
44
47
|
}
|
|
@@ -45,6 +45,11 @@ export default class RepositoryDatabasePostgres extends RepositoryDatabase {
|
|
|
45
45
|
[key: string]: Primitive | Array<Primitive>;
|
|
46
46
|
}): Promise<string[]>;
|
|
47
47
|
del<T>(tableName: string, id: string): Promise<T>;
|
|
48
|
-
|
|
48
|
+
toWhere(tableName: string, filters?: {
|
|
49
|
+
[key: string]: Primitive | Array<Primitive>;
|
|
50
|
+
}, alias?: string, index?: number): {
|
|
51
|
+
where: string;
|
|
52
|
+
values: (string | number | Date | Primitive[] | null | undefined)[];
|
|
53
|
+
};
|
|
49
54
|
private introspect;
|
|
50
55
|
}
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import {HttpRequest, HttpResponse} from "./Service";
|
|
2
|
-
import ServiceRestFormal from "./ServiceRestFormal";
|
|
2
|
+
import ServiceRestFormal, {Wrapper} from "./ServiceRestFormal";
|
|
3
3
|
import {Pagination} from "../repository/RepositoryDatabase";
|
|
4
4
|
import RepositoryDatabase from "../repository/RepositoryDatabase";
|
|
5
5
|
|
|
@@ -138,6 +138,11 @@ export default class ServiceRestFormalTemplate<Model=any>
|
|
|
138
138
|
return HttpResponse.ok("not implemented yet");
|
|
139
139
|
}
|
|
140
140
|
|
|
141
|
-
protected
|
|
142
|
-
|
|
141
|
+
protected async unwrap<Res>(request: Promise<HttpResponse<Wrapper<Res>>>): Promise<Res | undefined> {
|
|
142
|
+
return ServiceRestFormal.unwrap<Res>(request);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
protected async fullSelect<Req, Res>(request: HttpRequest<Req>, api: { select: ServiceRestFormal<Req, string[]>, full: ServiceRestFormal<Req, Res> }) {
|
|
146
|
+
return ServiceRestFormal.fullSelect(request, api);
|
|
147
|
+
}
|
|
143
148
|
}
|
|
@@ -72,7 +72,7 @@ export default class RepositoryDatabasePostgres extends RepositoryDatabase
|
|
|
72
72
|
async find<T>(tableName: string, filters: { [key: string]: Primitive | Array<any> }): Promise<T[]>
|
|
73
73
|
{
|
|
74
74
|
if (!this.tables[tableName]) throw new Error(`table ${tableName} does not exist`);
|
|
75
|
-
let { where, values } = this.
|
|
75
|
+
let { where, values } = this.toWhere(tableName, filters);
|
|
76
76
|
let query = `SELECT * FROM ${this.schema}.${tableName} WHERE ${where}`
|
|
77
77
|
return this.query<T>(query, values);
|
|
78
78
|
}
|
|
@@ -136,7 +136,7 @@ export default class RepositoryDatabasePostgres extends RepositoryDatabase
|
|
|
136
136
|
let columns = PostgresUtils.columns(table);
|
|
137
137
|
let offset = maxResults * pageNumber;
|
|
138
138
|
|
|
139
|
-
let { where, values } = this.
|
|
139
|
+
let { where, values } = this.toWhere(tableName, filters, "", 4);
|
|
140
140
|
let query = `SELECT * FROM ${this.schema}.${tableName} WHERE ${ where } ORDER BY $1 LIMIT $2 OFFSET $3`;
|
|
141
141
|
let elements = this.query<T>(query, [sortKey, maxResults, offset, ...values])
|
|
142
142
|
|
|
@@ -149,7 +149,7 @@ export default class RepositoryDatabasePostgres extends RepositoryDatabase
|
|
|
149
149
|
async count(tableName: string, filters?: { [key: string]: Primitive | Array<Primitive> }): Promise<number>
|
|
150
150
|
{
|
|
151
151
|
if (!this.tables[tableName]) throw new Error(`table ${tableName} does not exist`);
|
|
152
|
-
let { where, values } = this.
|
|
152
|
+
let { where, values } = this.toWhere(tableName, filters);
|
|
153
153
|
let query = `SELECT count(*) as count FROM ${this.schema}.${tableName} WHERE ${where}`
|
|
154
154
|
return this.query<{count:number}>(query, values).then((result) => result[0].count);
|
|
155
155
|
}
|
|
@@ -157,7 +157,7 @@ export default class RepositoryDatabasePostgres extends RepositoryDatabase
|
|
|
157
157
|
async select(tableName: string, select: string, filters?: { [key: string]: Primitive | Array<Primitive> }): Promise<string[]>
|
|
158
158
|
{
|
|
159
159
|
if (!this.tables[tableName]) throw new Error(`table ${tableName} does not exist`);
|
|
160
|
-
let { where, values } = this.
|
|
160
|
+
let { where, values } = this.toWhere(tableName, filters);
|
|
161
161
|
let query = `SELECT json_agg(u.${select}) as list FROM ${this.schema}.${tableName} u WHERE ${where}`
|
|
162
162
|
return this.query<{list:string[]}>(query, values).then((result) => result[0].list);
|
|
163
163
|
}
|
|
@@ -167,7 +167,7 @@ export default class RepositoryDatabasePostgres extends RepositoryDatabase
|
|
|
167
167
|
throw new Error(`not implemented yet`);
|
|
168
168
|
}
|
|
169
169
|
|
|
170
|
-
|
|
170
|
+
toWhere(tableName: string, filters?: { [key: string]: Primitive | Array<Primitive> }, alias:string = "", index=1)
|
|
171
171
|
{
|
|
172
172
|
let table = this.tables[tableName];
|
|
173
173
|
let columns = PostgresUtils.columns(table);
|