@uniorganization/uni-lib 5.0.1 → 5.0.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.
@@ -0,0 +1,58 @@
1
+ import { Transactions } from './transactions.entity';
2
+ export declare class DailyPayment {
3
+ transactionId: string;
4
+ rowDate: Date;
5
+ rowSource: string;
6
+ rnnNumber: string;
7
+ sourceType: string;
8
+ customerNo: string;
9
+ cnnNumber: string;
10
+ symptom: string;
11
+ subSymptom: string;
12
+ createdBy: string;
13
+ receiptUserName: string;
14
+ partsUseFlag: string;
15
+ svcCenterType: string;
16
+ repairReceiptTimestamp: Date;
17
+ model: string;
18
+ serialNo: string;
19
+ state: string;
20
+ zipCode: string;
21
+ callStatus: string;
22
+ product: string;
23
+ receiptRemark: string;
24
+ dateScheduled: Date;
25
+ ascCode: string;
26
+ svcEngineerName: string;
27
+ callSubstatus: string;
28
+ updatedOn: Date;
29
+ daysSinceLastStatusUpdate: string;
30
+ svcContKey: string;
31
+ callEndDate: Date;
32
+ tappTicketStatus: string;
33
+ tappSubStatus: string;
34
+ tappTrackingResult: string;
35
+ tappApptScheduleDateOrCompletionDate: Date;
36
+ tappStatusEndedDate: Date;
37
+ statusEndedDate: Date;
38
+ agreedPrice: string;
39
+ serviceCenter: string;
40
+ orderDate: Date;
41
+ orderStatusName: string;
42
+ actualShipmentDate: Date;
43
+ trackingNo: string;
44
+ eta: Date;
45
+ backOrderHold: string;
46
+ backOrderRelease: string;
47
+ postingDate: Date;
48
+ tat: string;
49
+ repairTat: string;
50
+ schWithin: string;
51
+ svcType: string;
52
+ partsAging: string;
53
+ primaryRepairCode: string;
54
+ vocNo: string;
55
+ workInfoSkill: string;
56
+ rmaNo: string;
57
+ transaction: Transactions;
58
+ }
@@ -0,0 +1,248 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.DailyPayment = void 0;
13
+ const typeorm_1 = require("typeorm");
14
+ const transactions_entity_1 = require("./transactions.entity");
15
+ let DailyPayment = class DailyPayment {
16
+ };
17
+ exports.DailyPayment = DailyPayment;
18
+ __decorate([
19
+ (0, typeorm_1.PrimaryColumn)({ name: 'transaction_id' }),
20
+ __metadata("design:type", String)
21
+ ], DailyPayment.prototype, "transactionId", void 0);
22
+ __decorate([
23
+ (0, typeorm_1.PrimaryColumn)({ name: 'row_date', type: 'date' }),
24
+ __metadata("design:type", Date)
25
+ ], DailyPayment.prototype, "rowDate", void 0);
26
+ __decorate([
27
+ (0, typeorm_1.PrimaryColumn)({ name: 'row_source' }),
28
+ __metadata("design:type", String)
29
+ ], DailyPayment.prototype, "rowSource", void 0);
30
+ __decorate([
31
+ (0, typeorm_1.PrimaryColumn)({ name: 'rnn_number' }),
32
+ __metadata("design:type", String)
33
+ ], DailyPayment.prototype, "rnnNumber", void 0);
34
+ __decorate([
35
+ (0, typeorm_1.Column)({ name: 'source_type', nullable: true }),
36
+ __metadata("design:type", String)
37
+ ], DailyPayment.prototype, "sourceType", void 0);
38
+ __decorate([
39
+ (0, typeorm_1.Column)({ name: 'customer_no', nullable: true }),
40
+ __metadata("design:type", String)
41
+ ], DailyPayment.prototype, "customerNo", void 0);
42
+ __decorate([
43
+ (0, typeorm_1.Column)({ name: 'cnn_number', nullable: true }),
44
+ __metadata("design:type", String)
45
+ ], DailyPayment.prototype, "cnnNumber", void 0);
46
+ __decorate([
47
+ (0, typeorm_1.Column)({ nullable: true }),
48
+ __metadata("design:type", String)
49
+ ], DailyPayment.prototype, "symptom", void 0);
50
+ __decorate([
51
+ (0, typeorm_1.Column)({ name: 'sub_symptom', nullable: true }),
52
+ __metadata("design:type", String)
53
+ ], DailyPayment.prototype, "subSymptom", void 0);
54
+ __decorate([
55
+ (0, typeorm_1.Column)({ name: 'created_by', nullable: true }),
56
+ __metadata("design:type", String)
57
+ ], DailyPayment.prototype, "createdBy", void 0);
58
+ __decorate([
59
+ (0, typeorm_1.Column)({ name: 'receipt_user_name', nullable: true }),
60
+ __metadata("design:type", String)
61
+ ], DailyPayment.prototype, "receiptUserName", void 0);
62
+ __decorate([
63
+ (0, typeorm_1.Column)({ name: 'parts_use_flag', nullable: true }),
64
+ __metadata("design:type", String)
65
+ ], DailyPayment.prototype, "partsUseFlag", void 0);
66
+ __decorate([
67
+ (0, typeorm_1.Column)({ name: 'svc_center_type', nullable: true }),
68
+ __metadata("design:type", String)
69
+ ], DailyPayment.prototype, "svcCenterType", void 0);
70
+ __decorate([
71
+ (0, typeorm_1.Column)('timestamp', { name: 'repair_receipt_timestamp', nullable: true }),
72
+ __metadata("design:type", Date)
73
+ ], DailyPayment.prototype, "repairReceiptTimestamp", void 0);
74
+ __decorate([
75
+ (0, typeorm_1.Column)({ nullable: true }),
76
+ __metadata("design:type", String)
77
+ ], DailyPayment.prototype, "model", void 0);
78
+ __decorate([
79
+ (0, typeorm_1.Column)({ name: 'serial_no', nullable: true }),
80
+ __metadata("design:type", String)
81
+ ], DailyPayment.prototype, "serialNo", void 0);
82
+ __decorate([
83
+ (0, typeorm_1.Column)({ nullable: true }),
84
+ __metadata("design:type", String)
85
+ ], DailyPayment.prototype, "state", void 0);
86
+ __decorate([
87
+ (0, typeorm_1.Column)({ name: 'zip_code', nullable: true }),
88
+ __metadata("design:type", String)
89
+ ], DailyPayment.prototype, "zipCode", void 0);
90
+ __decorate([
91
+ (0, typeorm_1.Column)({ name: 'call_status', nullable: true }),
92
+ __metadata("design:type", String)
93
+ ], DailyPayment.prototype, "callStatus", void 0);
94
+ __decorate([
95
+ (0, typeorm_1.Column)({ nullable: true }),
96
+ __metadata("design:type", String)
97
+ ], DailyPayment.prototype, "product", void 0);
98
+ __decorate([
99
+ (0, typeorm_1.Column)({ name: 'receipt_remark', nullable: true }),
100
+ __metadata("design:type", String)
101
+ ], DailyPayment.prototype, "receiptRemark", void 0);
102
+ __decorate([
103
+ (0, typeorm_1.Column)('date', { name: 'date_scheduled', nullable: true }),
104
+ __metadata("design:type", Date)
105
+ ], DailyPayment.prototype, "dateScheduled", void 0);
106
+ __decorate([
107
+ (0, typeorm_1.Column)({ name: 'asc_code', nullable: true }),
108
+ __metadata("design:type", String)
109
+ ], DailyPayment.prototype, "ascCode", void 0);
110
+ __decorate([
111
+ (0, typeorm_1.Column)({ name: 'svc_engineer_name', nullable: true }),
112
+ __metadata("design:type", String)
113
+ ], DailyPayment.prototype, "svcEngineerName", void 0);
114
+ __decorate([
115
+ (0, typeorm_1.Column)({ name: 'call_substatus', nullable: true }),
116
+ __metadata("design:type", String)
117
+ ], DailyPayment.prototype, "callSubstatus", void 0);
118
+ __decorate([
119
+ (0, typeorm_1.Column)('timestamp', { name: 'updated_on', nullable: true }),
120
+ __metadata("design:type", Date)
121
+ ], DailyPayment.prototype, "updatedOn", void 0);
122
+ __decorate([
123
+ (0, typeorm_1.Column)({ name: 'days_since_last_status_update', nullable: true }),
124
+ __metadata("design:type", String)
125
+ ], DailyPayment.prototype, "daysSinceLastStatusUpdate", void 0);
126
+ __decorate([
127
+ (0, typeorm_1.Column)({ name: 'svc_cont_key', nullable: true }),
128
+ __metadata("design:type", String)
129
+ ], DailyPayment.prototype, "svcContKey", void 0);
130
+ __decorate([
131
+ (0, typeorm_1.Column)('date', { name: 'call_end_date', nullable: true }),
132
+ __metadata("design:type", Date)
133
+ ], DailyPayment.prototype, "callEndDate", void 0);
134
+ __decorate([
135
+ (0, typeorm_1.Column)({ name: 'tapp_ticket_status', nullable: true }),
136
+ __metadata("design:type", String)
137
+ ], DailyPayment.prototype, "tappTicketStatus", void 0);
138
+ __decorate([
139
+ (0, typeorm_1.Column)({ name: 'tapp_sub_status', nullable: true }),
140
+ __metadata("design:type", String)
141
+ ], DailyPayment.prototype, "tappSubStatus", void 0);
142
+ __decorate([
143
+ (0, typeorm_1.Column)({ name: 'tapp_tracking_result', nullable: true }),
144
+ __metadata("design:type", String)
145
+ ], DailyPayment.prototype, "tappTrackingResult", void 0);
146
+ __decorate([
147
+ (0, typeorm_1.Column)('date', {
148
+ name: 'tapp_appt_schedule_date_or_completion_date',
149
+ nullable: true,
150
+ }),
151
+ __metadata("design:type", Date)
152
+ ], DailyPayment.prototype, "tappApptScheduleDateOrCompletionDate", void 0);
153
+ __decorate([
154
+ (0, typeorm_1.Column)('timestamp', { name: 'tapp_status_ended_date', nullable: true }),
155
+ __metadata("design:type", Date)
156
+ ], DailyPayment.prototype, "tappStatusEndedDate", void 0);
157
+ __decorate([
158
+ (0, typeorm_1.Column)('timestamp', { name: 'status_ended_date', nullable: true }),
159
+ __metadata("design:type", Date)
160
+ ], DailyPayment.prototype, "statusEndedDate", void 0);
161
+ __decorate([
162
+ (0, typeorm_1.Column)({ name: 'agreed_price', nullable: true }),
163
+ __metadata("design:type", String)
164
+ ], DailyPayment.prototype, "agreedPrice", void 0);
165
+ __decorate([
166
+ (0, typeorm_1.Column)({ name: 'service_center', nullable: true }),
167
+ __metadata("design:type", String)
168
+ ], DailyPayment.prototype, "serviceCenter", void 0);
169
+ __decorate([
170
+ (0, typeorm_1.Column)('date', { name: 'order_date', nullable: true }),
171
+ __metadata("design:type", Date)
172
+ ], DailyPayment.prototype, "orderDate", void 0);
173
+ __decorate([
174
+ (0, typeorm_1.Column)({ name: 'order_status_name', nullable: true }),
175
+ __metadata("design:type", String)
176
+ ], DailyPayment.prototype, "orderStatusName", void 0);
177
+ __decorate([
178
+ (0, typeorm_1.Column)('date', { name: 'actual_shipment_date', nullable: true }),
179
+ __metadata("design:type", Date)
180
+ ], DailyPayment.prototype, "actualShipmentDate", void 0);
181
+ __decorate([
182
+ (0, typeorm_1.Column)({ name: 'tracking_no', nullable: true }),
183
+ __metadata("design:type", String)
184
+ ], DailyPayment.prototype, "trackingNo", void 0);
185
+ __decorate([
186
+ (0, typeorm_1.Column)('date', { name: 'eta', nullable: true }),
187
+ __metadata("design:type", Date)
188
+ ], DailyPayment.prototype, "eta", void 0);
189
+ __decorate([
190
+ (0, typeorm_1.Column)({ name: 'back_order_hold', nullable: true }),
191
+ __metadata("design:type", String)
192
+ ], DailyPayment.prototype, "backOrderHold", void 0);
193
+ __decorate([
194
+ (0, typeorm_1.Column)({ name: 'back_order_release', nullable: true }),
195
+ __metadata("design:type", String)
196
+ ], DailyPayment.prototype, "backOrderRelease", void 0);
197
+ __decorate([
198
+ (0, typeorm_1.Column)('date', { name: 'posting_date', nullable: true }),
199
+ __metadata("design:type", Date)
200
+ ], DailyPayment.prototype, "postingDate", void 0);
201
+ __decorate([
202
+ (0, typeorm_1.Column)({ nullable: true }),
203
+ __metadata("design:type", String)
204
+ ], DailyPayment.prototype, "tat", void 0);
205
+ __decorate([
206
+ (0, typeorm_1.Column)({ name: 'repair_tat', nullable: true }),
207
+ __metadata("design:type", String)
208
+ ], DailyPayment.prototype, "repairTat", void 0);
209
+ __decorate([
210
+ (0, typeorm_1.Column)({ name: 'sch_within', nullable: true }),
211
+ __metadata("design:type", String)
212
+ ], DailyPayment.prototype, "schWithin", void 0);
213
+ __decorate([
214
+ (0, typeorm_1.Column)({ name: 'svc_type', nullable: true }),
215
+ __metadata("design:type", String)
216
+ ], DailyPayment.prototype, "svcType", void 0);
217
+ __decorate([
218
+ (0, typeorm_1.Column)({ name: 'parts_aging', nullable: true }),
219
+ __metadata("design:type", String)
220
+ ], DailyPayment.prototype, "partsAging", void 0);
221
+ __decorate([
222
+ (0, typeorm_1.Column)({ name: 'primary_repair_code', nullable: true }),
223
+ __metadata("design:type", String)
224
+ ], DailyPayment.prototype, "primaryRepairCode", void 0);
225
+ __decorate([
226
+ (0, typeorm_1.Column)({ name: 'voc_no', nullable: true }),
227
+ __metadata("design:type", String)
228
+ ], DailyPayment.prototype, "vocNo", void 0);
229
+ __decorate([
230
+ (0, typeorm_1.Column)({ name: 'work_info_skill', nullable: true }),
231
+ __metadata("design:type", String)
232
+ ], DailyPayment.prototype, "workInfoSkill", void 0);
233
+ __decorate([
234
+ (0, typeorm_1.Column)({ name: 'rma_no', nullable: true }),
235
+ __metadata("design:type", String)
236
+ ], DailyPayment.prototype, "rmaNo", void 0);
237
+ __decorate([
238
+ (0, typeorm_1.ManyToOne)(() => transactions_entity_1.Transactions, { nullable: true }),
239
+ (0, typeorm_1.JoinColumn)({
240
+ name: 'transaction_id',
241
+ referencedColumnName: 'transactionId',
242
+ }),
243
+ __metadata("design:type", transactions_entity_1.Transactions)
244
+ ], DailyPayment.prototype, "transaction", void 0);
245
+ exports.DailyPayment = DailyPayment = __decorate([
246
+ (0, typeorm_1.Entity)('daily_payments', { schema: 'lgai' }),
247
+ (0, typeorm_1.Index)(['transactionId', 'rowDate'])
248
+ ], DailyPayment);
@@ -0,0 +1 @@
1
+ export * from './version-checker.middleware';
@@ -0,0 +1,17 @@
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
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./version-checker.middleware"), exports);
@@ -0,0 +1,2 @@
1
+ import { NextFunction, Request, Response } from 'express';
2
+ export declare function versionChecker(req: Request, res: Response, next: NextFunction): Promise<Response<any, Record<string, any>>>;
@@ -0,0 +1,27 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.versionChecker = versionChecker;
13
+ const fs = require("fs/promises");
14
+ const path = require("path");
15
+ function versionChecker(req, res, next) {
16
+ return __awaiter(this, void 0, void 0, function* () {
17
+ const version = (yield fs.readFile(path.join(process.cwd(), 'app-version.txt')))
18
+ .toString()
19
+ .trim();
20
+ if (req.headers['app-version'] !== version)
21
+ return res.status(409).json({
22
+ message: `You need to update the application version to ${version}`,
23
+ status: 409,
24
+ });
25
+ next();
26
+ });
27
+ }
@@ -36,7 +36,7 @@ const normalizeBucketPrefix = (prefix) => {
36
36
  if (!prefix) {
37
37
  return exports.FILE_STORAGE_DEFAULT_BUCKET_PREFIX;
38
38
  }
39
- return prefix.replace(/^\/+|\/+$/g, '');
39
+ return prefix.replace(/\/{2,}/g, '/').replace(/^\/+|\/+$/g, '');
40
40
  };
