test-entity-library-asm 2.3.5 → 2.3.6

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,12 +1,10 @@
1
1
  import { DataSource, EntityTarget, Repository, ObjectLiteral } from 'typeorm';
2
+ import { IPropsQueryVerifyLocal } from './interfaces';
2
3
  export declare class CustomRepository<T extends ObjectLiteral> extends Repository<T> {
3
4
  constructor(target: EntityTarget<T>, dataSource: DataSource);
4
- getVerifyLocals2(status: number | null, page: number, pageSize: number, filters: any): Promise<{
5
+ getVerifyLocals({ status, lazyEvent }: IPropsQueryVerifyLocal): Promise<{
5
6
  data: T[];
6
- total: number;
7
- page: number;
8
- pageSize: number;
9
- totalPages: number;
7
+ totalRecords: number;
10
8
  }>;
11
9
  anyOtherRepository(args: any): Promise<void>;
12
10
  }
@@ -53,61 +53,88 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
53
53
  Object.defineProperty(exports, "__esModule", { value: true });
54
54
  exports.CustomRepository = void 0;
55
55
  var typeorm_1 = require("typeorm");
56
+ var utils_1 = require("./utils");
56
57
  var CustomRepository = /** @class */ (function (_super) {
57
58
  __extends(CustomRepository, _super);
58
59
  function CustomRepository(target, dataSource) {
59
60
  return _super.call(this, target, dataSource.manager) || this;
60
61
  }
61
- CustomRepository.prototype.getVerifyLocals2 = function (status, page, pageSize, filters) {
62
- return __awaiter(this, void 0, void 0, function () {
63
- var queryBuilder, globalValue, _a, data, total;
64
- return __generator(this, function (_b) {
65
- switch (_b.label) {
62
+ CustomRepository.prototype.getVerifyLocals = function (_a) {
63
+ return __awaiter(this, arguments, void 0, function (_b) {
64
+ var queryBuilder, globalValue, filters, order, jsonPath, _c, data, total;
65
+ var status = _b.status, lazyEvent = _b.lazyEvent;
66
+ return __generator(this, function (_d) {
67
+ switch (_d.label) {
66
68
  case 0:
67
- queryBuilder = this.createQueryBuilder('entity')
68
- .skip((page - 1) * pageSize)
69
- .take(pageSize);
70
- if (status !== null && status >= 0) {
71
- queryBuilder.andWhere('entity.status = :status', { status: status });
69
+ queryBuilder = this.createQueryBuilder('verify_local')
70
+ .skip(lazyEvent.first)
71
+ .take(lazyEvent.rows);
72
+ if (lazyEvent.filters['global'] && lazyEvent.filters['global'].value) {
73
+ globalValue = "%".concat(lazyEvent.filters['global'].value.toLowerCase(), "%");
74
+ 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', { globalValue: globalValue });
72
75
  }
73
- if (filters['global'] && filters['global'].value) {
74
- globalValue = "%".concat(filters['global'].value, "%");
75
- queryBuilder.andWhere('(JSON_EXTRACT(entity.local_information, "$.name") LIKE :globalValue ' +
76
- 'OR JSON_EXTRACT(entity.local_information, "$.square.address") LIKE :globalValue ' +
77
- 'OR JSON_EXTRACT(entity.local_information, "$.address.formatted_address") LIKE :globalValue ' +
78
- 'OR entity.status LIKE :globalValue)', { globalValue: globalValue });
76
+ // Filtro por estado
77
+ if (status !== null && status >= 0) {
78
+ queryBuilder.andWhere('verify_local.status = :status', { status: status });
79
79
  }
80
+ filters = lazyEvent.filters;
80
81
  Object.keys(filters).forEach(function (key) {
81
- var _a, _b, _c, _d;
82
- if (key !== 'global' && filters[key].constraints) {
83
- var filter = filters[key];
84
- var value = filter.constraints[0].value;
85
- var matchMode = filter.constraints[0].matchMode;
86
- if (value !== null) {
82
+ var _a, _b, _c, _d, _e, _f;
83
+ var _g;
84
+ if (filters[key] && filters[key].value) {
85
+ var matchMode = filters[key].matchMode;
86
+ var value = filters[key].value;
87
+ if (key === 'status') {
88
+ queryBuilder.andWhere('verify_local.status = :status', {
89
+ status: (0, utils_1.getStatusVerifyLocalNumber)((_g = filters[key].value) !== null && _g !== void 0 ? _g : ''),
90
+ });
91
+ }
92
+ else if (key === 'created') {
93
+ switch (matchMode) {
94
+ case 'dateIs':
95
+ queryBuilder.andWhere("DATE(verify_local.created) = :created", {
96
+ created: value,
97
+ });
98
+ break;
99
+ case 'dateBefore':
100
+ queryBuilder.andWhere("DATE(verify_local.created) < :created", {
101
+ created: value,
102
+ });
103
+ break;
104
+ case 'dateAfter':
105
+ queryBuilder.andWhere("DATE(verify_local.created) > :created", {
106
+ created: value,
107
+ });
108
+ break;
109
+ default:
110
+ break;
111
+ }
112
+ }
113
+ else if (key !== 'global') {
87
114
  var jsonPath = key
88
115
  .split('.')
116
+ .slice(1)
89
117
  .map(function (segment) { return "$.".concat(segment); })
90
118
  .join('');
119
+ var paramKey = key.split('.')[1];
91
120
  switch (matchMode) {
121
+ case 'contains':
122
+ queryBuilder.andWhere("LOWER(JSON_UNQUOTE(JSON_EXTRACT(verify_local.".concat(key.split('.')[0], ", \"").concat(jsonPath, "\"))) LIKE :").concat(paramKey), (_a = {}, _a[paramKey] = "%".concat(value, "%"), _a));
123
+ break;
92
124
  case 'startsWith':
93
- queryBuilder.andWhere("JSON_EXTRACT(entity.".concat(key.split('.')[0], ", \"").concat(jsonPath, "\") LIKE :").concat(key), (_a = {},
94
- _a[key] = "".concat(value, "%"),
95
- _a));
125
+ queryBuilder.andWhere("LOWER(JSON_UNQUOTE(JSON_EXTRACT(verify_local.".concat(key.split('.')[0], ", \"").concat(jsonPath, "\"))) LIKE :").concat(paramKey), (_b = {}, _b[paramKey] = "".concat(value, "%"), _b));
96
126
  break;
97
- case 'contains':
98
- queryBuilder.andWhere("JSON_EXTRACT(entity.".concat(key.split('.')[0], ", \"").concat(jsonPath, "\") LIKE :").concat(key), (_b = {},
99
- _b[key] = "%".concat(value, "%"),
100
- _b));
127
+ case 'notContains':
128
+ 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));
129
+ break;
130
+ case 'endsWith':
131
+ queryBuilder.andWhere("LOWER(JSON_UNQUOTE(JSON_EXTRACT(verify_local.".concat(key.split('.')[0], ", \"").concat(jsonPath, "\"))) LIKE :").concat(paramKey), (_d = {}, _d[paramKey] = "%".concat(value), _d));
101
132
  break;
102
133
  case 'equals':
103
- queryBuilder.andWhere("JSON_EXTRACT(entity.".concat(key.split('.')[0], ", \"").concat(jsonPath, "\") = :").concat(key), (_c = {},
104
- _c[key] = value,
105
- _c));
134
+ queryBuilder.andWhere("LOWER(JSON_UNQUOTE(JSON_EXTRACT(verify_local.".concat(key.split('.')[0], ", \"").concat(jsonPath, "\"))) = :").concat(paramKey), (_e = {}, _e[paramKey] = value, _e));
106
135
  break;
107
- case 'dateIs':
108
- queryBuilder.andWhere("DATE(JSON_EXTRACT(entity.".concat(key.split('.')[0], ", \"").concat(jsonPath, "\")) = :").concat(key), (_d = {},
109
- _d[key] = value,
110
- _d));
136
+ case 'notEquals':
137
+ queryBuilder.andWhere("LOWER(JSON_UNQUOTE(JSON_EXTRACT(verify_local.".concat(key.split('.')[0], ", \"").concat(jsonPath, "\"))) != :").concat(paramKey), (_f = {}, _f[paramKey] = value, _f));
111
138
  break;
112
139
  default:
113
140
  break;
@@ -115,15 +142,27 @@ var CustomRepository = /** @class */ (function (_super) {
115
142
  }
116
143
  }
117
144
  });
145
+ // Ordenamiento
146
+ if (lazyEvent.sortField) {
147
+ order = lazyEvent.sortOrder === 1 ? 'ASC' : 'DESC';
148
+ if (lazyEvent.sortField.startsWith('local_information.')) {
149
+ jsonPath = lazyEvent.sortField
150
+ .split('.')
151
+ .slice(1)
152
+ .map(function (segment) { return "$.".concat(segment); })
153
+ .join('');
154
+ queryBuilder.orderBy("LOWER(JSON_UNQUOTE(JSON_EXTRACT(verify_local.local_information, '".concat(jsonPath, "')))"), order);
155
+ }
156
+ else {
157
+ queryBuilder.orderBy(lazyEvent.sortField, order);
158
+ }
159
+ }
118
160
  return [4 /*yield*/, queryBuilder.getManyAndCount()];
119
161
  case 1:
120
- _a = _b.sent(), data = _a[0], total = _a[1];
162
+ _c = _d.sent(), data = _c[0], total = _c[1];
121
163
  return [2 /*return*/, {
122
164
  data: data,
123
- total: total,
124
- page: page,
125
- pageSize: pageSize,
126
- totalPages: Math.ceil(total / pageSize),
165
+ totalRecords: total,
127
166
  }];
128
167
  }
129
168
  });
@@ -43,3 +43,4 @@ export { AuthenticationCredential } from './entities/AuthenticationCredential';
43
43
  export { PosSystem } from './entities/PosSystem';
44
44
  export { VerifyLocal } from './entities/VerifyLocal';
45
45
  export { CustomRepository } from './CustomRepository';
46
+ export * from './utils';
@@ -1,4 +1,18 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
2
16
  Object.defineProperty(exports, "__esModule", { value: true });
3
17
  exports.CustomRepository = exports.VerifyLocal = exports.PosSystem = exports.AuthenticationCredential = exports.BusinessType = exports.LocalsCompany = exports.UserAddress = exports.User = exports.TypeMeasureIngredient = exports.TerminalSession = exports.Terminal = exports.Square = exports.RequestStatus = exports.RequestProductGroupComplement = exports.RequestProduct = exports.Request = exports.Region = exports.ProductTopping = exports.ProductIngredient = exports.ProductGroupComplement = exports.ProductGroup = exports.Product = exports.Plan = exports.PaymentMethod = exports.PartnerRole = exports.PartnerPermission = exports.PartnerNotification = exports.Partner = exports.MasterRole = exports.MasterPermission = exports.Master = exports.LocalQualification = exports.Local = exports.DiscountCodeUser = exports.DiscountCodeCompany = exports.Day = exports.Country = exports.Configuration = exports.Company = exports.CodeRedemptionHistoryUser = exports.CodeRedemptionHistoryCompany = exports.City = exports.ScheduleCategory = exports.Category = exports.BusinessTypeProduct = void 0;
4
18
  var BusinessTypeProduct_1 = require("./entities/BusinessTypeProduct");
@@ -91,3 +105,4 @@ var VerifyLocal_1 = require("./entities/VerifyLocal");
91
105
  Object.defineProperty(exports, "VerifyLocal", { enumerable: true, get: function () { return VerifyLocal_1.VerifyLocal; } });
92
106
  var CustomRepository_1 = require("./CustomRepository");
93
107
  Object.defineProperty(exports, "CustomRepository", { enumerable: true, get: function () { return CustomRepository_1.CustomRepository; } });
108
+ __exportStar(require("./utils"), exports);
@@ -13,4 +13,15 @@ export interface IDataBaseSource {
13
13
  synchronize: boolean;
14
14
  entitiesRoute?: string;
15
15
  }
16
+ export interface IPropsQueryVerifyLocal {
17
+ status: number;
18
+ lazyEvent: {
19
+ first: number;
20
+ rows: number;
21
+ page: number;
22
+ sortField: any;
23
+ sortOrder: any;
24
+ filters: any;
25
+ };
26
+ }
16
27
  export type IType = 'mysql' | 'mariadb';
@@ -0,0 +1 @@
1
+ export declare function getStatusVerifyLocalNumber(status: string): any;
package/dist/utils.js ADDED
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getStatusVerifyLocalNumber = void 0;
4
+ function getStatusVerifyLocalNumber(status) {
5
+ var statuses = {
6
+ 'Pending approval': 1,
7
+ Approved: 2,
8
+ Rejected: 3,
9
+ 'Pendiente aprobación': 1,
10
+ Aprobado: 3,
11
+ Rechazado: 2,
12
+ };
13
+ return statuses[status];
14
+ }
15
+ exports.getStatusVerifyLocalNumber = getStatusVerifyLocalNumber;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "test-entity-library-asm",
3
- "version": "2.3.5",
3
+ "version": "2.3.6",
4
4
  "description": "Entidades de ejemplo para una base de datos",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -1,85 +1,116 @@
1
1
  import { DataSource, EntityTarget, Repository, ObjectLiteral } from 'typeorm'
2
+ import { IPropsQueryVerifyLocal } from './interfaces'
3
+ import { getStatusVerifyLocalNumber } from './utils'
2
4
 
3
5
  export class CustomRepository<T extends ObjectLiteral> extends Repository<T> {
4
6
  constructor(target: EntityTarget<T>, dataSource: DataSource) {
5
7
  super(target, dataSource.manager)
6
8
  }
7
9
 
8
- async getVerifyLocals2(
9
- status: number | null,
10
- page: number,
11
- pageSize: number,
12
- filters: any
13
- ) {
14
- const queryBuilder = this.createQueryBuilder('entity')
15
- .skip((page - 1) * pageSize)
16
- .take(pageSize)
10
+ async getVerifyLocals({ status, lazyEvent }: IPropsQueryVerifyLocal) {
11
+ const queryBuilder = this.createQueryBuilder('verify_local')
12
+ .skip(lazyEvent.first)
13
+ .take(lazyEvent.rows)
17
14
 
18
- if (status !== null && status >= 0) {
19
- queryBuilder.andWhere('entity.status = :status', { status })
20
- }
21
-
22
- if (filters['global'] && filters['global'].value) {
23
- const globalValue = `%${filters['global'].value}%`
15
+ if (lazyEvent.filters['global'] && lazyEvent.filters['global'].value) {
16
+ const globalValue = `%${lazyEvent.filters['global'].value.toLowerCase()}%`
24
17
  queryBuilder.andWhere(
25
- '(JSON_EXTRACT(entity.local_information, "$.name") LIKE :globalValue ' +
26
- 'OR JSON_EXTRACT(entity.local_information, "$.square.address") LIKE :globalValue ' +
27
- 'OR JSON_EXTRACT(entity.local_information, "$.address.formatted_address") LIKE :globalValue ' +
28
- 'OR entity.status LIKE :globalValue)',
18
+ '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',
29
19
  { globalValue }
30
20
  )
31
21
  }
32
22
 
23
+ // Filtro por estado
24
+ if (status !== null && status >= 0) {
25
+ queryBuilder.andWhere('verify_local.status = :status', { status })
26
+ }
27
+
28
+ // Aplicación de filtros
29
+ const filters = lazyEvent.filters
33
30
  Object.keys(filters).forEach((key) => {
34
- if (key !== 'global' && filters[key].constraints) {
35
- const filter = filters[key]
36
- const value = filter.constraints[0].value
37
- const matchMode = filter.constraints[0].matchMode
31
+ if (filters[key] && filters[key].value) {
32
+ const matchMode = filters[key].matchMode
33
+ const value = filters[key].value
38
34
 
39
- if (value !== null) {
35
+ if (key === 'status') {
36
+ queryBuilder.andWhere('verify_local.status = :status', {
37
+ status: getStatusVerifyLocalNumber(filters[key].value ?? ''),
38
+ })
39
+ } else if (key === 'created') {
40
+ switch (matchMode) {
41
+ case 'dateIs':
42
+ queryBuilder.andWhere(`DATE(verify_local.created) = :created`, {
43
+ created: value,
44
+ })
45
+ break
46
+ case 'dateBefore':
47
+ queryBuilder.andWhere(`DATE(verify_local.created) < :created`, {
48
+ created: value,
49
+ })
50
+ break
51
+ case 'dateAfter':
52
+ queryBuilder.andWhere(`DATE(verify_local.created) > :created`, {
53
+ created: value,
54
+ })
55
+ break
56
+ default:
57
+ break
58
+ }
59
+ } else if (key !== 'global') {
40
60
  const jsonPath = key
41
61
  .split('.')
62
+ .slice(1)
42
63
  .map((segment) => `$.${segment}`)
43
64
  .join('')
65
+ const paramKey = key.split('.')[1]
66
+
44
67
  switch (matchMode) {
68
+ case 'contains':
69
+ queryBuilder.andWhere(
70
+ `LOWER(JSON_UNQUOTE(JSON_EXTRACT(verify_local.${
71
+ key.split('.')[0]
72
+ }, "${jsonPath}"))) LIKE :${paramKey}`,
73
+ { [paramKey]: `%${value}%` }
74
+ )
75
+ break
45
76
  case 'startsWith':
46
77
  queryBuilder.andWhere(
47
- `JSON_EXTRACT(entity.${
78
+ `LOWER(JSON_UNQUOTE(JSON_EXTRACT(verify_local.${
48
79
  key.split('.')[0]
49
- }, "${jsonPath}") LIKE :${key}`,
50
- {
51
- [key]: `${value}%`,
52
- }
80
+ }, "${jsonPath}"))) LIKE :${paramKey}`,
81
+ { [paramKey]: `${value}%` }
53
82
  )
54
83
  break
55
- case 'contains':
84
+ case 'notContains':
85
+ queryBuilder.andWhere(
86
+ `LOWER(JSON_UNQUOTE(JSON_EXTRACT(verify_local.${
87
+ key.split('.')[0]
88
+ }, "${jsonPath}"))) NOT LIKE :${paramKey}`,
89
+ { [paramKey]: `%${value}%` }
90
+ )
91
+ break
92
+ case 'endsWith':
56
93
  queryBuilder.andWhere(
57
- `JSON_EXTRACT(entity.${
94
+ `LOWER(JSON_UNQUOTE(JSON_EXTRACT(verify_local.${
58
95
  key.split('.')[0]
59
- }, "${jsonPath}") LIKE :${key}`,
60
- {
61
- [key]: `%${value}%`,
62
- }
96
+ }, "${jsonPath}"))) LIKE :${paramKey}`,
97
+ { [paramKey]: `%${value}` }
63
98
  )
64
99
  break
65
100
  case 'equals':
66
101
  queryBuilder.andWhere(
67
- `JSON_EXTRACT(entity.${
102
+ `LOWER(JSON_UNQUOTE(JSON_EXTRACT(verify_local.${
68
103
  key.split('.')[0]
69
- }, "${jsonPath}") = :${key}`,
70
- {
71
- [key]: value,
72
- }
104
+ }, "${jsonPath}"))) = :${paramKey}`,
105
+ { [paramKey]: value }
73
106
  )
74
107
  break
75
- case 'dateIs':
108
+ case 'notEquals':
76
109
  queryBuilder.andWhere(
77
- `DATE(JSON_EXTRACT(entity.${
110
+ `LOWER(JSON_UNQUOTE(JSON_EXTRACT(verify_local.${
78
111
  key.split('.')[0]
79
- }, "${jsonPath}")) = :${key}`,
80
- {
81
- [key]: value,
82
- }
112
+ }, "${jsonPath}"))) != :${paramKey}`,
113
+ { [paramKey]: value }
83
114
  )
84
115
  break
85
116
  default:
@@ -89,14 +120,29 @@ export class CustomRepository<T extends ObjectLiteral> extends Repository<T> {
89
120
  }
90
121
  })
91
122
 
123
+ // Ordenamiento
124
+ if (lazyEvent.sortField) {
125
+ const order = lazyEvent.sortOrder === 1 ? 'ASC' : 'DESC'
126
+ if (lazyEvent.sortField.startsWith('local_information.')) {
127
+ const jsonPath = lazyEvent.sortField
128
+ .split('.')
129
+ .slice(1)
130
+ .map((segment: any) => `$.${segment}`)
131
+ .join('')
132
+ queryBuilder.orderBy(
133
+ `LOWER(JSON_UNQUOTE(JSON_EXTRACT(verify_local.local_information, '${jsonPath}')))`,
134
+ order
135
+ )
136
+ } else {
137
+ queryBuilder.orderBy(lazyEvent.sortField, order)
138
+ }
139
+ }
140
+
92
141
  const [data, total] = await queryBuilder.getManyAndCount()
93
142
 
94
143
  return {
95
144
  data,
96
- total,
97
- page,
98
- pageSize,
99
- totalPages: Math.ceil(total / pageSize),
145
+ totalRecords: total,
100
146
  }
101
147
  }
102
148
 
@@ -44,3 +44,4 @@ export { PosSystem } from './entities/PosSystem'
44
44
  export { VerifyLocal } from './entities/VerifyLocal'
45
45
 
46
46
  export { CustomRepository } from './CustomRepository'
47
+ export * from './utils'
package/src/interfaces.ts CHANGED
@@ -16,4 +16,16 @@ export interface IDataBaseSource {
16
16
  entitiesRoute?: string
17
17
  }
18
18
 
19
+ export interface IPropsQueryVerifyLocal {
20
+ status: number
21
+ lazyEvent: {
22
+ first: number
23
+ rows: number
24
+ page: number
25
+ sortField: any
26
+ sortOrder: any
27
+ filters: any
28
+ }
29
+ }
30
+
19
31
  export type IType = 'mysql' | 'mariadb'
package/src/utils.ts ADDED
@@ -0,0 +1,11 @@
1
+ export function getStatusVerifyLocalNumber(status: string) {
2
+ const statuses: any = {
3
+ 'Pending approval': 1,
4
+ Approved: 2,
5
+ Rejected: 3,
6
+ 'Pendiente aprobación': 1,
7
+ Aprobado: 3,
8
+ Rechazado: 2,
9
+ }
10
+ return statuses[status]
11
+ }