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.
@@ -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
- anyOtherRepository(args: any): Promise<void>;
21
+ getVerifyLocalsInformationWrapper(params: IPropsQueryVerifyLocals): Promise<{
22
+ data: any[];
23
+ totalRecords: number;
24
+ }>;
22
25
  }
@@ -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.anyOtherRepository = function (args) {
748
+ CustomRepository.prototype.getVerifyLocalsInformationWrapper = function (params) {
748
749
  return __awaiter(this, void 0, void 0, function () {
749
750
  return __generator(this, function (_a) {
750
- return [2 /*return*/];
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;
@@ -1,4 +1,4 @@
1
- import { DataSource } from 'typeorm';
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 = 'mysql' | 'mariadb';
57
+ export type IType = "mysql" | "mariadb";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "test-entity-library-asm",
3
- "version": "2.8.17",
3
+ "version": "2.8.18",
4
4
  "description": "Entidades de ejemplo para una base de datos",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -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 anyOtherRepository(args: any) {
837
- // Implementa otro método personalizado aquí
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 'typeorm'
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 = 'mysql' | 'mariadb'
66
+ export type IType = "mysql" | "mariadb";