@fiado/type-kit 3.647.0 → 3.648.0
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/_test_/unit/collection/costCenter.test.ts +23 -4
- package/bin/collection/dtos/CollectRequest.d.ts +6 -0
- package/bin/collection/dtos/CollectRequest.js +6 -0
- package/bin/collection/dtos/CollectionProductConfigDto.d.ts +0 -2
- package/bin/collection/dtos/CollectionProductConfigDto.js +0 -6
- package/bin/collection/dtos/RegisterCollectibleRequest.d.ts +6 -0
- package/bin/collection/dtos/RegisterCollectibleRequest.js +6 -0
- package/bin/collection/dtos/UpsertProductConfigRequest.d.ts +0 -2
- package/bin/collection/dtos/UpsertProductConfigRequest.js +0 -6
- package/bin/transactionProcessor/dtos/AuthorizeAdjustmentTransactionRequest.d.ts +2 -0
- package/bin/transactionProcessor/dtos/AuthorizeRewardTopupRequest.d.ts +2 -0
- package/bin/transactionProcessor/dtos/AuthorizeRewardTopupRequest.js +6 -0
- package/package.json +1 -1
- package/src/collection/dtos/CollectRequest.ts +8 -1
- package/src/collection/dtos/CollectionProductConfigDto.ts +1 -3
- package/src/collection/dtos/RegisterCollectibleRequest.ts +8 -1
- package/src/collection/dtos/UpsertProductConfigRequest.ts +1 -3
- package/src/transactionProcessor/dtos/AuthorizeAdjustmentTransactionRequest.ts +2 -0
- package/src/transactionProcessor/dtos/AuthorizeRewardTopupRequest.ts +7 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import 'reflect-metadata';
|
|
2
2
|
import { plainToInstance } from 'class-transformer';
|
|
3
3
|
import { validate } from 'class-validator';
|
|
4
|
-
import { CollectionProductConfigDto, UpsertProductConfigRequest } from '../../../src/collection/index';
|
|
5
|
-
import { AuthorizeBonusRequest } from '../../../src/transactionProcessor/index';
|
|
4
|
+
import { CollectRequest, CollectionProductConfigDto, RegisterCollectibleRequest, UpsertProductConfigRequest } from '../../../src/collection/index';
|
|
5
|
+
import { AuthorizeBonusRequest, AuthorizeRewardTopupRequest } from '../../../src/transactionProcessor/index';
|
|
6
6
|
|
|
7
7
|
async function invalidProperties<T extends object>(cls: new () => T, body: Record<string, unknown>): Promise<string[]> {
|
|
8
8
|
return (await validate(plainToInstance(cls, body) as object)).map((e) => e.property);
|
|
@@ -24,6 +24,13 @@ const CONFIG = {
|
|
|
24
24
|
updatedBy: 'system',
|
|
25
25
|
};
|
|
26
26
|
|
|
27
|
+
const REGISTER = { directoryId: 'dir-1', tenantId: 'surekeep', domain: 'loan-credit', productId: 'loan', chargeId: 'c-1' };
|
|
28
|
+
const COLLECT = { ...REGISTER, amount: 150.25 };
|
|
29
|
+
const TOPUP = {
|
|
30
|
+
idempotencyKey: 'RW-1', directoryId: 'dir-1', phone: '5512345678', moduleName: 'm', benefitId: 'b1', leafId: 'l1',
|
|
31
|
+
productId: 'p1', amount: 15, concept: 'Recarga',
|
|
32
|
+
};
|
|
33
|
+
|
|
27
34
|
const BONUS = {
|
|
28
35
|
idempotencyKey: 'bonus-1',
|
|
29
36
|
productCatalogId: 'cat-1',
|
|
@@ -33,9 +40,10 @@ const BONUS = {
|
|
|
33
40
|
};
|
|
34
41
|
|
|
35
42
|
describe.each([
|
|
36
|
-
['
|
|
37
|
-
['
|
|
43
|
+
['RegisterCollectibleRequest', RegisterCollectibleRequest, REGISTER],
|
|
44
|
+
['CollectRequest', CollectRequest, COLLECT],
|
|
38
45
|
['AuthorizeBonusRequest', AuthorizeBonusRequest, BONUS],
|
|
46
|
+
['AuthorizeRewardTopupRequest', AuthorizeRewardTopupRequest, TOPUP],
|
|
39
47
|
] as const)('%s.costCenterId', (_name, cls, valid) => {
|
|
40
48
|
const klass = cls as unknown as new () => object;
|
|
41
49
|
|
|
@@ -52,3 +60,14 @@ describe.each([
|
|
|
52
60
|
expect(await invalidProperties(klass, { ...valid, costCenterId: 3 })).toEqual(['costCenterId']);
|
|
53
61
|
});
|
|
54
62
|
});
|
|
63
|
+
|
|
64
|
+
describe.each([
|
|
65
|
+
['CollectionProductConfigDto', CollectionProductConfigDto, CONFIG],
|
|
66
|
+
['UpsertProductConfigRequest', UpsertProductConfigRequest, UPSERT],
|
|
67
|
+
] as const)('%s sin centro de costo', (_name, cls, valid) => {
|
|
68
|
+
it('el centro de costo lo manda el originador en cada cobro, no la configuración del producto', async () => {
|
|
69
|
+
const dto = plainToInstance(cls as unknown as new () => object, { ...valid, costCenterId: 'SK-COBRANZA' });
|
|
70
|
+
const errors = await validate(dto as object, { whitelist: true, forbidNonWhitelisted: true });
|
|
71
|
+
expect(errors.map((e) => e.property)).toEqual(['costCenterId']);
|
|
72
|
+
});
|
|
73
|
+
});
|
|
@@ -20,4 +20,10 @@ export declare class CollectRequest {
|
|
|
20
20
|
* lo normal; se manda sólo cuando este cobro tiene condiciones propias.
|
|
21
21
|
*/
|
|
22
22
|
pricing?: CollectionPricingDto;
|
|
23
|
+
/**
|
|
24
|
+
* Centro de costo con que el ledger asienta el cobro; lo decide la plataforma originadora por tipo de
|
|
25
|
+
* transacción. El motor lo guarda en la intención y lo reenvía al processor en cada intento. Ausente,
|
|
26
|
+
* el ledger lo asienta como `UNASSIGNED`.
|
|
27
|
+
*/
|
|
28
|
+
costCenterId?: string;
|
|
23
29
|
}
|
|
@@ -55,3 +55,9 @@ __decorate([
|
|
|
55
55
|
(0, class_transformer_1.Type)(() => CollectionPricingDto_1.CollectionPricingDto),
|
|
56
56
|
__metadata("design:type", CollectionPricingDto_1.CollectionPricingDto)
|
|
57
57
|
], CollectRequest.prototype, "pricing", void 0);
|
|
58
|
+
__decorate([
|
|
59
|
+
(0, class_validator_1.IsOptional)(),
|
|
60
|
+
(0, class_validator_1.IsString)(),
|
|
61
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
62
|
+
__metadata("design:type", String)
|
|
63
|
+
], CollectRequest.prototype, "costCenterId", void 0);
|
|
@@ -17,8 +17,6 @@ export declare class CollectionProductConfigDto {
|
|
|
17
17
|
allowPartial: boolean;
|
|
18
18
|
retryPolicy: RetryPolicyDto;
|
|
19
19
|
reportTargets: string[];
|
|
20
|
-
/** Centro de costo con el que el ledger registra los cobros de este producto. */
|
|
21
|
-
costCenterId?: string;
|
|
22
20
|
createdBy: string;
|
|
23
21
|
updatedBy: string;
|
|
24
22
|
}
|
|
@@ -58,12 +58,6 @@ __decorate([
|
|
|
58
58
|
(0, class_validator_1.IsString)({ each: true }),
|
|
59
59
|
__metadata("design:type", Array)
|
|
60
60
|
], CollectionProductConfigDto.prototype, "reportTargets", void 0);
|
|
61
|
-
__decorate([
|
|
62
|
-
(0, class_validator_1.IsOptional)(),
|
|
63
|
-
(0, class_validator_1.IsString)(),
|
|
64
|
-
(0, class_validator_1.IsNotEmpty)(),
|
|
65
|
-
__metadata("design:type", String)
|
|
66
|
-
], CollectionProductConfigDto.prototype, "costCenterId", void 0);
|
|
67
61
|
__decorate([
|
|
68
62
|
(0, class_validator_1.IsString)(),
|
|
69
63
|
__metadata("design:type", String)
|
|
@@ -23,4 +23,10 @@ export declare class RegisterCollectibleRequest {
|
|
|
23
23
|
* cobro. Si un cargo se puede cobrar más de una vez, el ciclo va codificado aquí dentro.
|
|
24
24
|
*/
|
|
25
25
|
chargeId: string;
|
|
26
|
+
/**
|
|
27
|
+
* Centro de costo con que el ledger asienta el cobro; lo decide la plataforma originadora por tipo de
|
|
28
|
+
* transacción. El motor lo guarda en la intención y lo reenvía al processor en cada intento. Ausente,
|
|
29
|
+
* el ledger lo asienta como `UNASSIGNED`.
|
|
30
|
+
*/
|
|
31
|
+
costCenterId?: string;
|
|
26
32
|
}
|
|
@@ -41,3 +41,9 @@ __decorate([
|
|
|
41
41
|
(0, class_validator_1.IsString)(),
|
|
42
42
|
__metadata("design:type", String)
|
|
43
43
|
], RegisterCollectibleRequest.prototype, "chargeId", void 0);
|
|
44
|
+
__decorate([
|
|
45
|
+
(0, class_validator_1.IsOptional)(),
|
|
46
|
+
(0, class_validator_1.IsString)(),
|
|
47
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
48
|
+
__metadata("design:type", String)
|
|
49
|
+
], RegisterCollectibleRequest.prototype, "costCenterId", void 0);
|
|
@@ -41,9 +41,3 @@ __decorate([
|
|
|
41
41
|
(0, class_validator_1.IsString)({ each: true }),
|
|
42
42
|
__metadata("design:type", Array)
|
|
43
43
|
], UpsertProductConfigRequest.prototype, "reportTargets", void 0);
|
|
44
|
-
__decorate([
|
|
45
|
-
(0, class_validator_1.IsOptional)(),
|
|
46
|
-
(0, class_validator_1.IsString)(),
|
|
47
|
-
(0, class_validator_1.IsNotEmpty)(),
|
|
48
|
-
__metadata("design:type", String)
|
|
49
|
-
], UpsertProductConfigRequest.prototype, "costCenterId", void 0);
|
|
@@ -11,4 +11,6 @@ export declare class AuthorizeAdjustmentTransactionRequest {
|
|
|
11
11
|
relatedTransactionNumber: string;
|
|
12
12
|
operation: OperationEnum;
|
|
13
13
|
concept: string;
|
|
14
|
+
/** Centro de costo del asiento del ajuste en el ledger; ausente, el ledger escribe `UNASSIGNED`. */
|
|
15
|
+
costCenterId?: string;
|
|
14
16
|
}
|
|
@@ -17,5 +17,7 @@ export declare class AuthorizeRewardTopupRequest {
|
|
|
17
17
|
/** En PESOS, no centavos. */
|
|
18
18
|
amount: number;
|
|
19
19
|
concept: string;
|
|
20
|
+
/** Centro de costo del asiento de la recarga en el ledger; ausente, el processor escribe `UNASSIGNED`. */
|
|
21
|
+
costCenterId?: string;
|
|
20
22
|
}
|
|
21
23
|
export default AuthorizeRewardTopupRequest;
|
|
@@ -71,4 +71,10 @@ __decorate([
|
|
|
71
71
|
(0, class_validator_1.MaxLength)(120),
|
|
72
72
|
__metadata("design:type", String)
|
|
73
73
|
], AuthorizeRewardTopupRequest.prototype, "concept", void 0);
|
|
74
|
+
__decorate([
|
|
75
|
+
(0, class_validator_1.IsOptional)(),
|
|
76
|
+
(0, class_validator_1.IsString)(),
|
|
77
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
78
|
+
__metadata("design:type", String)
|
|
79
|
+
], AuthorizeRewardTopupRequest.prototype, "costCenterId", void 0);
|
|
74
80
|
exports.default = AuthorizeRewardTopupRequest;
|
package/package.json
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IsString, IsNumber, IsOptional, ValidateNested } from 'class-validator';
|
|
1
|
+
import { IsNotEmpty, IsString, IsNumber, IsOptional, ValidateNested } from 'class-validator';
|
|
2
2
|
import { Type } from 'class-transformer';
|
|
3
3
|
import { CollectionPricingDto } from './CollectionPricingDto';
|
|
4
4
|
|
|
@@ -24,4 +24,11 @@ export class CollectRequest {
|
|
|
24
24
|
* lo normal; se manda sólo cuando este cobro tiene condiciones propias.
|
|
25
25
|
*/
|
|
26
26
|
@IsOptional() @ValidateNested() @Type(() => CollectionPricingDto) pricing?: CollectionPricingDto;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Centro de costo con que el ledger asienta el cobro; lo decide la plataforma originadora por tipo de
|
|
30
|
+
* transacción. El motor lo guarda en la intención y lo reenvía al processor en cada intento. Ausente,
|
|
31
|
+
* el ledger lo asienta como `UNASSIGNED`.
|
|
32
|
+
*/
|
|
33
|
+
@IsOptional() @IsString() @IsNotEmpty() costCenterId?: string;
|
|
27
34
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IsString, IsInt, IsArray, IsBoolean,
|
|
1
|
+
import { IsString, IsInt, IsArray, IsBoolean, ValidateNested } from 'class-validator';
|
|
2
2
|
import { Type } from 'class-transformer';
|
|
3
3
|
import { CollectionSourceDto } from './CollectionSourceDto';
|
|
4
4
|
import { RetryPolicyDto } from './RetryPolicyDto';
|
|
@@ -20,8 +20,6 @@ export class CollectionProductConfigDto {
|
|
|
20
20
|
@IsBoolean() allowPartial!: boolean;
|
|
21
21
|
@ValidateNested() @Type(() => RetryPolicyDto) retryPolicy!: RetryPolicyDto;
|
|
22
22
|
@IsArray() @IsString({ each: true }) reportTargets!: string[];
|
|
23
|
-
/** Centro de costo con el que el ledger registra los cobros de este producto. */
|
|
24
|
-
@IsOptional() @IsString() @IsNotEmpty() costCenterId?: string;
|
|
25
23
|
@IsString() createdBy!: string;
|
|
26
24
|
@IsString() updatedBy!: string;
|
|
27
25
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IsString } from 'class-validator';
|
|
1
|
+
import { IsNotEmpty, IsOptional, IsString } from 'class-validator';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Alta de un cargo cobrable: el dominio avisa de que hay algo que cobrar y el motor se encarga de
|
|
@@ -29,4 +29,11 @@ export class RegisterCollectibleRequest {
|
|
|
29
29
|
* cobro. Si un cargo se puede cobrar más de una vez, el ciclo va codificado aquí dentro.
|
|
30
30
|
*/
|
|
31
31
|
@IsString() chargeId!: string;
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Centro de costo con que el ledger asienta el cobro; lo decide la plataforma originadora por tipo de
|
|
35
|
+
* transacción. El motor lo guarda en la intención y lo reenvía al processor en cada intento. Ausente,
|
|
36
|
+
* el ledger lo asienta como `UNASSIGNED`.
|
|
37
|
+
*/
|
|
38
|
+
@IsOptional() @IsString() @IsNotEmpty() costCenterId?: string;
|
|
32
39
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IsString, IsArray, IsBoolean,
|
|
1
|
+
import { IsString, IsArray, IsBoolean, ValidateNested } from 'class-validator';
|
|
2
2
|
import { Type } from 'class-transformer';
|
|
3
3
|
import { CollectionSourceDto } from './CollectionSourceDto';
|
|
4
4
|
import { RetryPolicyDto } from './RetryPolicyDto';
|
|
@@ -12,6 +12,4 @@ export class UpsertProductConfigRequest {
|
|
|
12
12
|
@IsBoolean() allowPartial!: boolean;
|
|
13
13
|
@ValidateNested() @Type(() => RetryPolicyDto) retryPolicy!: RetryPolicyDto;
|
|
14
14
|
@IsArray() @IsString({ each: true }) reportTargets!: string[];
|
|
15
|
-
/** Centro de costo con el que el ledger registra los cobros de este producto. */
|
|
16
|
-
@IsOptional() @IsString() @IsNotEmpty() costCenterId?: string;
|
|
17
15
|
}
|
|
@@ -12,4 +12,6 @@ export class AuthorizeAdjustmentTransactionRequest {
|
|
|
12
12
|
relatedTransactionNumber: string;
|
|
13
13
|
operation: OperationEnum;
|
|
14
14
|
concept: string;
|
|
15
|
+
/** Centro de costo del asiento del ajuste en el ledger; ausente, el ledger escribe `UNASSIGNED`. */
|
|
16
|
+
costCenterId?: string;
|
|
15
17
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IsNotEmpty, IsNumber, IsPositive, IsString, Matches, MaxLength } from 'class-validator';
|
|
1
|
+
import { IsNotEmpty, IsNumber, IsOptional, IsPositive, IsString, Matches, MaxLength } from 'class-validator';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Pago de una recarga Bait de recompensa (`MEX_REWARD_TOPUP`). No toca ninguna wallet.
|
|
@@ -39,6 +39,12 @@ export class AuthorizeRewardTopupRequest {
|
|
|
39
39
|
@IsString()
|
|
40
40
|
@MaxLength(120)
|
|
41
41
|
concept: string;
|
|
42
|
+
|
|
43
|
+
/** Centro de costo del asiento de la recarga en el ledger; ausente, el processor escribe `UNASSIGNED`. */
|
|
44
|
+
@IsOptional()
|
|
45
|
+
@IsString()
|
|
46
|
+
@IsNotEmpty()
|
|
47
|
+
costCenterId?: string;
|
|
42
48
|
}
|
|
43
49
|
|
|
44
50
|
export default AuthorizeRewardTopupRequest;
|