test-entity-library-asm 2.8.17 → 2.8.18
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/CustomRepository.d.ts +5 -2
- package/dist/CustomRepository.js +6 -2
- package/dist/filters/VerifyLocalsInformation.d.ts +6 -0
- package/dist/filters/VerifyLocalsInformation.js +184 -0
- package/dist/interfaces.d.ts +6 -2
- package/package.json +1 -1
- package/src/CustomRepository.ts +9 -2
- package/src/filters/VerifyLocalsInformation.ts +209 -0
- package/src/interfaces.ts +42 -37
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DataSource, EntityTarget, Repository, ObjectLiteral } from "typeorm";
|
|
2
|
-
import { IBasicCompany, IBasicLazyEvent, IPropsDiscountUserOrCompany, IPropsQueryVerifyLocal } from "./interfaces";
|
|
2
|
+
import { IBasicCompany, IBasicLazyEvent, IPropsDiscountUserOrCompany, IPropsQueryVerifyLocal, IPropsQueryVerifyLocals } from "./interfaces";
|
|
3
3
|
export declare class CustomRepository<T extends ObjectLiteral> extends Repository<T> {
|
|
4
4
|
constructor(target: EntityTarget<T>, dataSource: DataSource);
|
|
5
5
|
getVerifyLocals({ status, lazyEvent }: IPropsQueryVerifyLocal): Promise<{
|
|
@@ -18,5 +18,8 @@ export declare class CustomRepository<T extends ObjectLiteral> extends Repositor
|
|
|
18
18
|
data: any[];
|
|
19
19
|
totalRecords: number;
|
|
20
20
|
}>;
|
|
21
|
-
|
|
21
|
+
getVerifyLocalsInformationWrapper(params: IPropsQueryVerifyLocals): Promise<{
|
|
22
|
+
data: any[];
|
|
23
|
+
totalRecords: number;
|
|
24
|
+
}>;
|
|
22
25
|
}
|
package/dist/CustomRepository.js
CHANGED
|
@@ -56,6 +56,7 @@ var typeorm_1 = require("typeorm");
|
|
|
56
56
|
var utils_1 = require("./utils");
|
|
57
57
|
var _1 = require(".");
|
|
58
58
|
var LocalsCompanyInformation_1 = require("./filters/LocalsCompanyInformation");
|
|
59
|
+
var VerifyLocalsInformation_1 = require("./filters/VerifyLocalsInformation");
|
|
59
60
|
var CustomRepository = /** @class */ (function (_super) {
|
|
60
61
|
__extends(CustomRepository, _super);
|
|
61
62
|
function CustomRepository(target, dataSource) {
|
|
@@ -744,10 +745,13 @@ var CustomRepository = /** @class */ (function (_super) {
|
|
|
744
745
|
});
|
|
745
746
|
});
|
|
746
747
|
};
|
|
747
|
-
CustomRepository.prototype.
|
|
748
|
+
CustomRepository.prototype.getVerifyLocalsInformationWrapper = function (params) {
|
|
748
749
|
return __awaiter(this, void 0, void 0, function () {
|
|
749
750
|
return __generator(this, function (_a) {
|
|
750
|
-
|
|
751
|
+
switch (_a.label) {
|
|
752
|
+
case 0: return [4 /*yield*/, (0, VerifyLocalsInformation_1.getVerifyLocalsInformation)(this, params)];
|
|
753
|
+
case 1: return [2 /*return*/, _a.sent()];
|
|
754
|
+
}
|
|
751
755
|
});
|
|
752
756
|
});
|
|
753
757
|
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Repository } from "typeorm";
|
|
2
|
+
import { IPropsQueryVerifyLocals } from "../interfaces";
|
|
3
|
+
export declare function getVerifyLocalsInformation(repository: Repository<any>, { status, lazyEvent, partner, assigned_master }: IPropsQueryVerifyLocals): Promise<{
|
|
4
|
+
data: any[];
|
|
5
|
+
totalRecords: number;
|
|
6
|
+
}>;
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.getVerifyLocalsInformation = void 0;
|
|
40
|
+
var __1 = require("..");
|
|
41
|
+
function getVerifyLocalsInformation(repository_1, _a) {
|
|
42
|
+
return __awaiter(this, arguments, void 0, function (repository, _b) {
|
|
43
|
+
var timezone, queryBuilder, globalValue, filters, order, jsonPath, _c, data, total;
|
|
44
|
+
var status = _b.status, lazyEvent = _b.lazyEvent, partner = _b.partner, assigned_master = _b.assigned_master;
|
|
45
|
+
return __generator(this, function (_d) {
|
|
46
|
+
switch (_d.label) {
|
|
47
|
+
case 0:
|
|
48
|
+
timezone = (0, __1.getTimezoneOffset)((0, __1.getTimeZone)());
|
|
49
|
+
queryBuilder = repository
|
|
50
|
+
.createQueryBuilder("verify_local")
|
|
51
|
+
.skip(lazyEvent.first)
|
|
52
|
+
.take(lazyEvent.rows);
|
|
53
|
+
//DOC: Filtro global
|
|
54
|
+
if (lazyEvent.filters["global"] && lazyEvent.filters["global"].value) {
|
|
55
|
+
globalValue = "%".concat(lazyEvent.filters["global"].value.toLowerCase(), "%");
|
|
56
|
+
queryBuilder.andWhere('(LOWER(JSON_UNQUOTE(JSON_EXTRACT(verify_local.local_information, "$.name"))) LIKE :globalValue OR LOWER(JSON_UNQUOTE(JSON_EXTRACT(verify_local.local_information, "$.addressElement"))) LIKE :globalValue OR LOWER(verify_local.company_name) LIKE :globalValue OR LOWER(verify_local.partner_name) LIKE :globalValue OR LOWER(verify_local.partner_document) LIKE :globalValue)', { globalValue: globalValue });
|
|
57
|
+
}
|
|
58
|
+
//DOC: Filtro por estado FILTRO POR DEFECTO
|
|
59
|
+
if (status !== null && status >= 0) {
|
|
60
|
+
queryBuilder.andWhere("verify_local.status = :status", { status: status });
|
|
61
|
+
}
|
|
62
|
+
//DOC: Filtro por partner FILTRO POR DEFECTO
|
|
63
|
+
if (partner !== null && partner >= 0) {
|
|
64
|
+
queryBuilder.andWhere("verify_local.partner = :partner", { partner: partner });
|
|
65
|
+
}
|
|
66
|
+
//DOC: Filtro por assigned_master FILTRO POR DEFECTO
|
|
67
|
+
if (assigned_master !== null && assigned_master >= 0) {
|
|
68
|
+
queryBuilder.andWhere("verify_local.assigned_master = :assigned_master", {
|
|
69
|
+
assigned_master: assigned_master,
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
filters = lazyEvent.filters;
|
|
73
|
+
Object.keys(filters).forEach(function (key) {
|
|
74
|
+
var _a, _b, _c, _d, _e, _f;
|
|
75
|
+
var _g;
|
|
76
|
+
if (filters[key] && filters[key].value) {
|
|
77
|
+
var matchMode = filters[key].matchMode;
|
|
78
|
+
if (key === "status") {
|
|
79
|
+
queryBuilder.andWhere("verify_local.status = :status", {
|
|
80
|
+
status: (0, __1.getStatusVerifyLocalNumber)((_g = filters[key].value) !== null && _g !== void 0 ? _g : ""),
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
else if (key === "created") {
|
|
84
|
+
var value = filters[key].value.split("T")[0];
|
|
85
|
+
switch (matchMode) {
|
|
86
|
+
case "dateIs":
|
|
87
|
+
queryBuilder.andWhere("DATE(CONVERT_TZ(verify_local.created, '+00:00', '".concat(timezone, "')) = :created"), { created: value });
|
|
88
|
+
break;
|
|
89
|
+
case "dateBefore":
|
|
90
|
+
queryBuilder.andWhere("DATE(CONVERT_TZ(verify_local.created, '+00:00', '".concat(timezone, "')) < :created"), { created: value });
|
|
91
|
+
break;
|
|
92
|
+
case "dateAfter":
|
|
93
|
+
queryBuilder.andWhere("DATE(CONVERT_TZ(verify_local.created, '+00:00', '".concat(timezone, "')) > :created"), { created: value });
|
|
94
|
+
break;
|
|
95
|
+
case "dateIsNot":
|
|
96
|
+
queryBuilder.andWhere("DATE(CONVERT_TZ(verify_local.created, '+00:00', '".concat(timezone, "')) != :created"), { created: value });
|
|
97
|
+
break;
|
|
98
|
+
default:
|
|
99
|
+
break;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
else if (key !== "global" &&
|
|
103
|
+
((Array.isArray(filters[key].value) && filters[key].value.length > 0) ||
|
|
104
|
+
(!Array.isArray(filters[key].value) && filters[key].value))) {
|
|
105
|
+
var value = filters[key].value;
|
|
106
|
+
if (!Array.isArray(value) && value) {
|
|
107
|
+
value = filters[key].value.toLowerCase();
|
|
108
|
+
}
|
|
109
|
+
var jsonPath = key
|
|
110
|
+
.split(".")
|
|
111
|
+
.slice(1)
|
|
112
|
+
.map(function (segment) { return "$.".concat(segment); })
|
|
113
|
+
.join("");
|
|
114
|
+
var paramKey = key.split(".")[1];
|
|
115
|
+
switch (matchMode) {
|
|
116
|
+
case "contains":
|
|
117
|
+
queryBuilder.andWhere("LOWER(JSON_UNQUOTE(JSON_EXTRACT(verify_local.".concat(key.split(".")[0], ", \"").concat(jsonPath, "\"))) LIKE :").concat(paramKey), (_a = {}, _a[paramKey] = "%".concat(value, "%"), _a));
|
|
118
|
+
break;
|
|
119
|
+
case "startsWith":
|
|
120
|
+
queryBuilder.andWhere("LOWER(JSON_UNQUOTE(JSON_EXTRACT(verify_local.".concat(key.split(".")[0], ", \"").concat(jsonPath, "\"))) LIKE :").concat(paramKey), (_b = {}, _b[paramKey] = "".concat(value, "%"), _b));
|
|
121
|
+
break;
|
|
122
|
+
case "notContains":
|
|
123
|
+
queryBuilder.andWhere("LOWER(JSON_UNQUOTE(JSON_EXTRACT(verify_local.".concat(key.split(".")[0], ", \"").concat(jsonPath, "\"))) NOT LIKE :").concat(paramKey), (_c = {}, _c[paramKey] = "%".concat(value, "%"), _c));
|
|
124
|
+
break;
|
|
125
|
+
case "endsWith":
|
|
126
|
+
queryBuilder.andWhere("LOWER(JSON_UNQUOTE(JSON_EXTRACT(verify_local.".concat(key.split(".")[0], ", \"").concat(jsonPath, "\"))) LIKE :").concat(paramKey), (_d = {}, _d[paramKey] = "%".concat(value), _d));
|
|
127
|
+
break;
|
|
128
|
+
case "equals":
|
|
129
|
+
if (key === "partner_document") {
|
|
130
|
+
var partnerIds = value.map(function (element) { return element.id; });
|
|
131
|
+
if (partnerIds.length > 0) {
|
|
132
|
+
queryBuilder.andWhere("verify_local.partner_id IN (:...partnerIds)", {
|
|
133
|
+
partnerIds: partnerIds,
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
else if (key === "company_name") {
|
|
138
|
+
var companyIds = value.map(function (element) { return element.id; });
|
|
139
|
+
if (companyIds.length > 0) {
|
|
140
|
+
queryBuilder.andWhere("verify_local.company_id IN (:...companyIds)", {
|
|
141
|
+
companyIds: companyIds,
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
queryBuilder.andWhere("LOWER(JSON_UNQUOTE(JSON_EXTRACT(verify_local.".concat(key.split(".")[0], ", \"").concat(jsonPath, "\"))) = :").concat(paramKey), (_e = {}, _e[paramKey] = value, _e));
|
|
147
|
+
}
|
|
148
|
+
break;
|
|
149
|
+
case "notEquals":
|
|
150
|
+
queryBuilder.andWhere("LOWER(JSON_UNQUOTE(JSON_EXTRACT(verify_local.".concat(key.split(".")[0], ", \"").concat(jsonPath, "\"))) != :").concat(paramKey), (_f = {}, _f[paramKey] = value, _f));
|
|
151
|
+
break;
|
|
152
|
+
default:
|
|
153
|
+
break;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
});
|
|
158
|
+
//DOC: Ordenamiento
|
|
159
|
+
if (lazyEvent.sortField) {
|
|
160
|
+
order = lazyEvent.sortOrder === 1 ? "ASC" : "DESC";
|
|
161
|
+
if (lazyEvent.sortField.startsWith("local_information.")) {
|
|
162
|
+
jsonPath = lazyEvent.sortField
|
|
163
|
+
.split(".")
|
|
164
|
+
.slice(1)
|
|
165
|
+
.map(function (segment) { return "$.".concat(segment); })
|
|
166
|
+
.join("");
|
|
167
|
+
queryBuilder.orderBy("LOWER(JSON_UNQUOTE(JSON_EXTRACT(verify_local.local_information, '".concat(jsonPath, "')))"), order);
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
queryBuilder.orderBy(lazyEvent.sortField, order);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
return [4 /*yield*/, queryBuilder.getManyAndCount()];
|
|
174
|
+
case 1:
|
|
175
|
+
_c = _d.sent(), data = _c[0], total = _c[1];
|
|
176
|
+
return [2 /*return*/, {
|
|
177
|
+
data: data,
|
|
178
|
+
totalRecords: total,
|
|
179
|
+
}];
|
|
180
|
+
}
|
|
181
|
+
});
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
exports.getVerifyLocalsInformation = getVerifyLocalsInformation;
|
package/dist/interfaces.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DataSource } from
|
|
1
|
+
import { DataSource } from "typeorm";
|
|
2
2
|
export interface IShowEntity {
|
|
3
3
|
entityName: string;
|
|
4
4
|
connection: DataSource;
|
|
@@ -29,6 +29,10 @@ export interface IBasicCompany extends IBasicLazyEvent {
|
|
|
29
29
|
visible?: number | null;
|
|
30
30
|
owner?: number | null;
|
|
31
31
|
}
|
|
32
|
+
export interface IPropsQueryVerifyLocals extends IPropsQueryVerifyLocal {
|
|
33
|
+
partner: number | null;
|
|
34
|
+
assigned_master: number | null;
|
|
35
|
+
}
|
|
32
36
|
export interface IPropsQueryVerifyLocal {
|
|
33
37
|
status: number;
|
|
34
38
|
lazyEvent: {
|
|
@@ -50,4 +54,4 @@ export interface IPropsContactDetails {
|
|
|
50
54
|
new_phone: string;
|
|
51
55
|
new_email: string;
|
|
52
56
|
}
|
|
53
|
-
export type IType =
|
|
57
|
+
export type IType = "mysql" | "mariadb";
|
package/package.json
CHANGED
package/src/CustomRepository.ts
CHANGED
|
@@ -4,6 +4,7 @@ import {
|
|
|
4
4
|
IBasicLazyEvent,
|
|
5
5
|
IPropsDiscountUserOrCompany,
|
|
6
6
|
IPropsQueryVerifyLocal,
|
|
7
|
+
IPropsQueryVerifyLocals,
|
|
7
8
|
} from "./interfaces";
|
|
8
9
|
import {
|
|
9
10
|
getSeverityNameDiscountType,
|
|
@@ -12,6 +13,7 @@ import {
|
|
|
12
13
|
} from "./utils";
|
|
13
14
|
import { getTimeZone, getTimezoneOffset, Partner } from ".";
|
|
14
15
|
import { getLocalsCompanyInformation } from "./filters/LocalsCompanyInformation";
|
|
16
|
+
import { getVerifyLocalsInformation } from "./filters/VerifyLocalsInformation";
|
|
15
17
|
|
|
16
18
|
export class CustomRepository<T extends ObjectLiteral> extends Repository<T> {
|
|
17
19
|
constructor(target: EntityTarget<T>, dataSource: DataSource) {
|
|
@@ -833,7 +835,12 @@ export class CustomRepository<T extends ObjectLiteral> extends Repository<T> {
|
|
|
833
835
|
return await getLocalsCompanyInformation(this, params);
|
|
834
836
|
}
|
|
835
837
|
|
|
836
|
-
async
|
|
837
|
-
|
|
838
|
+
async getVerifyLocalsInformationWrapper(params: IPropsQueryVerifyLocals) {
|
|
839
|
+
return await getVerifyLocalsInformation(this, params);
|
|
838
840
|
}
|
|
841
|
+
|
|
842
|
+
//! DOC: ¿Necesita implementar un método personalizado aquí?
|
|
843
|
+
// async anyOtherRepository(args: any) {
|
|
844
|
+
// // Implementa otro método personalizado aquí
|
|
845
|
+
// }
|
|
839
846
|
}
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
import { Repository } from "typeorm";
|
|
2
|
+
import {
|
|
3
|
+
Company,
|
|
4
|
+
getStatusVerifyLocalNumber,
|
|
5
|
+
getTimeZone,
|
|
6
|
+
getTimezoneOffset,
|
|
7
|
+
Partner,
|
|
8
|
+
} from "..";
|
|
9
|
+
import { IPropsQueryVerifyLocals } from "../interfaces";
|
|
10
|
+
|
|
11
|
+
export async function getVerifyLocalsInformation(
|
|
12
|
+
repository: Repository<any>,
|
|
13
|
+
{ status, lazyEvent, partner, assigned_master }: IPropsQueryVerifyLocals
|
|
14
|
+
) {
|
|
15
|
+
const timezone = getTimezoneOffset(getTimeZone());
|
|
16
|
+
|
|
17
|
+
const queryBuilder = repository
|
|
18
|
+
.createQueryBuilder("verify_local")
|
|
19
|
+
.skip(lazyEvent.first)
|
|
20
|
+
.take(lazyEvent.rows);
|
|
21
|
+
|
|
22
|
+
//DOC: Filtro global
|
|
23
|
+
if (lazyEvent.filters["global"] && lazyEvent.filters["global"].value) {
|
|
24
|
+
const globalValue = `%${lazyEvent.filters["global"].value.toLowerCase()}%`;
|
|
25
|
+
queryBuilder.andWhere(
|
|
26
|
+
'(LOWER(JSON_UNQUOTE(JSON_EXTRACT(verify_local.local_information, "$.name"))) LIKE :globalValue OR LOWER(JSON_UNQUOTE(JSON_EXTRACT(verify_local.local_information, "$.addressElement"))) LIKE :globalValue OR LOWER(verify_local.company_name) LIKE :globalValue OR LOWER(verify_local.partner_name) LIKE :globalValue OR LOWER(verify_local.partner_document) LIKE :globalValue)',
|
|
27
|
+
{ globalValue }
|
|
28
|
+
);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
//DOC: Filtro por estado FILTRO POR DEFECTO
|
|
32
|
+
if (status !== null && status >= 0) {
|
|
33
|
+
queryBuilder.andWhere("verify_local.status = :status", { status });
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
//DOC: Filtro por partner FILTRO POR DEFECTO
|
|
37
|
+
if (partner !== null && partner >= 0) {
|
|
38
|
+
queryBuilder.andWhere("verify_local.partner = :partner", { partner });
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
//DOC: Filtro por assigned_master FILTRO POR DEFECTO
|
|
42
|
+
if (assigned_master !== null && assigned_master >= 0) {
|
|
43
|
+
queryBuilder.andWhere("verify_local.assigned_master = :assigned_master", {
|
|
44
|
+
assigned_master,
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
//DOC: Aplicación de filtros adicionales
|
|
49
|
+
const filters = lazyEvent.filters;
|
|
50
|
+
Object.keys(filters).forEach((key) => {
|
|
51
|
+
if (filters[key] && filters[key].value) {
|
|
52
|
+
const matchMode = filters[key].matchMode;
|
|
53
|
+
|
|
54
|
+
if (key === "status") {
|
|
55
|
+
queryBuilder.andWhere("verify_local.status = :status", {
|
|
56
|
+
status: getStatusVerifyLocalNumber(filters[key].value ?? ""),
|
|
57
|
+
});
|
|
58
|
+
} else if (key === "created") {
|
|
59
|
+
const value = filters[key].value.split("T")[0];
|
|
60
|
+
|
|
61
|
+
switch (matchMode) {
|
|
62
|
+
case "dateIs":
|
|
63
|
+
queryBuilder.andWhere(
|
|
64
|
+
`DATE(CONVERT_TZ(verify_local.created, '+00:00', '${timezone}')) = :created`,
|
|
65
|
+
{ created: value }
|
|
66
|
+
);
|
|
67
|
+
break;
|
|
68
|
+
case "dateBefore":
|
|
69
|
+
queryBuilder.andWhere(
|
|
70
|
+
`DATE(CONVERT_TZ(verify_local.created, '+00:00', '${timezone}')) < :created`,
|
|
71
|
+
{ created: value }
|
|
72
|
+
);
|
|
73
|
+
break;
|
|
74
|
+
case "dateAfter":
|
|
75
|
+
queryBuilder.andWhere(
|
|
76
|
+
`DATE(CONVERT_TZ(verify_local.created, '+00:00', '${timezone}')) > :created`,
|
|
77
|
+
{ created: value }
|
|
78
|
+
);
|
|
79
|
+
break;
|
|
80
|
+
case "dateIsNot":
|
|
81
|
+
queryBuilder.andWhere(
|
|
82
|
+
`DATE(CONVERT_TZ(verify_local.created, '+00:00', '${timezone}')) != :created`,
|
|
83
|
+
{ created: value }
|
|
84
|
+
);
|
|
85
|
+
break;
|
|
86
|
+
default:
|
|
87
|
+
break;
|
|
88
|
+
}
|
|
89
|
+
} else if (
|
|
90
|
+
key !== "global" &&
|
|
91
|
+
((Array.isArray(filters[key].value) && filters[key].value.length > 0) ||
|
|
92
|
+
(!Array.isArray(filters[key].value) && filters[key].value))
|
|
93
|
+
) {
|
|
94
|
+
let value = filters[key].value;
|
|
95
|
+
if (!Array.isArray(value) && value) {
|
|
96
|
+
value = filters[key].value.toLowerCase();
|
|
97
|
+
}
|
|
98
|
+
const jsonPath = key
|
|
99
|
+
.split(".")
|
|
100
|
+
.slice(1)
|
|
101
|
+
.map((segment) => `$.${segment}`)
|
|
102
|
+
.join("");
|
|
103
|
+
const paramKey = key.split(".")[1];
|
|
104
|
+
|
|
105
|
+
switch (matchMode) {
|
|
106
|
+
case "contains":
|
|
107
|
+
queryBuilder.andWhere(
|
|
108
|
+
`LOWER(JSON_UNQUOTE(JSON_EXTRACT(verify_local.${
|
|
109
|
+
key.split(".")[0]
|
|
110
|
+
}, "${jsonPath}"))) LIKE :${paramKey}`,
|
|
111
|
+
{ [paramKey]: `%${value}%` }
|
|
112
|
+
);
|
|
113
|
+
break;
|
|
114
|
+
case "startsWith":
|
|
115
|
+
queryBuilder.andWhere(
|
|
116
|
+
`LOWER(JSON_UNQUOTE(JSON_EXTRACT(verify_local.${
|
|
117
|
+
key.split(".")[0]
|
|
118
|
+
}, "${jsonPath}"))) LIKE :${paramKey}`,
|
|
119
|
+
{ [paramKey]: `${value}%` }
|
|
120
|
+
);
|
|
121
|
+
break;
|
|
122
|
+
case "notContains":
|
|
123
|
+
queryBuilder.andWhere(
|
|
124
|
+
`LOWER(JSON_UNQUOTE(JSON_EXTRACT(verify_local.${
|
|
125
|
+
key.split(".")[0]
|
|
126
|
+
}, "${jsonPath}"))) NOT LIKE :${paramKey}`,
|
|
127
|
+
{ [paramKey]: `%${value}%` }
|
|
128
|
+
);
|
|
129
|
+
break;
|
|
130
|
+
case "endsWith":
|
|
131
|
+
queryBuilder.andWhere(
|
|
132
|
+
`LOWER(JSON_UNQUOTE(JSON_EXTRACT(verify_local.${
|
|
133
|
+
key.split(".")[0]
|
|
134
|
+
}, "${jsonPath}"))) LIKE :${paramKey}`,
|
|
135
|
+
{ [paramKey]: `%${value}` }
|
|
136
|
+
);
|
|
137
|
+
break;
|
|
138
|
+
case "equals":
|
|
139
|
+
if (key === "partner_document") {
|
|
140
|
+
const partnerIds = value.map((element: Partner) => element.id);
|
|
141
|
+
|
|
142
|
+
if (partnerIds.length > 0) {
|
|
143
|
+
queryBuilder.andWhere(
|
|
144
|
+
"verify_local.partner_id IN (:...partnerIds)",
|
|
145
|
+
{
|
|
146
|
+
partnerIds,
|
|
147
|
+
}
|
|
148
|
+
);
|
|
149
|
+
}
|
|
150
|
+
} else if (key === "company_name") {
|
|
151
|
+
const companyIds = value.map((element: Company) => element.id);
|
|
152
|
+
|
|
153
|
+
if (companyIds.length > 0) {
|
|
154
|
+
queryBuilder.andWhere(
|
|
155
|
+
"verify_local.company_id IN (:...companyIds)",
|
|
156
|
+
{
|
|
157
|
+
companyIds,
|
|
158
|
+
}
|
|
159
|
+
);
|
|
160
|
+
}
|
|
161
|
+
} else {
|
|
162
|
+
queryBuilder.andWhere(
|
|
163
|
+
`LOWER(JSON_UNQUOTE(JSON_EXTRACT(verify_local.${
|
|
164
|
+
key.split(".")[0]
|
|
165
|
+
}, "${jsonPath}"))) = :${paramKey}`,
|
|
166
|
+
{ [paramKey]: value }
|
|
167
|
+
);
|
|
168
|
+
}
|
|
169
|
+
break;
|
|
170
|
+
case "notEquals":
|
|
171
|
+
queryBuilder.andWhere(
|
|
172
|
+
`LOWER(JSON_UNQUOTE(JSON_EXTRACT(verify_local.${
|
|
173
|
+
key.split(".")[0]
|
|
174
|
+
}, "${jsonPath}"))) != :${paramKey}`,
|
|
175
|
+
{ [paramKey]: value }
|
|
176
|
+
);
|
|
177
|
+
break;
|
|
178
|
+
default:
|
|
179
|
+
break;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
});
|
|
184
|
+
|
|
185
|
+
//DOC: Ordenamiento
|
|
186
|
+
if (lazyEvent.sortField) {
|
|
187
|
+
const order = lazyEvent.sortOrder === 1 ? "ASC" : "DESC";
|
|
188
|
+
if (lazyEvent.sortField.startsWith("local_information.")) {
|
|
189
|
+
const jsonPath = lazyEvent.sortField
|
|
190
|
+
.split(".")
|
|
191
|
+
.slice(1)
|
|
192
|
+
.map((segment: any) => `$.${segment}`)
|
|
193
|
+
.join("");
|
|
194
|
+
queryBuilder.orderBy(
|
|
195
|
+
`LOWER(JSON_UNQUOTE(JSON_EXTRACT(verify_local.local_information, '${jsonPath}')))`,
|
|
196
|
+
order
|
|
197
|
+
);
|
|
198
|
+
} else {
|
|
199
|
+
queryBuilder.orderBy(lazyEvent.sortField, order);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
const [data, total] = await queryBuilder.getManyAndCount();
|
|
204
|
+
|
|
205
|
+
return {
|
|
206
|
+
data,
|
|
207
|
+
totalRecords: total,
|
|
208
|
+
};
|
|
209
|
+
}
|
package/src/interfaces.ts
CHANGED
|
@@ -1,61 +1,66 @@
|
|
|
1
|
-
import { DataSource } from
|
|
1
|
+
import { DataSource } from "typeorm";
|
|
2
2
|
|
|
3
3
|
export interface IShowEntity {
|
|
4
|
-
entityName: string
|
|
5
|
-
connection: DataSource
|
|
4
|
+
entityName: string;
|
|
5
|
+
connection: DataSource;
|
|
6
6
|
}
|
|
7
7
|
|
|
8
8
|
export interface IDataBaseSource {
|
|
9
|
-
type?: IType
|
|
10
|
-
host: string
|
|
11
|
-
port: number
|
|
12
|
-
username: string
|
|
13
|
-
password: string
|
|
14
|
-
database: string
|
|
15
|
-
synchronize: boolean
|
|
16
|
-
entitiesRoute?: string
|
|
9
|
+
type?: IType;
|
|
10
|
+
host: string;
|
|
11
|
+
port: number;
|
|
12
|
+
username: string;
|
|
13
|
+
password: string;
|
|
14
|
+
database: string;
|
|
15
|
+
synchronize: boolean;
|
|
16
|
+
entitiesRoute?: string;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
export interface IBasicLazyEvent {
|
|
20
20
|
lazyEvent: {
|
|
21
|
-
first: number
|
|
22
|
-
rows: number
|
|
23
|
-
page: number
|
|
24
|
-
sortField: any
|
|
25
|
-
sortOrder: any
|
|
26
|
-
filters: any
|
|
27
|
-
}
|
|
21
|
+
first: number;
|
|
22
|
+
rows: number;
|
|
23
|
+
page: number;
|
|
24
|
+
sortField: any;
|
|
25
|
+
sortOrder: any;
|
|
26
|
+
filters: any;
|
|
27
|
+
};
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
export interface IBasicCompany extends IBasicLazyEvent {
|
|
31
|
-
status: number | null
|
|
32
|
-
company: number | null
|
|
33
|
-
visible?: number | null
|
|
34
|
-
owner?: number | null
|
|
31
|
+
status: number | null;
|
|
32
|
+
company: number | null;
|
|
33
|
+
visible?: number | null;
|
|
34
|
+
owner?: number | null;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export interface IPropsQueryVerifyLocals extends IPropsQueryVerifyLocal {
|
|
38
|
+
partner: number | null;
|
|
39
|
+
assigned_master: number | null;
|
|
35
40
|
}
|
|
36
41
|
|
|
37
42
|
export interface IPropsQueryVerifyLocal {
|
|
38
|
-
status: number
|
|
43
|
+
status: number;
|
|
39
44
|
lazyEvent: {
|
|
40
|
-
first: number
|
|
41
|
-
rows: number
|
|
42
|
-
page: number
|
|
43
|
-
sortField: any
|
|
44
|
-
sortOrder: any
|
|
45
|
-
filters: any
|
|
46
|
-
}
|
|
45
|
+
first: number;
|
|
46
|
+
rows: number;
|
|
47
|
+
page: number;
|
|
48
|
+
sortField: any;
|
|
49
|
+
sortOrder: any;
|
|
50
|
+
filters: any;
|
|
51
|
+
};
|
|
47
52
|
}
|
|
48
53
|
|
|
49
54
|
export interface IPropsDiscountUserOrCompany extends IBasicLazyEvent {
|
|
50
|
-
company: number | null
|
|
51
|
-
status: number | null
|
|
55
|
+
company: number | null;
|
|
56
|
+
status: number | null;
|
|
52
57
|
}
|
|
53
58
|
|
|
54
59
|
export interface IPropsContactDetails {
|
|
55
|
-
phone: string
|
|
56
|
-
email: string
|
|
57
|
-
new_phone: string
|
|
58
|
-
new_email: string
|
|
60
|
+
phone: string;
|
|
61
|
+
email: string;
|
|
62
|
+
new_phone: string;
|
|
63
|
+
new_email: string;
|
|
59
64
|
}
|
|
60
65
|
|
|
61
|
-
export type IType =
|
|
66
|
+
export type IType = "mysql" | "mariadb";
|