@carbonorm/carbonnode 3.4.0 → 3.4.2
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/api/C6Constants.d.ts +2 -0
- package/dist/api/executors/SqlExecutor.d.ts +1 -11
- package/dist/api/orm/builders/ConditionBuilder.d.ts +4 -2
- package/dist/api/orm/builders/JoinBuilder.d.ts +1 -1
- package/dist/api/orm/builders/PaginationBuilder.d.ts +1 -1
- package/dist/api/orm/queries/DeleteQueryBuilder.d.ts +1 -4
- package/dist/api/orm/queries/PostQueryBuilder.d.ts +9 -0
- package/dist/api/orm/queries/SelectQueryBuilder.d.ts +1 -1
- package/dist/api/orm/queries/UpdateQueryBuilder.d.ts +1 -1
- package/dist/api/types/ormInterfaces.d.ts +1 -1
- package/dist/index.cjs.js +78 -69
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.esm.js +78 -70
- package/dist/index.esm.js.map +1 -1
- package/package.json +1 -1
- package/scripts/assets/handlebars/C6.ts.handlebars +1 -2
- package/src/api/C6Constants.ts +1 -0
- package/src/api/executors/SqlExecutor.ts +23 -39
- package/src/api/orm/builders/ConditionBuilder.ts +6 -3
- package/src/api/orm/builders/JoinBuilder.ts +1 -1
- package/src/api/orm/builders/PaginationBuilder.ts +1 -1
- package/src/api/orm/queries/DeleteQueryBuilder.ts +5 -9
- package/src/api/orm/queries/PostQueryBuilder.ts +46 -0
- package/src/api/orm/queries/SelectQueryBuilder.ts +2 -4
- package/src/api/orm/queries/UpdateQueryBuilder.ts +7 -12
- package/src/api/types/ormInterfaces.ts +3 -1
- package/src/index.ts +1 -0
|
@@ -140,6 +140,7 @@ export declare const C6Constants: {
|
|
|
140
140
|
YEARWEEK: string;
|
|
141
141
|
DEPENDANT_ON_ENTITY: string;
|
|
142
142
|
OPTIONS: string;
|
|
143
|
+
INSERT: string;
|
|
143
144
|
GET: string;
|
|
144
145
|
POST: string;
|
|
145
146
|
PUT: string;
|
|
@@ -293,6 +294,7 @@ export declare const C6C: {
|
|
|
293
294
|
YEARWEEK: string;
|
|
294
295
|
DEPENDANT_ON_ENTITY: string;
|
|
295
296
|
OPTIONS: string;
|
|
297
|
+
INSERT: string;
|
|
296
298
|
GET: string;
|
|
297
299
|
POST: string;
|
|
298
300
|
PUT: string;
|
|
@@ -1,26 +1,17 @@
|
|
|
1
1
|
import { OrmGenerics } from "../types/ormGenerics";
|
|
2
2
|
import { DetermineResponseDataType } from "../types/ormInterfaces";
|
|
3
|
-
import { ResultSetHeader } from 'mysql2/promise';
|
|
4
3
|
import { Executor } from "./Executor";
|
|
5
|
-
type QueryType = 'select' | 'update' | 'delete';
|
|
6
4
|
export declare class SqlExecutor<G extends OrmGenerics> extends Executor<G> {
|
|
7
5
|
execute(): Promise<DetermineResponseDataType<G['RequestMethod'], G['RestTableInterface']>>;
|
|
8
6
|
private withConnection;
|
|
9
7
|
serialize: (row: any) => {
|
|
10
8
|
[k: string]: unknown;
|
|
11
9
|
};
|
|
12
|
-
insert(table: G['RestShortTableName'], data: Record<string, any>): Promise<{
|
|
13
|
-
rest: ResultSetHeader;
|
|
14
|
-
sql: {
|
|
15
|
-
sql: string;
|
|
16
|
-
placeholders: string;
|
|
17
|
-
};
|
|
18
|
-
}>;
|
|
19
10
|
formatSQLWithParams(sql: string, params: any[] | {
|
|
20
11
|
[key: string]: any;
|
|
21
12
|
}): string;
|
|
22
13
|
private formatValue;
|
|
23
|
-
runQuery(
|
|
14
|
+
runQuery(): Promise<{
|
|
24
15
|
rest: any;
|
|
25
16
|
sql: {
|
|
26
17
|
sql: any;
|
|
@@ -36,4 +27,3 @@ export declare class SqlExecutor<G extends OrmGenerics> extends Executor<G> {
|
|
|
36
27
|
};
|
|
37
28
|
}>;
|
|
38
29
|
}
|
|
39
|
-
export {};
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { OrmGenerics } from "../../types/ormGenerics";
|
|
2
2
|
import { DetermineResponseDataType } from "../../types/ormInterfaces";
|
|
3
|
+
import { SqlBuilderResult } from "../utils/sqlUtils";
|
|
3
4
|
import { AggregateBuilder } from "./AggregateBuilder";
|
|
4
|
-
export declare class ConditionBuilder<G extends OrmGenerics> extends AggregateBuilder<G> {
|
|
5
|
+
export declare abstract class ConditionBuilder<G extends OrmGenerics> extends AggregateBuilder<G> {
|
|
6
|
+
abstract build(table: string): SqlBuilderResult;
|
|
5
7
|
execute(): Promise<DetermineResponseDataType<G['RequestMethod'], G['RestTableInterface']>>;
|
|
6
8
|
private readonly OPERATORS;
|
|
7
9
|
private validateOperator;
|
|
8
|
-
|
|
10
|
+
addParam(params: any[] | Record<string, any>, column: string, value: any): string;
|
|
9
11
|
buildBooleanJoinedConditions(set: any, andMode?: boolean, params?: any[] | Record<string, any>): string;
|
|
10
12
|
buildWhereClause(whereArg: any, params: any[] | Record<string, any>): string;
|
|
11
13
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { OrmGenerics } from "../../types/ormGenerics";
|
|
2
2
|
import { ConditionBuilder } from "./ConditionBuilder";
|
|
3
|
-
export declare class JoinBuilder<G extends OrmGenerics> extends ConditionBuilder<G> {
|
|
3
|
+
export declare abstract class JoinBuilder<G extends OrmGenerics> extends ConditionBuilder<G> {
|
|
4
4
|
buildJoinClauses(joinArgs: any, params: any[] | Record<string, any>): string;
|
|
5
5
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { OrmGenerics } from "../../types/ormGenerics";
|
|
2
2
|
import { JoinBuilder } from "./JoinBuilder";
|
|
3
|
-
export declare class PaginationBuilder<G extends OrmGenerics> extends JoinBuilder<G> {
|
|
3
|
+
export declare abstract class PaginationBuilder<G extends OrmGenerics> extends JoinBuilder<G> {
|
|
4
4
|
/**
|
|
5
5
|
* MySQL ORDER/LIMIT/OFFSET generator.
|
|
6
6
|
*
|
|
@@ -2,8 +2,5 @@ import { OrmGenerics } from "../../types/ormGenerics";
|
|
|
2
2
|
import { SqlBuilderResult } from "../utils/sqlUtils";
|
|
3
3
|
import { JoinBuilder } from "../builders/JoinBuilder";
|
|
4
4
|
export declare class DeleteQueryBuilder<G extends OrmGenerics> extends JoinBuilder<G> {
|
|
5
|
-
build(table: string
|
|
6
|
-
JOIN?: any;
|
|
7
|
-
WHERE?: any;
|
|
8
|
-
}): SqlBuilderResult;
|
|
5
|
+
build(table: string): SqlBuilderResult;
|
|
9
6
|
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ConditionBuilder } from "../builders/ConditionBuilder";
|
|
2
|
+
import { OrmGenerics } from "../../types/ormGenerics";
|
|
3
|
+
export declare class PostQueryBuilder<G extends OrmGenerics> extends ConditionBuilder<G> {
|
|
4
|
+
private trimTablePrefix;
|
|
5
|
+
build(table: string): {
|
|
6
|
+
sql: string;
|
|
7
|
+
params: any[];
|
|
8
|
+
};
|
|
9
|
+
}
|
|
@@ -2,5 +2,5 @@ import { OrmGenerics } from "../../types/ormGenerics";
|
|
|
2
2
|
import { PaginationBuilder } from "../builders/PaginationBuilder";
|
|
3
3
|
import { SqlBuilderResult } from "../utils/sqlUtils";
|
|
4
4
|
export declare class SelectQueryBuilder<G extends OrmGenerics> extends PaginationBuilder<G> {
|
|
5
|
-
build(table: string,
|
|
5
|
+
build(table: string, isSubSelect?: boolean): SqlBuilderResult;
|
|
6
6
|
}
|
|
@@ -2,5 +2,5 @@ import { OrmGenerics } from "../../types/ormGenerics";
|
|
|
2
2
|
import { PaginationBuilder } from '../builders/PaginationBuilder';
|
|
3
3
|
import { SqlBuilderResult } from "../utils/sqlUtils";
|
|
4
4
|
export declare class UpdateQueryBuilder<G extends OrmGenerics> extends PaginationBuilder<G> {
|
|
5
|
-
build(table: string
|
|
5
|
+
build(table: string): SqlBuilderResult;
|
|
6
6
|
}
|
|
@@ -82,7 +82,7 @@ export type RequestQueryBody<Method extends iRestMethods, T extends {
|
|
|
82
82
|
[key: string]: any;
|
|
83
83
|
} = {}, Overrides extends {
|
|
84
84
|
[key: string]: any;
|
|
85
|
-
} = {}> = Method extends 'GET' | 'PUT' | 'DELETE' ? iAPI<RequestGetPutDeleteBody<Modify<T, Overrides> & Custom>> : iAPI<Modify<T, Overrides> & Custom>;
|
|
85
|
+
} = {}> = Method extends 'GET' | 'PUT' | 'DELETE' ? iAPI<RequestGetPutDeleteBody<Modify<T, Overrides> & Custom>> : Method extends 'POST' ? iAPI<RequestGetPutDeleteBody<Modify<T, Overrides> & Custom> & Modify<T, Overrides> & Custom> : iAPI<Modify<T, Overrides> & Custom>;
|
|
86
86
|
export interface iCacheAPI<ResponseDataType = any> {
|
|
87
87
|
requestArgumentsSerialized: string;
|
|
88
88
|
request: AxiosPromise<ResponseDataType>;
|
package/dist/index.cjs.js
CHANGED
|
@@ -154,6 +154,7 @@ var C6Constants = {
|
|
|
154
154
|
DEPENDANT_ON_ENTITY: 'DEPENDANT_ON_ENTITY',
|
|
155
155
|
// PHP validation
|
|
156
156
|
OPTIONS: 'OPTIONS',
|
|
157
|
+
INSERT: 'INSERT',
|
|
157
158
|
GET: 'GET',
|
|
158
159
|
POST: 'POST',
|
|
159
160
|
PUT: 'PUT',
|
|
@@ -1373,20 +1374,60 @@ var DeleteQueryBuilder = /** @class */ (function (_super) {
|
|
|
1373
1374
|
function DeleteQueryBuilder() {
|
|
1374
1375
|
return _super !== null && _super.apply(this, arguments) || this;
|
|
1375
1376
|
}
|
|
1376
|
-
DeleteQueryBuilder.prototype.build = function (table
|
|
1377
|
+
DeleteQueryBuilder.prototype.build = function (table) {
|
|
1377
1378
|
var params = this.useNamedParams ? {} : [];
|
|
1378
1379
|
var sql = "DELETE `".concat(table, "` FROM `").concat(table, "`");
|
|
1379
|
-
if (
|
|
1380
|
-
sql += this.buildJoinClauses(
|
|
1380
|
+
if (this.request.JOIN) {
|
|
1381
|
+
sql += this.buildJoinClauses(this.request.JOIN, params);
|
|
1381
1382
|
}
|
|
1382
|
-
if (
|
|
1383
|
-
sql += this.buildWhereClause(
|
|
1383
|
+
if (this.request.WHERE) {
|
|
1384
|
+
sql += this.buildWhereClause(this.request.WHERE, params);
|
|
1384
1385
|
}
|
|
1385
1386
|
return { sql: sql, params: params };
|
|
1386
1387
|
};
|
|
1387
1388
|
return DeleteQueryBuilder;
|
|
1388
1389
|
}(JoinBuilder));
|
|
1389
1390
|
|
|
1391
|
+
var PostQueryBuilder = /** @class */ (function (_super) {
|
|
1392
|
+
tslib.__extends(PostQueryBuilder, _super);
|
|
1393
|
+
function PostQueryBuilder() {
|
|
1394
|
+
return _super !== null && _super.apply(this, arguments) || this;
|
|
1395
|
+
}
|
|
1396
|
+
PostQueryBuilder.prototype.trimTablePrefix = function (table, column) {
|
|
1397
|
+
if (!column.includes('.'))
|
|
1398
|
+
return column;
|
|
1399
|
+
var _a = column.split('.', 2), prefix = _a[0], col = _a[1];
|
|
1400
|
+
if (prefix !== table) {
|
|
1401
|
+
throw new Error("Invalid prefixed column: '".concat(column, "'. Expected prefix '").concat(table, ".'"));
|
|
1402
|
+
}
|
|
1403
|
+
return col;
|
|
1404
|
+
};
|
|
1405
|
+
PostQueryBuilder.prototype.build = function (table) {
|
|
1406
|
+
var _this = this;
|
|
1407
|
+
var verb = C6C.REPLACE in this.request ? C6C.REPLACE : C6C.INSERT;
|
|
1408
|
+
var keys = Object.keys(verb in this.request ? this.request[verb] : this.request);
|
|
1409
|
+
var params = [];
|
|
1410
|
+
var placeholders = [];
|
|
1411
|
+
for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {
|
|
1412
|
+
var key = keys_1[_i];
|
|
1413
|
+
var value = this.request[key];
|
|
1414
|
+
var placeholder = this.addParam(params, key, value);
|
|
1415
|
+
placeholders.push(placeholder);
|
|
1416
|
+
}
|
|
1417
|
+
var sql = "".concat(verb, " INTO `").concat(table, "` (\n ").concat(keys.map(function (k) { return "`".concat(_this.trimTablePrefix(table, k), "`"); }).join(', '), "\n ) VALUES (\n ").concat(placeholders.join(', '), "\n )");
|
|
1418
|
+
if (C6C.UPDATE in this.request) {
|
|
1419
|
+
var updateData = this.request[C6C.UPDATE];
|
|
1420
|
+
if (!Array.isArray(updateData)) {
|
|
1421
|
+
throw new Error("Update data must be an array of keys to update, got: ".concat(JSON.stringify(updateData)));
|
|
1422
|
+
}
|
|
1423
|
+
var updateClause = updateData.map(function (k) { return "`".concat(k, "` = VALUES(`").concat(k, "`)"); }).join(', ');
|
|
1424
|
+
sql += " ON DUPLICATE KEY UPDATE ".concat(updateClause);
|
|
1425
|
+
}
|
|
1426
|
+
return { sql: sql, params: params };
|
|
1427
|
+
};
|
|
1428
|
+
return PostQueryBuilder;
|
|
1429
|
+
}(ConditionBuilder));
|
|
1430
|
+
|
|
1390
1431
|
var PaginationBuilder = /** @class */ (function (_super) {
|
|
1391
1432
|
tslib.__extends(PaginationBuilder, _super);
|
|
1392
1433
|
function PaginationBuilder() {
|
|
@@ -1447,10 +1488,11 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
|
|
|
1447
1488
|
function SelectQueryBuilder() {
|
|
1448
1489
|
return _super !== null && _super.apply(this, arguments) || this;
|
|
1449
1490
|
}
|
|
1450
|
-
SelectQueryBuilder.prototype.build = function (table,
|
|
1491
|
+
SelectQueryBuilder.prototype.build = function (table, isSubSelect) {
|
|
1451
1492
|
var _this = this;
|
|
1452
1493
|
var _a;
|
|
1453
1494
|
if (isSubSelect === void 0) { isSubSelect = false; }
|
|
1495
|
+
var args = this.request;
|
|
1454
1496
|
var params = this.useNamedParams ? {} : [];
|
|
1455
1497
|
var selectList = (_a = args.SELECT) !== null && _a !== void 0 ? _a : ['*'];
|
|
1456
1498
|
var selectFields = selectList
|
|
@@ -1476,7 +1518,7 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
|
|
|
1476
1518
|
sql += this.buildPaginationClause(args.PAGINATION);
|
|
1477
1519
|
}
|
|
1478
1520
|
else if (!isSubSelect) {
|
|
1479
|
-
sql +=
|
|
1521
|
+
sql += " LIMIT 100";
|
|
1480
1522
|
}
|
|
1481
1523
|
return { sql: sql, params: params };
|
|
1482
1524
|
};
|
|
@@ -1488,24 +1530,20 @@ var UpdateQueryBuilder = /** @class */ (function (_super) {
|
|
|
1488
1530
|
function UpdateQueryBuilder() {
|
|
1489
1531
|
return _super !== null && _super.apply(this, arguments) || this;
|
|
1490
1532
|
}
|
|
1491
|
-
UpdateQueryBuilder.prototype.build = function (table
|
|
1492
|
-
|
|
1533
|
+
UpdateQueryBuilder.prototype.build = function (table) {
|
|
1534
|
+
var _this = this;
|
|
1535
|
+
var args = this.request;
|
|
1493
1536
|
var params = this.useNamedParams ? {} : [];
|
|
1494
1537
|
var sql = "UPDATE `".concat(table, "`");
|
|
1495
1538
|
if (args.JOIN) {
|
|
1496
1539
|
sql += this.buildJoinClauses(args.JOIN, params);
|
|
1497
1540
|
}
|
|
1498
|
-
|
|
1541
|
+
if (!(C6C.UPDATE in this.request)) {
|
|
1542
|
+
throw new Error("No update data provided in the request.");
|
|
1543
|
+
}
|
|
1544
|
+
var setClauses = Object.entries(this.request[C6C.UPDATE]).map(function (_a) {
|
|
1499
1545
|
var col = _a[0], val = _a[1];
|
|
1500
|
-
|
|
1501
|
-
params.push(val);
|
|
1502
|
-
return "`".concat(col, "` = ?");
|
|
1503
|
-
}
|
|
1504
|
-
else {
|
|
1505
|
-
var key = "param".concat(Object.keys(params).length);
|
|
1506
|
-
params[key] = val;
|
|
1507
|
-
return "`".concat(col, "` = :").concat(key);
|
|
1508
|
-
}
|
|
1546
|
+
return _this.addParam(params, col, val);
|
|
1509
1547
|
});
|
|
1510
1548
|
sql += " SET ".concat(setClauses.join(', '));
|
|
1511
1549
|
if (args.WHERE) {
|
|
@@ -1547,23 +1585,23 @@ var SqlExecutor = /** @class */ (function (_super) {
|
|
|
1547
1585
|
case 'DELETE': return [3 /*break*/, 7];
|
|
1548
1586
|
}
|
|
1549
1587
|
return [3 /*break*/, 9];
|
|
1550
|
-
case 1: return [4 /*yield*/, this.runQuery(
|
|
1588
|
+
case 1: return [4 /*yield*/, this.runQuery()];
|
|
1551
1589
|
case 2:
|
|
1552
1590
|
rest = _b.sent();
|
|
1553
1591
|
console.log("[SQL EXECUTOR] \u2705 GET result:", rest);
|
|
1554
1592
|
return [2 /*return*/, rest];
|
|
1555
|
-
case 3: return [4 /*yield*/, this.
|
|
1593
|
+
case 3: return [4 /*yield*/, this.runQuery()];
|
|
1556
1594
|
case 4:
|
|
1557
1595
|
result = _b.sent();
|
|
1558
1596
|
console.log("[SQL EXECUTOR] \u2705 POST result:", result);
|
|
1559
1597
|
created = { rest: result, created: true };
|
|
1560
1598
|
return [2 /*return*/, created];
|
|
1561
|
-
case 5: return [4 /*yield*/, this.runQuery(
|
|
1599
|
+
case 5: return [4 /*yield*/, this.runQuery()];
|
|
1562
1600
|
case 6:
|
|
1563
1601
|
result = _b.sent();
|
|
1564
1602
|
updated = tslib.__assign(tslib.__assign({}, result), { updated: true, rowCount: result.rest.affectedRows });
|
|
1565
1603
|
return [2 /*return*/, updated];
|
|
1566
|
-
case 7: return [4 /*yield*/, this.runQuery(
|
|
1604
|
+
case 7: return [4 /*yield*/, this.runQuery()];
|
|
1567
1605
|
case 8:
|
|
1568
1606
|
result = _b.sent();
|
|
1569
1607
|
console.log("[SQL EXECUTOR] \u2705 DELETE result:", result);
|
|
@@ -1603,41 +1641,6 @@ var SqlExecutor = /** @class */ (function (_super) {
|
|
|
1603
1641
|
});
|
|
1604
1642
|
});
|
|
1605
1643
|
};
|
|
1606
|
-
SqlExecutor.prototype.insert = function (table, data) {
|
|
1607
|
-
return tslib.__awaiter(this, void 0, void 0, function () {
|
|
1608
|
-
var keys, values, placeholders, sql;
|
|
1609
|
-
var _this = this;
|
|
1610
|
-
return tslib.__generator(this, function (_a) {
|
|
1611
|
-
switch (_a.label) {
|
|
1612
|
-
case 0:
|
|
1613
|
-
keys = Object.keys(data);
|
|
1614
|
-
values = keys.map(function (k) { return data[k]; });
|
|
1615
|
-
placeholders = keys.map(function () { return '?'; }).join(', ');
|
|
1616
|
-
sql = "INSERT INTO `".concat(table, "` (").concat(keys.join(', '), ")\n VALUES (").concat(placeholders, ")");
|
|
1617
|
-
console.log("[SQL EXECUTOR] \uD83E\uDDE0 Generated INSERT SQL:", sql);
|
|
1618
|
-
console.log("[SQL EXECUTOR] \uD83D\uDD22 Values:", values);
|
|
1619
|
-
return [4 /*yield*/, this.withConnection(function (conn) { return tslib.__awaiter(_this, void 0, void 0, function () {
|
|
1620
|
-
var result;
|
|
1621
|
-
return tslib.__generator(this, function (_a) {
|
|
1622
|
-
switch (_a.label) {
|
|
1623
|
-
case 0: return [4 /*yield*/, conn.execute(sql, values)];
|
|
1624
|
-
case 1:
|
|
1625
|
-
result = (_a.sent())[0];
|
|
1626
|
-
return [2 /*return*/, {
|
|
1627
|
-
rest: result,
|
|
1628
|
-
sql: {
|
|
1629
|
-
sql: sql,
|
|
1630
|
-
placeholders: placeholders
|
|
1631
|
-
}
|
|
1632
|
-
}];
|
|
1633
|
-
}
|
|
1634
|
-
});
|
|
1635
|
-
}); })];
|
|
1636
|
-
case 1: return [2 /*return*/, _a.sent()];
|
|
1637
|
-
}
|
|
1638
|
-
});
|
|
1639
|
-
});
|
|
1640
|
-
};
|
|
1641
1644
|
SqlExecutor.prototype.formatSQLWithParams = function (sql, params) {
|
|
1642
1645
|
var _this = this;
|
|
1643
1646
|
if (Array.isArray(params)) {
|
|
@@ -1669,30 +1672,35 @@ var SqlExecutor = /** @class */ (function (_super) {
|
|
|
1669
1672
|
return "'".concat(val.toISOString().slice(0, 19).replace('T', ' '), "'");
|
|
1670
1673
|
return "'".concat(JSON.stringify(val), "'");
|
|
1671
1674
|
};
|
|
1672
|
-
SqlExecutor.prototype.runQuery = function (
|
|
1675
|
+
SqlExecutor.prototype.runQuery = function () {
|
|
1673
1676
|
return tslib.__awaiter(this, void 0, void 0, function () {
|
|
1674
|
-
var builder, QueryResult, formatted, toUnnamed, _a, sql, values;
|
|
1677
|
+
var TABLE_NAME, method, builder, QueryResult, formatted, toUnnamed, _a, sql, values;
|
|
1675
1678
|
var _this = this;
|
|
1676
1679
|
return tslib.__generator(this, function (_b) {
|
|
1677
1680
|
switch (_b.label) {
|
|
1678
1681
|
case 0:
|
|
1679
|
-
|
|
1680
|
-
|
|
1682
|
+
TABLE_NAME = this.config.restModel.TABLE_NAME;
|
|
1683
|
+
method = this.config.requestMethod;
|
|
1684
|
+
switch (method) {
|
|
1685
|
+
case 'GET':
|
|
1681
1686
|
builder = new SelectQueryBuilder(this.config, this.request);
|
|
1682
1687
|
break;
|
|
1683
|
-
case '
|
|
1688
|
+
case 'PUT':
|
|
1684
1689
|
builder = new UpdateQueryBuilder(this.config, this.request);
|
|
1685
1690
|
break;
|
|
1686
|
-
case '
|
|
1691
|
+
case 'DELETE':
|
|
1687
1692
|
builder = new DeleteQueryBuilder(this.config, this.request);
|
|
1688
1693
|
break;
|
|
1694
|
+
case 'POST':
|
|
1695
|
+
builder = new PostQueryBuilder(this.config, this.request);
|
|
1696
|
+
break;
|
|
1689
1697
|
default:
|
|
1690
|
-
throw new Error("Unsupported query
|
|
1698
|
+
throw new Error("Unsupported query method: ".concat(method));
|
|
1691
1699
|
}
|
|
1692
|
-
QueryResult = builder.build(
|
|
1693
|
-
console.log("[SQL EXECUTOR] \uD83E\uDDE0 Generated ".concat(
|
|
1700
|
+
QueryResult = builder.build(TABLE_NAME);
|
|
1701
|
+
console.log("[SQL EXECUTOR] \uD83E\uDDE0 Generated ".concat(method.toUpperCase(), " SQL:"), QueryResult);
|
|
1694
1702
|
formatted = this.formatSQLWithParams(QueryResult.sql, QueryResult.params);
|
|
1695
|
-
console.log("[SQL EXECUTOR] \uD83E\uDDE0 Formatted ".concat(
|
|
1703
|
+
console.log("[SQL EXECUTOR] \uD83E\uDDE0 Formatted ".concat(method.toUpperCase(), " SQL:"), formatted);
|
|
1696
1704
|
toUnnamed = namedPlaceholders();
|
|
1697
1705
|
_a = toUnnamed(QueryResult.sql, QueryResult.params), sql = _a[0], values = _a[1];
|
|
1698
1706
|
return [4 /*yield*/, this.withConnection(function (conn) { return tslib.__awaiter(_this, void 0, void 0, function () {
|
|
@@ -1702,7 +1710,7 @@ var SqlExecutor = /** @class */ (function (_super) {
|
|
|
1702
1710
|
case 0: return [4 /*yield*/, conn.query(sql, values)];
|
|
1703
1711
|
case 1:
|
|
1704
1712
|
result = (_a.sent())[0];
|
|
1705
|
-
if (
|
|
1713
|
+
if (method === 'GET') {
|
|
1706
1714
|
console.log("[SQL EXECUTOR] \uD83D\uDCE6 Rows fetched:", result);
|
|
1707
1715
|
return [2 /*return*/, {
|
|
1708
1716
|
rest: result.map(this.serialize),
|
|
@@ -1942,6 +1950,7 @@ exports.JoinBuilder = JoinBuilder;
|
|
|
1942
1950
|
exports.POST = POST;
|
|
1943
1951
|
exports.PUT = PUT;
|
|
1944
1952
|
exports.PaginationBuilder = PaginationBuilder;
|
|
1953
|
+
exports.PostQueryBuilder = PostQueryBuilder;
|
|
1945
1954
|
exports.SelectQueryBuilder = SelectQueryBuilder;
|
|
1946
1955
|
exports.SqlExecutor = SqlExecutor;
|
|
1947
1956
|
exports.TestRestfulResponse = TestRestfulResponse;
|