Skip to content

Commit f8361df

Browse files
committed
feat(src): add experian to process
1 parent 697087c commit f8361df

File tree

12 files changed

+156
-62
lines changed

12 files changed

+156
-62
lines changed

src/app.module.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ import experianConfig from './config/experian.config';
5858
jwtConfig,
5959
throttlerConfig,
6060
equifaxConfig,
61-
experianConfig
61+
experianConfig,
6262
],
6363
isGlobal: true,
6464
}),
@@ -138,7 +138,7 @@ import experianConfig from './config/experian.config';
138138
BridgeLoanModule,
139139
WebhookModule,
140140
EquifaxModule,
141-
ExperianModule
141+
ExperianModule,
142142
],
143143
providers: [
144144
{

src/common/constans/urls.ts

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -44,13 +44,16 @@ export const URLs = {
4444
tokenV2: '/v2/oauth/token',
4545
},
4646
transactionCategoriser: {
47-
get: '/eits/gdp/v1/request?targeturl=https%3A%2F%2Fsandbox-api.serasaexperian.com.br%2Fopen-banking%2Fcategorization%2Fv1%2Fcategorize'
47+
get: '/eits/gdp/v1/request?targeturl=https%3A%2F%2Fsandbox-api.serasaexperian.com.br%2Fopen-banking%2Fcategorization%2Fv1%2Fcategorize',
4848
},
4949
openBanking: {
50-
verifyIncome: '/eits/gdp/v1/request?targeturl=https%3A%2F%2Fsandbox-api.serasaexperian.com.br%2Fopen-banking%2Fincome-verification%2Fv1%2Fincome-verifications',
51-
abilityPay: '/eits/gdp/v1/request?targeturl=https%3A%2F%2Fsandbox-api.serasaexperian.com.br%2Fopen-banking%2Faffordability-check%2Fv1%2Faffordability-checks',
50+
verifyIncome:
51+
'/eits/gdp/v1/request?targeturl=https%3A%2F%2Fsandbox-api.serasaexperian.com.br%2Fopen-banking%2Fincome-verification%2Fv1%2Fincome-verifications',
52+
abilityPay:
53+
'/eits/gdp/v1/request?targeturl=https%3A%2F%2Fsandbox-api.serasaexperian.com.br%2Fopen-banking%2Faffordability-check%2Fv1%2Faffordability-checks',
5254
bankScore: '/eits/gdp/v1/request?targeturl=',
53-
targetUrlBankScore: 'https://sandbox-api.serasaexperian.com.br/open-banking/score/v1/scores'
54-
}
55+
targetUrlBankScore:
56+
'https://sandbox-api.serasaexperian.com.br/open-banking/score/v1/scores',
57+
},
5558
},
5659
};

src/modules/experian/dtos/create.experian.dto.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
import { ApiProperty } from '@nestjs/swagger';
2-
import {
3-
IsBoolean,
4-
ArrayNotEmpty,
5-
} from 'class-validator';
2+
import { IsBoolean, ArrayNotEmpty } from 'class-validator';
63