41
41
  exports.normalizeBucketPrefix = normalizeBucketPrefix;
42
42
  const extractFileExtension = (originalName) => {
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const constants_1 = require("./constants");
4
+ describe('normalizeBucketPrefix', () => {
5
+ it('colapsa dobles slashes internos', () => {
6
+ expect((0, constants_1.normalizeBucketPrefix)('development//client-2')).toBe('development/client-2');
7
+ });
8
+ it('recorta slashes iniciales y finales', () => {
9
+ expect((0, constants_1.normalizeBucketPrefix)('/development/')).toBe('development');
10
+ expect((0, constants_1.normalizeBucketPrefix)('//development///')).toBe('development');
11
+ });
12
+ it('devuelve cadena vacía para null o undefined', () => {
13
+ expect((0, constants_1.normalizeBucketPrefix)(null)).toBe('');
14
+ expect((0, constants_1.normalizeBucketPrefix)(undefined)).toBe('');
15
+ });
16
+ it('devuelve vacío para cadena vacía', () => {
17
+ expect((0, constants_1.normalizeBucketPrefix)('')).toBe('');
18
+ });
19
+ it('deja intacto un prefijo ya normalizado', () => {
20
+ expect((0, constants_1.normalizeBucketPrefix)('production')).toBe('production');
21
+ });
22
+ });
23
+ describe('sanitizeFileName', () => {
24
+ it('sanitiza caracteres inválidos a underscore', () => {
25
+ expect((0, constants_1.sanitizeFileName)('ticket match template (1).xlsx')).toBe('ticket_match_template_1_.xlsx');
26
+ });
27
+ });
28
+ describe('buildBucketPath', () => {
29
+ it('construye el key con prefijo normalizado', () => {
30
+ expect((0, constants_1.buildBucketPath)('development/', 'SERVICE_CENTER_TICKET_MATCH_SOURCE', '9d9e6566-406b-4c3c-9fe0-4f0d72080c25', 'ticket_match_template_1_1_.xlsx')).toBe('development/SERVICE_CENTER_TICKET_MATCH_SOURCE/9d9e6566-406b-4c3c-9fe0-4f0d72080c25-ticket_match_template_1_1_.xlsx');
31
+ });
32
+ it('no duplica slashes cuando el prefijo ya tiene uno final', () => {
33
+ expect((0, constants_1.buildBucketPath)('development/', 'INBOUND_AUDIO', 'uuid', 'call.wav')).toBe('development/INBOUND_AUDIO/uuid-call.wav');
34
+ });
35
+ });
36
+ describe('extractFileExtension', () => {
37
+ it('extrae la extensión en minúsculas', () => {
38
+ expect((0, constants_1.extractFileExtension)('TEMPLATE.XLSX')).toBe('xlsx');
39
+ });
40
+ });
@@ -61,7 +61,10 @@ let FileStorageService = FileStorageService_1 = class FileStorageService {
61
61
  const uniqueId = (0, node_crypto_1.randomUUID)();
62
62
  const bucketPrefix = process.env[constants_1.FILE_STORAGE_BUCKET_PREFIX_ENV];
63
63
  const clientId = this.getClientId();
64
- const tenantBucketPrefix = [bucketPrefix, `client-${clientId}`]
64
+ const tenantBucketPrefix = [
65
+ (0, constants_1.normalizeBucketPrefix)(bucketPrefix),
66
+ `client-${clientId}`,
67
+ ]
65
68
  .filter(Boolean)
66
69
  .join('/');
67
70
  const bucketName = this.getRequiredEnv(constants_1.FILE_STORAGE_BUCKET_NAME_ENV);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uniorganization/uni-lib",
3
- "version": "5.0.1",
3
+ "version": "5.0.2",
4
4
  "description": "UNI Library",
5
5
  "author": "Jhomiguel",
6
6
  "main": "dist/index.js",
@@ -9,6 +9,17 @@
9
9
  "dist/**/*",
10
10
  "*.md"
11
11
  ],
12
+ "scripts": {
13
+ "start:dev": "tsc -w",
14
+ "build": "tsc",
15
+ "prepublishOnly": "pnpm run build",
16
+ "format": "prettier --write \"src/**/*.ts\"",
17
+ "lint": "tslint -p tsconfig.json -c tslint.json",
18
+ "test": "jest",
19
+ "test:watch": "jest --watch",
20
+ "test:cov": "jest --coverage",
21
+ "test:e2e": "jest --config ./test/jest-e2e.json"
22
+ },
12
23
  "dependencies": {
13
24
  "@googlemaps/google-maps-services-js": "^3.4.2",
14
25
  "@aws-sdk/client-s3": "^3.833.0",
@@ -71,15 +82,5 @@
71
82
  },
72
83
  "coverageDirectory": "../coverage",
73
84
  "testEnvironment": "node"
74
- },
75
- "scripts": {
76
- "start:dev": "tsc -w",
77
- "build": "tsc",
78
- "format": "prettier --write \"src/**/*.ts\"",
79
- "lint": "tslint -p tsconfig.json -c tslint.json",
80
- "test": "jest",
81
- "test:watch": "jest --watch",
82
- "test:cov": "jest --coverage",
83
- "test:e2e": "jest --config ./test/jest-e2e.json"
84
85
  }
