exodus-framework 2.0.731 → 2.0.732
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/lib/contracts/http.d.ts
CHANGED
@@ -49,12 +49,24 @@ export declare enum EApiRequestMethod {
|
|
49
49
|
DELETE = "delete",
|
50
50
|
PATCH = "patch"
|
51
51
|
}
|
52
|
+
export type SimpleCondition = {
|
53
|
+
eq?: any;
|
54
|
+
gt?: any;
|
55
|
+
lt?: any;
|
56
|
+
between?: [any, any];
|
57
|
+
notBetween?: [any, any];
|
58
|
+
};
|
59
|
+
export type LogicalCondition = {
|
60
|
+
or?: SimpleCondition[];
|
61
|
+
and?: SimpleCondition[];
|
62
|
+
};
|
63
|
+
export type IRequestFilterCondition = SimpleCondition & LogicalCondition;
|
52
64
|
export interface IRequestListData<D> {
|
53
65
|
page: number;
|
54
66
|
limit?: number;
|
55
67
|
orderBy?: keyof D;
|
56
68
|
order?: 'ASC' | 'DESC';
|
57
|
-
filters?: Record<keyof D,
|
69
|
+
filters?: Record<keyof D, IRequestFilterCondition>;
|
58
70
|
}
|
59
71
|
export interface IResponseListData<D> {
|
60
72
|
total: number;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/contracts/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAOzC,MAAM,CAAC,OAAO,MAAM,oBAAoB,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;AAO3E,MAAM,CAAC,OAAO,MAAM,aAAa,CAAC,CAAC,GAAG,OAAO,IAAI;IAC/C,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,oBAAoB,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,CAAC,CAAC;CACV,CAAC;AAEF,MAAM,CAAC,OAAO,WAAW,kBAAkB,CAAC,CAAC,GAAG,OAAO;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,CAAC,CAAC;CACV;AAED,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,oBAAoB,CAAC;IAC3B,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAQD,oBAAY,iBAAiB;IAE3B,QAAQ,MAAM;IACd,QAAQ,MAAM;IACd,OAAO,MAAM;IACb,gCAAgC,MAAM;IAEtC,yBAAyB,MAAM;IAC/B,sBAAsB,MAAM;IAG5B,iBAAiB,MAAM;IACvB,mBAAmB,MAAM;IACzB,wBAAwB,MAAM;IAC9B,oBAAoB,MAAM;IAG1B,WAAW,MAAM;IACjB,gBAAgB,MAAM;IACtB,kBAAkB,MAAM;IACxB,wBAAwB,MAAM;IAC9B,cAAc,MAAM;IACpB,uBAAuB,MAAM;IAC7B,kBAAkB,MAAM;CACzB;AACD,oBAAY,iBAAiB;IAC3B,IAAI,SAAS;IACb,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,MAAM,WAAW;IACjB,KAAK,UAAU;CAChB;AAED,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC;IAClB,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/contracts/http.ts"],"names":[],"mappings":"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"}
|
package/lib/utils/database.d.ts
CHANGED
@@ -1,4 +1,7 @@
|
|
1
|
+
import { WhereOptions } from '@sequelize/core';
|
1
2
|
import { Sequelize } from 'sequelize';
|
3
|
+
import { IRequestFilterCondition } from '../contracts';
|
2
4
|
export declare const serviceDB: Sequelize;
|
3
5
|
export declare const masterDB: Sequelize;
|
6
|
+
export declare function processFilters<D>(filters?: Record<keyof D, IRequestFilterCondition>): WhereOptions<D>;
|
4
7
|
//# sourceMappingURL=database.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/utils/database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
1
|
+
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/utils/database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAM,SAAS,EAA2B,MAAM,WAAW,CAAC;AAEnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAGvD,eAAO,MAAM,SAAS,WAYpB,CAAC;AAEH,eAAO,MAAM,QAAQ,WAYnB,CAAC;AAsCH,wBAAgB,cAAc,CAAC,CAAC,EAC9B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,uBAAuB,CAAC,GACjD,YAAY,CAAC,CAAC,CAAC,CA+BjB"}
|
package/lib/utils/database.js
CHANGED
@@ -3,10 +3,12 @@
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
4
4
|
value: true
|
5
5
|
});
|
6
|
-
exports.
|
6
|
+
exports.masterDB = void 0;
|
7
|
+
exports.processFilters = processFilters;
|
8
|
+
exports.serviceDB = void 0;
|
7
9
|
var _sequelize = require("sequelize");
|
8
|
-
var _logger = _interopRequireDefault(require("./logger"));
|
9
10
|
var _app = require("../app");
|
11
|
+
var _logger = _interopRequireDefault(require("./logger"));
|
10
12
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
11
13
|
const serviceDB = exports.serviceDB = new _sequelize.Sequelize({
|
12
14
|
database: _app.Core.settings.getDatabase().service.database,
|
@@ -33,4 +35,65 @@ const masterDB = exports.masterDB = new _sequelize.Sequelize({
|
|
33
35
|
logging(sql, timing) {
|
34
36
|
(0, _logger.default)().trace('DATABASE', sql, timing);
|
35
37
|
}
|
36
|
-
});
|
38
|
+
});
|
39
|
+
|
40
|
+
// Função recursiva para processar condições simples e lógicas
|
41
|
+
function processCondition(cond) {
|
42
|
+
if ('or' in cond) {
|
43
|
+
return {
|
44
|
+
[_sequelize.Op.or]: cond.or.map(subCond => processCondition(subCond))
|
45
|
+
};
|
46
|
+
}
|
47
|
+
if ('and' in cond) {
|
48
|
+
return {
|
49
|
+
[_sequelize.Op.and]: cond.and.map(subCond => processCondition(subCond))
|
50
|
+
};
|
51
|
+
}
|
52
|
+
const simpleWhere = {};
|
53
|
+
if (cond.eq !== undefined) {
|
54
|
+
simpleWhere[_sequelize.Op.eq] = cond.eq;
|
55
|
+
}
|
56
|
+
if (cond.gt !== undefined) {
|
57
|
+
simpleWhere[_sequelize.Op.gt] = cond.gt;
|
58
|
+
}
|
59
|
+
if (cond.lt !== undefined) {
|
60
|
+
simpleWhere[_sequelize.Op.lt] = cond.lt;
|
61
|
+
}
|
62
|
+
if (cond.between !== undefined) {
|
63
|
+
simpleWhere[_sequelize.Op.between] = cond.between;
|
64
|
+
}
|
65
|
+
if (cond.notBetween !== undefined) {
|
66
|
+
simpleWhere[_sequelize.Op.notBetween] = cond.notBetween;
|
67
|
+
}
|
68
|
+
return simpleWhere;
|
69
|
+
}
|
70
|
+
|
71
|
+
// Função principal para processar os filtros
|
72
|
+
function processFilters(filters) {
|
73
|
+
if (!filters) {
|
74
|
+
return {};
|
75
|
+
}
|
76
|
+
const where = {};
|
77
|
+
Object.entries(filters).forEach(([key, condition]) => {
|
78
|
+
const field = key;
|
79
|
+
const processedCondition = processCondition(condition);
|
80
|
+
|
81
|
+
// Verifica se a condição é uma condição lógica global (Op.or ou Op.and)
|
82
|
+
if (processedCondition[_sequelize.Op.or] || processedCondition[_sequelize.Op.and]) {
|
83
|
+
// Mescla as condições lógicas no objeto where
|
84
|
+
Object.assign(where, processedCondition);
|
85
|
+
} else {
|
86
|
+
// Caso contrário, aplica a condição no campo específico
|
87
|
+
if (where[field] && typeof where[field] === 'object') {
|
88
|
+
// Combina múltiplas condições no mesmo campo com Op.and
|
89
|
+
where[field] = {
|
90
|
+
...where[field],
|
91
|
+
...processedCondition
|
92
|
+
};
|
93
|
+
} else {
|
94
|
+
where[field] = processedCondition;
|
95
|
+
}
|
96
|
+
}
|
97
|
+
});
|
98
|
+
return where;
|
99
|
+
}
|