74
export class CreateExperianDto {
85
@ApiProperty()

src/modules/experian/dtos/open-banking/affordability-check.dto.ts

Lines changed: 33 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
11
import { ApiProperty } from '@nestjs/swagger';
2-
import { IsBoolean, IsDateString, IsNumber, IsOptional, IsString, ValidateNested, IsArray } from 'class-validator';
2+
import {
3+
IsBoolean,
4+
IsDateString,
5+
IsNumber,
6+
IsOptional,
7+
IsString,
8+
ValidateNested,
9+
IsArray,
10+
} from 'class-validator';
311
import { Type } from 'class-transformer';
412

513
class PaymentMethodDTO {
@@ -33,7 +41,10 @@ class CreditCardAccountDTO {
3341
@IsString()
3442
productType: string;
3543

36-
@ApiProperty({ description: 'Información adicional del producto', required: false })
44+
@ApiProperty({
45+
description: 'Información adicional del producto',
46+
required: false,
47+
})
3748
@IsOptional()
3849
@IsString()
3950
productAdditionalInfo?: string;
@@ -42,7 +53,10 @@ class CreditCardAccountDTO {
4253
@IsString()
4354
creditCardNetwork: string;
4455

45-
@ApiProperty({ description: 'Información adicional de la red', required: false })
56+
@ApiProperty({
57+
description: 'Información adicional de la red',
58+
required: false,
59+
})
4660
@IsOptional()
4761
@IsString()
4862
networkAdditionalInfo?: string;
@@ -183,7 +197,10 @@ class TransactionDTO {
183197
@IsString()
184198
transactionType: string;
185199

186-
@ApiProperty({ description: 'Información adicional de la transacción', required: false })
200+
@ApiProperty({
201+
description: 'Información adicional de la transacción',
202+
required: false,
203+
})
187204
@IsOptional()
188205
@IsString()
189206
transactionalAdditionalInfo?: string;
@@ -196,7 +213,10 @@ class TransactionDTO {
196213
@IsString()
197214
feeType: string;
198215

199-
@ApiProperty({ description: 'Información adicional de la tarifa', required: false })
216+
@ApiProperty({
217+
description: 'Información adicional de la tarifa',
218+
required: false,
219+
})
200220
@IsOptional()
201221
@IsString()
202222
feeTypeAdditionalInfo?: string;
@@ -205,7 +225,10 @@ class TransactionDTO {
205225
@IsString()
206226
otherCreditsType: string;
207227

208-
@ApiProperty({ description: 'Información adicional de otros créditos', required: false })
228+
@ApiProperty({
229+
description: 'Información adicional de otros créditos',
230+
required: false,
231+
})
209232
@IsOptional()
210233
@IsString()
211234
otherCreditsAdditionalInfo?: string;
@@ -272,7 +295,10 @@ class CreditCardAccountLimitDTO {
272295
@IsString()
273296
lineName: string;
274297

275-
@ApiProperty({ description: 'Información adicional del nombre de la línea', required: false })
298+
@ApiProperty({
299+
description: 'Información adicional del nombre de la línea',
300+
required: false,
301+
})
276302
@IsOptional()
277303
@IsString()
278304
lineNameAdditionalInfo?: string;

src/modules/experian/dtos/open-banking/credit-score.dto.ts

Lines changed: 65 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
11
import { ApiProperty } from '@nestjs/swagger';
2-
import { IsArray, IsBoolean, IsDateString, IsNumber, IsOptional, IsString, ValidateNested } from 'class-validator';
2+
import {
3+
IsArray,
4+
IsBoolean,
5+
IsDateString,
6+
IsNumber,
7+
IsOptional,
8+
IsString,
9+
ValidateNested,
10+
} from 'class-validator';
311
import { Type } from 'class-transformer';
412

513
// DTO para métodos de pago
@@ -23,7 +31,9 @@ class CreditCardAccountDTO {
2331
@IsString()
2432
brandName: string;
2533

26-
@ApiProperty({ description: 'CNPJ de la compañía emisora de la tarjeta de crédito' })
34+
@ApiProperty({
35+
description: 'CNPJ de la compañía emisora de la tarjeta de crédito',
36+
})
2737
@IsString()
2838
companyCnpj: string;
2939

@@ -35,7 +45,11 @@ class CreditCardAccountDTO {
3545
@IsString()
3646
productType: string;
3747

38-
@ApiProperty({ description: 'Información adicional sobre el producto de tarjeta de crédito', required: false })
48+
@ApiProperty({
49+
description:
50+
'Información adicional sobre el producto de tarjeta de crédito',
51+
required: false,
52+
})
3953
@IsOptional()
4054
@IsString()
4155
productAdditionalInfo?: string;
@@ -44,7 +58,10 @@ class CreditCardAccountDTO {
4458
@IsString()
4559
creditCardNetwork: string;
4660

47-
@ApiProperty({ description: 'Información adicional sobre la red de tarjeta de crédito', required: false })
61+
@ApiProperty({
62+
description: 'Información adicional sobre la red de tarjeta de crédito',
63+
required: false,
64+
})
4865
@IsOptional()
4966
@IsString()
5067
networkAdditionalInfo?: string;
@@ -72,7 +89,10 @@ class FinanceChargesDTO {
7289
@IsString()
7390
type: string;
7491

75-
@ApiProperty({ description: 'Información adicional sobre el cargo financiero', required: false })
92+
@ApiProperty({
93+
description: 'Información adicional sobre el cargo financiero',
94+
required: false,
95+
})
7696
@IsOptional()
7797
@IsString()
7898
additionalInfo?: string;
@@ -167,7 +187,9 @@ class TransactionDTO {
167187
@IsString()
168188
transactionName: string;
169189

170-
@ApiProperty({ description: 'ID de la factura relacionada con la transacción' })
190+
@ApiProperty({
191+
description: 'ID de la factura relacionada con la transacción',
192+
})
171193
@IsString()
172194
billId: string;
173195

@@ -179,7 +201,10 @@ class TransactionDTO {
179201
@IsString()
180202
transactionType: string;
181203

182-
@ApiProperty({ description: 'Información adicional de la transacción', required: false })
204+
@ApiProperty({
205+
description: 'Información adicional de la transacción',
206+
required: false,
207+
})
183208
@IsOptional()
184209
@IsString()
185210
transactionalAdditionalInfo?: string;
@@ -192,7 +217,10 @@ class TransactionDTO {
192217
@IsString()
193218
feeType: string;
194219

195-
@ApiProperty({ description: 'Información adicional sobre la tarifa de la transacción', required: false })
220+
@ApiProperty({
221+
description: 'Información adicional sobre la tarifa de la transacción',
222+
required: false,
223+
})
196224
@IsOptional()
197225
@IsString()
198226
feeTypeAdditionalInfo?: string;
@@ -201,7 +229,10 @@ class TransactionDTO {
201229
@IsString()
202230
otherCreditsType: string;
203231

204-
@ApiProperty({ description: 'Información adicional sobre otros créditos en la transacción', required: false })
232+
@ApiProperty({
233+
description: 'Información adicional sobre otros créditos en la transacción',
234+
required: false,
235+
})
205236
@IsOptional()
206237
@IsString()
207238
otherCreditsAdditionalInfo?: string;
@@ -228,7 +259,9 @@ class TransactionDTO {
228259
@IsDateString()
229260
transactionDate: string;
230261

231-
@ApiProperty({ description: 'Fecha de publicación de la factura relacionada' })
262+
@ApiProperty({
263+
description: 'Fecha de publicación de la factura relacionada',
264+
})
232265
@IsDateString()
233266
billPostDate: string;
234267

@@ -270,7 +303,9 @@ class CreditCardAccountLimitDTO {
270303
@IsString()
271304
lineName: string;
272305

273-
@ApiProperty({ description: 'Información adicional sobre la línea de crédito' })
306+
@ApiProperty({
307+
description: 'Información adicional sobre la línea de crédito',
308+
})
274309
@IsString()
275310
lineNameAdditionalInfo: string;
276311

@@ -394,27 +429,40 @@ class AccountTransactionDTO {
394429
@IsDateString()
395430
transactionDate: string;
396431

397-
@ApiProperty({ description: 'CNPJ o CPF de la parte involucrada en la transacción' })
432+
@ApiProperty({
433+
description: 'CNPJ o CPF de la parte involucrada en la transacción',
434+
})
398435
@IsString()
399436
partieCnpjCpf: string;
400437

401-
@ApiProperty({ description: 'Tipo de persona de la parte involucrada en la transacción' })
438+
@ApiProperty({
439+
description: 'Tipo de persona de la parte involucrada en la transacción',
440+
})
402441
@IsString()
403442
partiePersonType: string;
404443

405-
@ApiProperty({ description: 'Código COMPE de la parte involucrada en la transacción' })
444+
@ApiProperty({
445+
description: 'Código COMPE de la parte involucrada en la transacción',
446+
})
406447
@IsString()
407448
partieCompeCode: string;
408449

409-
@ApiProperty({ description: 'Código de sucursal de la parte involucrada en la transacción' })
450+
@ApiProperty({
451+
description: 'Código de sucursal de la parte involucrada en la transacción',
452+
})
410453
@IsString()
411454
partieBranchCode: string;
412455

413-
@ApiProperty({ description: 'Número de cuenta de la parte involucrada en la transacción' })
456+
@ApiProperty({
457+
description: 'Número de cuenta de la parte involucrada en la transacción',
458+
})
414459
@IsString()
415460
partieNumber: string;
416461

417-
@ApiProperty({ description: 'Dígito de verificación de la parte involucrada en la transacción' })
462+
@ApiProperty({
463+
description:
464+
'Dígito de verificación de la parte involucrada en la transacción',
465+
})
418466
@IsString()
419467
partieCheckDigit: string;
420468
}

src/modules/experian/dtos/open-banking/verify-income.request.dto.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,14 @@
11
import { ApiProperty } from '@nestjs/swagger';
2-
import { IsArray, IsBoolean, IsDateString, IsNotEmpty, IsNumber, IsOptional, IsString, ValidateNested } from 'class-validator';
2+
import {
3+
IsArray,
4+
IsBoolean,
5+
IsDateString,
6+
IsNotEmpty,
7+
IsNumber,
8+
IsOptional,
9+
IsString,
10+
ValidateNested,
11+
} from 'class-validator';
312
import { Type } from 'class-transformer';
413

514
class AmountDTO {

src/modules/experian/dtos/transaction-categoriser/get-transaction-request.dto.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
11
import { ApiProperty } from '@nestjs/swagger';
2-
import { IsArray, IsDateString, IsNotEmpty, IsNumber, IsOptional, IsString, ValidateNested } from 'class-validator';
2+
import {
3+
IsArray,
4+
IsDateString,
5+
IsNotEmpty,
6+
IsNumber,
7+
IsOptional,
8+
IsString,
9+
ValidateNested,
10+
} from 'class-validator';
311
import { Type } from 'class-transformer';
412

513
class AmountDTO {

src/modules/experian/experian.controller.ts

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ export class ExperianController {
3232
constructor(
3333
private readonly experianService: ExperianService,
3434
private readonly transactionCategoriserService: TransactionCategoriserService,
35-
private readonly openBankingService: OpenBankingService
35+
private readonly openBankingService: OpenBankingService,
3636
) {}
3737

3838
@SkipJwtAuth()
@@ -53,7 +53,10 @@ export class ExperianController {
5353

5454
@SkipJwtAuth()
5555
@Post('/transaction-categoriser')
56-
@ApiOperation({ summary: 'It classifies consumer financial transactions from a list of 134 pre-determined categories.' })
56+
@ApiOperation({
57+
summary:
58+
'It classifies consumer financial transactions from a list of 134 pre-determined categories.',
59+
})
5760
@ApiResponse({
5861
status: 201,
5962
description: 'transaction categoriser',
@@ -79,14 +82,14 @@ export class ExperianController {
7982

8083
@SkipJwtAuth()
8184
@Post('/affordability-check')
82-
@ApiOperation({ summary: 'Checks if the customer can afford to make the payments.' })
85+
@ApiOperation({
86+
summary: 'Checks if the customer can afford to make the payments.',
87+
})
8388
@ApiResponse({
8489
status: 201,
8590
description: '',
8691
})
87-
async abilityPay(
88-
@Body() data: AffordabilityCheckDTO,
89-
): Promise<ResponseDTO> {
92+
async abilityPay(@Body() data: AffordabilityCheckDTO): Promise<ResponseDTO> {
9093
return { data: await this.openBankingService.abilityPay(data) };
9194
}
9295

@@ -97,9 +100,7 @@ export class ExperianController {
97100
status: 201,
98101
description: '',
99102
})
100-
async scores(
101-
@Body() data: CreditScoreRequestDTO,
102-
): Promise<ResponseDTO> {
103+
async scores(@Body() data: CreditScoreRequestDTO): Promise<ResponseDTO> {
103104
return { data: await this.openBankingService.getCreditScore(data) };
104105
}
105106

0 commit comments

Comments
 (0)