85
- }
86
+ }
@@ -1,10 +0,0 @@
1
- export declare class UserClientContext {
2
- userId: number;
3
- clientId: number;
4
- profile: string;
5
- division: string;
6
- lob: string;
7
- reportsToId: number | null;
8
- createdAt: Date;
9
- updatedAt: Date;
10
- }
@@ -1,59 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.UserClientContext = void 0;
13
- const typeorm_1 = require("typeorm");
14
- let UserClientContext = class UserClientContext {
15
- };
16
- exports.UserClientContext = UserClientContext;
17
- __decorate([
18
- (0, typeorm_1.PrimaryColumn)({ name: 'USER_ID', type: 'numeric' }),
19
- __metadata("design:type", Number)
20
- ], UserClientContext.prototype, "userId", void 0);
21
- __decorate([
22
- (0, typeorm_1.PrimaryColumn)({ name: 'client_id', type: 'integer' }),
23
- __metadata("design:type", Number)
24
- ], UserClientContext.prototype, "clientId", void 0);
25
- __decorate([
26
- (0, typeorm_1.Column)({ type: 'varchar', length: 250, default: '' }),
27
- __metadata("design:type", String)
28
- ], UserClientContext.prototype, "profile", void 0);
29
- __decorate([
30
- (0, typeorm_1.Column)({ type: 'varchar', length: 250, default: '' }),
31
- __metadata("design:type", String)
32
- ], UserClientContext.prototype, "division", void 0);
33
- __decorate([
34
- (0, typeorm_1.Column)({ type: 'varchar', length: 250, default: '' }),
35
- __metadata("design:type", String)
36
- ], UserClientContext.prototype, "lob", void 0);
37
- __decorate([
38
- (0, typeorm_1.Column)({ name: 'REPORTS_TO', type: 'numeric', nullable: true }),
39
- __metadata("design:type", Number)
40
- ], UserClientContext.prototype, "reportsToId", void 0);
41
- __decorate([
42
- (0, typeorm_1.CreateDateColumn)({
43
- name: 'created_at',
44
- type: 'timestamptz',
45
- default: () => 'CURRENT_TIMESTAMP',
46
- }),
47
- __metadata("design:type", Date)
48
- ], UserClientContext.prototype, "createdAt", void 0);
49
- __decorate([
50
- (0, typeorm_1.UpdateDateColumn)({
51
- name: 'updated_at',
52
- type: 'timestamptz',
53
- default: () => 'CURRENT_TIMESTAMP',
54
- }),
55
- __metadata("design:type", Date)
56
- ], UserClientContext.prototype, "updatedAt", void 0);
57
- exports.UserClientContext = UserClientContext = __decorate([
58
- (0, typeorm_1.Entity)('USER_CLIENT_CONTEXT', { schema: 'stm' })
59
- ], UserClientContext);
@@ -1,4 +0,0 @@
1
- import { CanActivate, ExecutionContext } from '@nestjs/common';
2
- export declare class MasterUsersGuard implements CanActivate {
3
- canActivate(context: ExecutionContext): boolean;
4
- }
@@ -1,35 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.MasterUsersGuard = void 0;
10
- const common_1 = require("@nestjs/common");
11
- const tenant_constants_1 = require("./tenant.constants");
12
- let MasterUsersGuard = class MasterUsersGuard {
13
- canActivate(context) {
14
- var _a, _b, _c, _d, _e;
15
- const request = context.switchToHttp().getRequest();
16
- const user = request.user;
17
- if (!user || user === true) {
18
- throw new common_1.UnauthorizedException();
19
- }
20
- const effectiveClientId = (_b = (_a = request.tenantContext) === null || _a === void 0 ? void 0 : _a.clientId) !== null && _b !== void 0 ? _b : user.clientId;
21
- const originalClientId = (_e = (_d = (_c = request.tenantContext) === null || _c === void 0 ? void 0 : _c.originalClientId) !== null && _d !== void 0 ? _d : user.originalClientId) !== null && _e !== void 0 ? _e : null;
22
- const hasCapability = (user.privileges || []).some((privilege) => privilege.trim().toUpperCase() === tenant_constants_1.MASTER_USERS_ADMIN_PRIVILEGE);
23
- if (effectiveClientId !== tenant_constants_1.NEWTECH_CLIENT_ID ||
24
- originalClientId !== null ||
25
- !user.isMasterTenantAdmin ||
26
- !hasCapability) {
27
- throw new common_1.ForbiddenException();
28
- }
29
- return true;
30
- }
31
- };
32
- exports.MasterUsersGuard = MasterUsersGuard;
33
- exports.MasterUsersGuard = MasterUsersGuard = __decorate([
34
- (0, common_1.Injectable)()
35
- ], MasterUsersGuard);