@fiado/api-invoker 1.5.45 → 1.5.47
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/bin/account-fiadoinc/AccountFiadoIncApi.d.ts +1 -0
- package/bin/account-fiadoinc/AccountFiadoIncApi.js +12 -0
- package/bin/account-fiadoinc/interfaces/IAccountFiadoIncApi.d.ts +1 -0
- package/bin/account-pagoconfiado/AccountPagoConfiadoApi.d.ts +2 -1
- package/bin/account-pagoconfiado/AccountPagoConfiadoApi.js +11 -0
- package/bin/account-pagoconfiado/interfaces/IAccountPagoConfiadoApi.d.ts +2 -1
- package/bin/cognitoConnector/CognitoConnectorV2.d.ts +10 -0
- package/bin/cognitoConnector/CognitoConnectorV2.js +5 -0
- package/bin/cognitoConnector/interfaces/ICognitoConnectorApiV2.d.ts +46 -0
- package/bin/cognitoConnector/interfaces/ICognitoV2Api.d.ts +13 -0
- package/bin/container.config.js +29 -0
- package/bin/credit-engine/CreditEngineApi.d.ts +13 -0
- package/bin/{referral-business/PayrollApi.js → credit-engine/CreditEngineApi.js} +27 -10
- package/bin/credit-engine/index.d.ts +12 -0
- package/bin/credit-engine/index.js +29 -0
- package/bin/credit-engine/interfaces/ICreditEngineApi.d.ts +28 -0
- package/bin/credit-engine/queue/CreditCollectionPublisher.d.ts +6 -0
- package/bin/{account-fiadoinc/queue/TransactionPublisher.js → credit-engine/queue/CreditCollectionPublisher.js} +8 -11
- package/bin/credit-engine/queue/CreditDelinquencyPublisher.d.ts +6 -0
- package/bin/credit-engine/queue/CreditDelinquencyPublisher.js +33 -0
- package/bin/credit-engine/queue/CreditIncomeDetectionPublisher.d.ts +6 -0
- package/bin/credit-engine/queue/CreditIncomeDetectionPublisher.js +33 -0
- package/bin/credit-engine/queue/CreditLienCollectionPublisher.d.ts +6 -0
- package/bin/credit-engine/queue/CreditLienCollectionPublisher.js +33 -0
- package/bin/credit-engine/queue/CreditNotificationPublisher.d.ts +6 -0
- package/bin/credit-engine/queue/CreditNotificationPublisher.js +33 -0
- package/bin/credit-engine/queue/CreditOfferGenerationPublisher.d.ts +6 -0
- package/bin/credit-engine/queue/CreditOfferGenerationPublisher.js +33 -0
- package/bin/credit-engine/queue/CreditReconciliationPublisher.d.ts +6 -0
- package/bin/credit-engine/queue/CreditReconciliationPublisher.js +33 -0
- package/bin/credit-engine/queue/CreditScoringPublisher.d.ts +6 -0
- package/bin/credit-engine/queue/CreditScoringPublisher.js +33 -0
- package/bin/credit-engine/queue/CreditStatementPublisher.d.ts +6 -0
- package/bin/credit-engine/queue/CreditStatementPublisher.js +33 -0
- package/bin/credit-engine/queue/CreditTransferPublisher.d.ts +6 -0
- package/bin/credit-engine/queue/CreditTransferPublisher.js +33 -0
- package/bin/credit-engine/queue/interfaces/ICreditCollectionPublisher.d.ts +4 -0
- package/bin/credit-engine/queue/interfaces/ICreditCollectionPublisher.js +2 -0
- package/bin/credit-engine/queue/interfaces/ICreditDelinquencyPublisher.d.ts +4 -0
- package/bin/credit-engine/queue/interfaces/ICreditDelinquencyPublisher.js +2 -0
- package/bin/credit-engine/queue/interfaces/ICreditIncomeDetectionPublisher.d.ts +4 -0
- package/bin/credit-engine/queue/interfaces/ICreditIncomeDetectionPublisher.js +2 -0
- package/bin/credit-engine/queue/interfaces/ICreditLienCollectionPublisher.d.ts +4 -0
- package/bin/credit-engine/queue/interfaces/ICreditLienCollectionPublisher.js +2 -0
- package/bin/credit-engine/queue/interfaces/ICreditNotificationPublisher.d.ts +4 -0
- package/bin/credit-engine/queue/interfaces/ICreditNotificationPublisher.js +2 -0
- package/bin/credit-engine/queue/interfaces/ICreditOfferGenerationPublisher.d.ts +4 -0
- package/bin/credit-engine/queue/interfaces/ICreditOfferGenerationPublisher.js +2 -0
- package/bin/credit-engine/queue/interfaces/ICreditReconciliationPublisher.d.ts +4 -0
- package/bin/credit-engine/queue/interfaces/ICreditReconciliationPublisher.js +2 -0
- package/bin/credit-engine/queue/interfaces/ICreditScoringPublisher.d.ts +4 -0
- package/bin/credit-engine/queue/interfaces/ICreditScoringPublisher.js +2 -0
- package/bin/credit-engine/queue/interfaces/ICreditStatementPublisher.d.ts +4 -0
- package/bin/credit-engine/queue/interfaces/ICreditStatementPublisher.js +2 -0
- package/bin/credit-engine/queue/interfaces/ICreditTransferPublisher.d.ts +4 -0
- package/bin/credit-engine/queue/interfaces/ICreditTransferPublisher.js +2 -0
- package/bin/credit-payment/CreditPaymentApi.d.ts +21 -0
- package/bin/credit-payment/CreditPaymentApi.js +78 -0
- package/bin/credit-payment/index.d.ts +2 -0
- package/bin/{activity → credit-payment}/index.js +2 -2
- package/bin/credit-payment/interfaces/ICreditPaymentApi.d.ts +43 -0
- package/bin/credit-payment/interfaces/ICreditPaymentApi.js +2 -0
- package/bin/document-generator/DocumentGeneratorApi.d.ts +17 -0
- package/bin/document-generator/DocumentGeneratorApi.js +63 -0
- package/bin/document-generator/index.d.ts +2 -0
- package/bin/document-generator/index.js +18 -0
- package/bin/document-generator/interfaces/IDocumentGeneratorApi.d.ts +30 -0
- package/bin/document-generator/interfaces/IDocumentGeneratorApi.js +2 -0
- package/bin/index.d.ts +3 -0
- package/bin/index.js +3 -0
- package/bin/report-processor-business/api/IReportProcessorBusiness.d.ts +3 -0
- package/bin/report-processor-business/api/IReportProcessorBusiness.js +2 -0
- package/package.json +2 -2
- package/src/account-fiadoinc/AccountFiadoIncApi.ts +12 -0
- package/src/account-fiadoinc/interfaces/IAccountFiadoIncApi.ts +2 -0
- package/src/account-pagoconfiado/AccountPagoConfiadoApi.ts +14 -3
- package/src/account-pagoconfiado/interfaces/IAccountPagoConfiadoApi.ts +4 -1
- package/src/cognitoConnector/CognitoConnectorV2.ts +6 -0
- package/src/cognitoConnector/interfaces/ICognitoV2Api.ts +5 -0
- package/src/container.config.ts +44 -0
- package/src/credit-engine/CreditEngineApi.ts +40 -0
- package/src/credit-engine/index.ts +14 -0
- package/src/credit-engine/interfaces/ICreditEngineApi.ts +33 -0
- package/src/credit-engine/queue/CreditCollectionPublisher.ts +23 -0
- package/src/credit-engine/queue/CreditDelinquencyPublisher.ts +23 -0
- package/src/credit-engine/queue/CreditIncomeDetectionPublisher.ts +23 -0
- package/src/credit-engine/queue/CreditLienCollectionPublisher.ts +23 -0
- package/src/credit-engine/queue/CreditNotificationPublisher.ts +23 -0
- package/src/credit-engine/queue/CreditOfferGenerationPublisher.ts +23 -0
- package/src/credit-engine/queue/CreditReconciliationPublisher.ts +23 -0
- package/src/credit-engine/queue/CreditScoringPublisher.ts +23 -0
- package/src/credit-engine/queue/CreditStatementPublisher.ts +23 -0
- package/src/credit-engine/queue/CreditTransferPublisher.ts +23 -0
- package/src/credit-engine/queue/interfaces/ICreditCollectionPublisher.ts +5 -0
- package/src/credit-engine/queue/interfaces/ICreditDelinquencyPublisher.ts +5 -0
- package/src/credit-engine/queue/interfaces/ICreditIncomeDetectionPublisher.ts +5 -0
- package/src/credit-engine/queue/interfaces/ICreditLienCollectionPublisher.ts +5 -0
- package/src/credit-engine/queue/interfaces/ICreditNotificationPublisher.ts +5 -0
- package/src/credit-engine/queue/interfaces/ICreditOfferGenerationPublisher.ts +5 -0
- package/src/credit-engine/queue/interfaces/ICreditReconciliationPublisher.ts +5 -0
- package/src/credit-engine/queue/interfaces/ICreditScoringPublisher.ts +5 -0
- package/src/credit-engine/queue/interfaces/ICreditStatementPublisher.ts +5 -0
- package/src/credit-engine/queue/interfaces/ICreditTransferPublisher.ts +5 -0
- package/src/credit-payment/CreditPaymentApi.ts +72 -0
- package/src/credit-payment/index.ts +2 -0
- package/src/credit-payment/interfaces/ICreditPaymentApi.ts +52 -0
- package/src/document-generator/DocumentGeneratorApi.ts +50 -0
- package/src/document-generator/index.ts +2 -0
- package/src/document-generator/interfaces/IDocumentGeneratorApi.ts +33 -0
- package/src/index.ts +3 -0
- package/bin/account-fiadoinc/queue/TransactionPublisher.d.ts +0 -9
- package/bin/account-fiadoinc/queue/interfaces/ITransactionPublisher.d.ts +0 -7
- package/bin/activity/ActivityApi.d.ts +0 -17
- package/bin/activity/ActivityApi.js +0 -72
- package/bin/activity/index.d.ts +0 -2
- package/bin/activity/interfaces/IActivityApi.d.ts +0 -39
- package/bin/referral-business/PayrollApi.d.ts +0 -9
- /package/bin/{account-fiadoinc/queue/interfaces/ITransactionPublisher.js → cognitoConnector/interfaces/ICognitoConnectorApiV2.js} +0 -0
- /package/bin/{activity/interfaces/IActivityApi.js → credit-engine/interfaces/ICreditEngineApi.js} +0 -0
|
@@ -43,4 +43,6 @@ export interface IAccountFiadoIncApi extends IPublisher {
|
|
|
43
43
|
getAccountByExternalAccountId(provider: Provider, externalAccountId: string): Promise<FiadoApiResponse<GetAccountResponse[]>>
|
|
44
44
|
|
|
45
45
|
scanAllAccounts(provider: Provider | 'ALL', limit?: number, lastEvaluatedKey?: string): Promise<FiadoApiResponse<GetAccountResponseList>>
|
|
46
|
+
|
|
47
|
+
scanAccountsByDateRange(provider: Provider | 'ALL', startDate: number, endDate: number, limit?: number, lastEvaluatedKey?: string): Promise<FiadoApiResponse<GetAccountResponseList>>
|
|
46
48
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import {IAccountPagoConfiadoApi} from "./interfaces/IAccountPagoConfiadoApi";
|
|
2
|
-
import {AccountCreateRequest, AccountCreateResponse, AccountUpdateBalanceRequest, AccountUpdateRequest, GetAccountResponse} from "@fiado/type-kit/bin/account";
|
|
2
|
+
import {AccountCreateRequest, AccountCreateResponse, AccountUpdateBalanceRequest, AccountUpdateRequest, GetAccountResponse, GetAccountResponseList} from "@fiado/type-kit/bin/account";
|
|
3
3
|
import {ApiGatewayResponse} from "@fiado/gateway-adapter";
|
|
4
4
|
import {inject, injectable} from "inversify";
|
|
5
5
|
import {IHttpRequest} from "@fiado/http-client";
|
|
@@ -46,8 +46,8 @@ export default class AccountPagoConfiadoApi implements IAccountPagoConfiadoApi {
|
|
|
46
46
|
return await this.httpRequest.get(url);
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
-
async getAccountListByDateMinorOrEqual(params: { index?: string | null; pageSize?: string; date?: string; }): Promise<ApiGatewayResponse<any>> {
|
|
50
|
-
|
|
49
|
+
async getAccountListByDateMinorOrEqual(params: { index?: string | null; pageSize?: string; date?: string; }): Promise<ApiGatewayResponse<any>> {
|
|
50
|
+
|
|
51
51
|
let queryParams = [];
|
|
52
52
|
|
|
53
53
|
if (params.index) {
|
|
@@ -65,4 +65,15 @@ export default class AccountPagoConfiadoApi implements IAccountPagoConfiadoApi {
|
|
|
65
65
|
const url = `${this.baseUrl}?${queryParams.join('&')}`;
|
|
66
66
|
return await this.httpRequest.get(url);
|
|
67
67
|
}
|
|
68
|
+
|
|
69
|
+
async scanAccountsByDateRange(startDate: number, endDate: number, limit?: number, lastEvaluatedKey?: string): Promise<ApiGatewayResponse<GetAccountResponseList>> {
|
|
70
|
+
const queryParams = new URLSearchParams();
|
|
71
|
+
queryParams.append('startDate', startDate.toString());
|
|
72
|
+
queryParams.append('endDate', endDate.toString());
|
|
73
|
+
if (limit) queryParams.append('limit', limit.toString());
|
|
74
|
+
if (lastEvaluatedKey) queryParams.append('lastEvaluatedKey', lastEvaluatedKey);
|
|
75
|
+
|
|
76
|
+
const url = `${this.baseUrl}accounts/scan/by-date-range?${queryParams.toString()}`;
|
|
77
|
+
return await this.httpRequest.get(url);
|
|
78
|
+
}
|
|
68
79
|
}
|
|
@@ -3,7 +3,8 @@ import {
|
|
|
3
3
|
AccountCreateResponse,
|
|
4
4
|
AccountUpdateBalanceRequest,
|
|
5
5
|
AccountUpdateRequest,
|
|
6
|
-
GetAccountResponse
|
|
6
|
+
GetAccountResponse,
|
|
7
|
+
GetAccountResponseList
|
|
7
8
|
} from "@fiado/type-kit/bin/account";
|
|
8
9
|
import { ApiGatewayResponse } from "@fiado/gateway-adapter";
|
|
9
10
|
import { Provider } from "@fiado/type-kit/bin/provider";
|
|
@@ -32,4 +33,6 @@ export interface IAccountPagoConfiadoApi {
|
|
|
32
33
|
date?: string,
|
|
33
34
|
}
|
|
34
35
|
): Promise<ApiGatewayResponse<any>>;
|
|
36
|
+
|
|
37
|
+
scanAccountsByDateRange(startDate: number, endDate: number, limit?: number, lastEvaluatedKey?: string): Promise<ApiGatewayResponse<GetAccountResponseList>>;
|
|
35
38
|
}
|
|
@@ -78,4 +78,10 @@ export default class CognitoApi implements ICognitoV2Api {
|
|
|
78
78
|
const response: any = await this.httpRequest.post(url, request);
|
|
79
79
|
return response.data;
|
|
80
80
|
}
|
|
81
|
+
|
|
82
|
+
async updateUser(request: { identityId: string; typeOfDirectoryId: string; email?: string; emailVerified?: string; phoneNumber?: string; phoneNumberVerified?: string; secretNumberStatus?: string; username?: string }): Promise<void> {
|
|
83
|
+
const url = `${this.baseUrl}cognito/user`;
|
|
84
|
+
const response: any = await this.httpRequest.put(url, request);
|
|
85
|
+
return response.data;
|
|
86
|
+
}
|
|
81
87
|
}
|
|
@@ -51,6 +51,11 @@ export interface ICognitoV2Api {
|
|
|
51
51
|
* Reset a user's password
|
|
52
52
|
*/
|
|
53
53
|
resetPassword(request: SetPasswordRequest): Promise<void>;
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Update a user's attributes in Cognito
|
|
57
|
+
*/
|
|
58
|
+
updateUser(request: { identityId: string; typeOfDirectoryId: string; email?: string; emailVerified?: string; phoneNumber?: string; phoneNumberVerified?: string; secretNumberStatus?: string; username?: string }): Promise<void>;
|
|
54
59
|
}
|
|
55
60
|
|
|
56
61
|
export interface HealthcheckResponse {
|
package/src/container.config.ts
CHANGED
|
@@ -96,6 +96,33 @@ import { IMulticommServicePaymentApi } from "./multicommServicePayment";
|
|
|
96
96
|
import MulticommServicePaymentApi from "./multicommServicePayment/api/MulticommServicePaymentApi";
|
|
97
97
|
import { IProductPaymentApi } from "./product-payment";
|
|
98
98
|
import ProductPaymentApi from "./product-payment/api/ProductPaymentApi";
|
|
99
|
+
// Credit module - API clients
|
|
100
|
+
import { CreditEngineApi, ICreditEngineApi } from "./credit-engine";
|
|
101
|
+
import { CreditPaymentApi, ICreditPaymentApi } from "./credit-payment";
|
|
102
|
+
import { DocumentGeneratorApi, IDocumentGeneratorApi } from "./document-generator";
|
|
103
|
+
// Credit module - SQS publishers
|
|
104
|
+
import {
|
|
105
|
+
ICreditIncomeDetectionPublisher,
|
|
106
|
+
ICreditScoringPublisher,
|
|
107
|
+
ICreditOfferGenerationPublisher,
|
|
108
|
+
ICreditCollectionPublisher,
|
|
109
|
+
ICreditDelinquencyPublisher,
|
|
110
|
+
ICreditTransferPublisher,
|
|
111
|
+
ICreditNotificationPublisher,
|
|
112
|
+
ICreditStatementPublisher,
|
|
113
|
+
ICreditReconciliationPublisher,
|
|
114
|
+
ICreditLienCollectionPublisher
|
|
115
|
+
} from "./credit-engine";
|
|
116
|
+
import CreditIncomeDetectionPublisher from "./credit-engine/queue/CreditIncomeDetectionPublisher";
|
|
117
|
+
import CreditScoringPublisher from "./credit-engine/queue/CreditScoringPublisher";
|
|
118
|
+
import CreditOfferGenerationPublisher from "./credit-engine/queue/CreditOfferGenerationPublisher";
|
|
119
|
+
import CreditCollectionPublisher from "./credit-engine/queue/CreditCollectionPublisher";
|
|
120
|
+
import CreditDelinquencyPublisher from "./credit-engine/queue/CreditDelinquencyPublisher";
|
|
121
|
+
import CreditTransferPublisher from "./credit-engine/queue/CreditTransferPublisher";
|
|
122
|
+
import CreditNotificationPublisher from "./credit-engine/queue/CreditNotificationPublisher";
|
|
123
|
+
import CreditStatementPublisher from "./credit-engine/queue/CreditStatementPublisher";
|
|
124
|
+
import CreditReconciliationPublisher from "./credit-engine/queue/CreditReconciliationPublisher";
|
|
125
|
+
import CreditLienCollectionPublisher from "./credit-engine/queue/CreditLienCollectionPublisher";
|
|
99
126
|
|
|
100
127
|
export const apiInvokerBindings = new ContainerModule((bind: interfaces.Bind) => {
|
|
101
128
|
// UTILS bindings
|
|
@@ -168,4 +195,21 @@ export const apiInvokerBindings = new ContainerModule((bind: interfaces.Bind) =>
|
|
|
168
195
|
bind<IPeopleBusinessApi>("IPeopleBusinessApi").to(PeopleBusinessApi);
|
|
169
196
|
bind<ISTPBusinessApi>("ISTPBusinessApi").to(STPBusinessApi);
|
|
170
197
|
bind<IProductPaymentApi>("IProductPaymentApi").to(ProductPaymentApi);
|
|
198
|
+
|
|
199
|
+
// Credit module - API clients
|
|
200
|
+
bind<ICreditEngineApi>("ICreditEngineApi").to(CreditEngineApi);
|
|
201
|
+
bind<ICreditPaymentApi>("ICreditPaymentApi").to(CreditPaymentApi);
|
|
202
|
+
bind<IDocumentGeneratorApi>("IDocumentGeneratorApi").to(DocumentGeneratorApi);
|
|
203
|
+
|
|
204
|
+
// Credit module - SQS publishers
|
|
205
|
+
bind<ICreditIncomeDetectionPublisher>("ICreditIncomeDetectionPublisher").to(CreditIncomeDetectionPublisher);
|
|
206
|
+
bind<ICreditScoringPublisher>("ICreditScoringPublisher").to(CreditScoringPublisher);
|
|
207
|
+
bind<ICreditOfferGenerationPublisher>("ICreditOfferGenerationPublisher").to(CreditOfferGenerationPublisher);
|
|
208
|
+
bind<ICreditCollectionPublisher>("ICreditCollectionPublisher").to(CreditCollectionPublisher);
|
|
209
|
+
bind<ICreditDelinquencyPublisher>("ICreditDelinquencyPublisher").to(CreditDelinquencyPublisher);
|
|
210
|
+
bind<ICreditTransferPublisher>("ICreditTransferPublisher").to(CreditTransferPublisher);
|
|
211
|
+
bind<ICreditNotificationPublisher>("ICreditNotificationPublisher").to(CreditNotificationPublisher);
|
|
212
|
+
bind<ICreditStatementPublisher>("ICreditStatementPublisher").to(CreditStatementPublisher);
|
|
213
|
+
bind<ICreditReconciliationPublisher>("ICreditReconciliationPublisher").to(CreditReconciliationPublisher);
|
|
214
|
+
bind<ICreditLienCollectionPublisher>("ICreditLienCollectionPublisher").to(CreditLienCollectionPublisher);
|
|
171
215
|
});
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import dotenv from 'dotenv';
|
|
2
|
+
import { inject, injectable } from "inversify";
|
|
3
|
+
import { IHttpRequest } from "@fiado/http-client";
|
|
4
|
+
import { ICreditEngineApi } from "./interfaces/ICreditEngineApi";
|
|
5
|
+
import { CreditProfileResponse } from "@fiado/type-kit/bin/credit";
|
|
6
|
+
import { LienStatusResponse } from "@fiado/type-kit/bin/credit";
|
|
7
|
+
dotenv.config();
|
|
8
|
+
|
|
9
|
+
@injectable()
|
|
10
|
+
export class CreditEngineApi implements ICreditEngineApi {
|
|
11
|
+
|
|
12
|
+
private readonly baseUrl = process.env.CREDIT_ENGINE_LAMBDA_URL || "";
|
|
13
|
+
|
|
14
|
+
constructor(@inject("IHttpRequest") private httpRequest: IHttpRequest) {}
|
|
15
|
+
|
|
16
|
+
public async getCreditProfile(directoryId: string): Promise<CreditProfileResponse> {
|
|
17
|
+
const url = `${this.baseUrl}credit/profile/${directoryId}`;
|
|
18
|
+
const operationName = "getCreditProfile";
|
|
19
|
+
return await this.httpRequest.post(url, null, { 'operationName': operationName });
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
public async getActiveCredit(directoryId: string): Promise<any> {
|
|
23
|
+
const url = `${this.baseUrl}credit/active/${directoryId}`;
|
|
24
|
+
const operationName = "getActiveCredit";
|
|
25
|
+
return await this.httpRequest.post(url, null, { 'operationName': operationName });
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
public async getLienStatus(directoryId: string): Promise<LienStatusResponse> {
|
|
29
|
+
const url = `${this.baseUrl}credit/lien/${directoryId}`;
|
|
30
|
+
const operationName = "getLienStatus";
|
|
31
|
+
return await this.httpRequest.post(url, null, { 'operationName': operationName });
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
public async applyLien(directoryId: string, creditId: string, active: boolean, percentage?: number, maxAmount?: number): Promise<any> {
|
|
35
|
+
const url = `${this.baseUrl}credit/lien/apply`;
|
|
36
|
+
const operationName = "applyLien";
|
|
37
|
+
const body = { directoryId, creditId, active, percentage, maxAmount };
|
|
38
|
+
return await this.httpRequest.post(url, body, { 'operationName': operationName });
|
|
39
|
+
}
|
|
40
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export * from './interfaces/ICreditEngineApi';
|
|
2
|
+
export * from './CreditEngineApi';
|
|
3
|
+
|
|
4
|
+
// SQS Publishers - interfaces
|
|
5
|
+
export * from './queue/interfaces/ICreditIncomeDetectionPublisher';
|
|
6
|
+
export * from './queue/interfaces/ICreditScoringPublisher';
|
|
7
|
+
export * from './queue/interfaces/ICreditOfferGenerationPublisher';
|
|
8
|
+
export * from './queue/interfaces/ICreditCollectionPublisher';
|
|
9
|
+
export * from './queue/interfaces/ICreditDelinquencyPublisher';
|
|
10
|
+
export * from './queue/interfaces/ICreditTransferPublisher';
|
|
11
|
+
export * from './queue/interfaces/ICreditNotificationPublisher';
|
|
12
|
+
export * from './queue/interfaces/ICreditStatementPublisher';
|
|
13
|
+
export * from './queue/interfaces/ICreditReconciliationPublisher';
|
|
14
|
+
export * from './queue/interfaces/ICreditLienCollectionPublisher';
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { CreditProfileResponse } from "@fiado/type-kit/bin/credit";
|
|
2
|
+
import { CreditBalanceResponse } from "@fiado/type-kit/bin/credit";
|
|
3
|
+
import { LienStatusResponse } from "@fiado/type-kit/bin/credit";
|
|
4
|
+
|
|
5
|
+
export interface ICreditEngineApi {
|
|
6
|
+
/**
|
|
7
|
+
* Obtiene el perfil crediticio de un usuario.
|
|
8
|
+
* @param directoryId ID del directorio del usuario.
|
|
9
|
+
*/
|
|
10
|
+
getCreditProfile(directoryId: string): Promise<CreditProfileResponse>;
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Obtiene el crédito activo de un usuario.
|
|
14
|
+
* @param directoryId ID del directorio del usuario.
|
|
15
|
+
*/
|
|
16
|
+
getActiveCredit(directoryId: string): Promise<any>;
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Obtiene el estado del lien (cobro latente) de un usuario.
|
|
20
|
+
* @param directoryId ID del directorio del usuario.
|
|
21
|
+
*/
|
|
22
|
+
getLienStatus(directoryId: string): Promise<LienStatusResponse>;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Aplica o modifica la configuración de lien para un crédito.
|
|
26
|
+
* @param directoryId ID del directorio del usuario.
|
|
27
|
+
* @param creditId ID del crédito.
|
|
28
|
+
* @param active Activar o desactivar.
|
|
29
|
+
* @param percentage Porcentaje del depósito a retener.
|
|
30
|
+
* @param maxAmount Monto máximo por retención.
|
|
31
|
+
*/
|
|
32
|
+
applyLien(directoryId: string, creditId: string, active: boolean, percentage?: number, maxAmount?: number): Promise<any>;
|
|
33
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ICreditCollectionPublisher } from "./interfaces/ICreditCollectionPublisher";
|
|
2
|
+
import { CreditQueueMessage } from "@fiado/type-kit/bin/credit";
|
|
3
|
+
import { SendMessageCommand, SendMessageRequest, SQSClient } from "@aws-sdk/client-sqs";
|
|
4
|
+
import { injectable } from "inversify";
|
|
5
|
+
|
|
6
|
+
@injectable()
|
|
7
|
+
export default class CreditCollectionPublisher implements ICreditCollectionPublisher {
|
|
8
|
+
private readonly QUEUE_URL = process.env.CREDIT_COLLECTION_QUEUE;
|
|
9
|
+
|
|
10
|
+
async publish(message: CreditQueueMessage): Promise<void> {
|
|
11
|
+
try {
|
|
12
|
+
const client: SQSClient = new SQSClient();
|
|
13
|
+
const sendMessageRequest: SendMessageRequest = {
|
|
14
|
+
QueueUrl: this.QUEUE_URL,
|
|
15
|
+
MessageBody: JSON.stringify(message)
|
|
16
|
+
};
|
|
17
|
+
const command: SendMessageCommand = new SendMessageCommand(sendMessageRequest);
|
|
18
|
+
await client.send(command);
|
|
19
|
+
} catch (error) {
|
|
20
|
+
throw new Error(`Error publishing message to CreditCollectionQueue${': ' + error.message}`);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ICreditDelinquencyPublisher } from "./interfaces/ICreditDelinquencyPublisher";
|
|
2
|
+
import { SendMessageCommand, SendMessageRequest, SQSClient } from "@aws-sdk/client-sqs";
|
|
3
|
+
import { CreditQueueMessage } from "@fiado/type-kit/bin/credit";
|
|
4
|
+
import { injectable } from "inversify";
|
|
5
|
+
|
|
6
|
+
@injectable()
|
|
7
|
+
export default class CreditDelinquencyPublisher implements ICreditDelinquencyPublisher {
|
|
8
|
+
private readonly QUEUE_URL = process.env.CREDIT_DELINQUENCY_QUEUE;
|
|
9
|
+
|
|
10
|
+
async publish(message: CreditQueueMessage): Promise<void> {
|
|
11
|
+
try {
|
|
12
|
+
const client: SQSClient = new SQSClient();
|
|
13
|
+
const sendMessageRequest: SendMessageRequest = {
|
|
14
|
+
QueueUrl: this.QUEUE_URL,
|
|
15
|
+
MessageBody: JSON.stringify(message)
|
|
16
|
+
};
|
|
17
|
+
const command: SendMessageCommand = new SendMessageCommand(sendMessageRequest);
|
|
18
|
+
await client.send(command);
|
|
19
|
+
} catch (error) {
|
|
20
|
+
throw new Error(`Error publishing message to CreditDelinquencyQueue: ${error.message}`);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ICreditIncomeDetectionPublisher } from "./interfaces/ICreditIncomeDetectionPublisher";
|
|
2
|
+
import { CreditQueueMessage } from "@fiado/type-kit/bin/credit";
|
|
3
|
+
import { SendMessageCommand, SendMessageRequest, SQSClient } from "@aws-sdk/client-sqs";
|
|
4
|
+
import { injectable } from "inversify";
|
|
5
|
+
|
|
6
|
+
@injectable()
|
|
7
|
+
export default class CreditIncomeDetectionPublisher implements ICreditIncomeDetectionPublisher {
|
|
8
|
+
private readonly QUEUE_URL = process.env.CREDIT_INCOME_DETECTION_QUEUE;
|
|
9
|
+
|
|
10
|
+
async publish(message: CreditQueueMessage): Promise<void> {
|
|
11
|
+
try {
|
|
12
|
+
const client: SQSClient = new SQSClient();
|
|
13
|
+
const sendMessageRequest: SendMessageRequest = {
|
|
14
|
+
QueueUrl: this.QUEUE_URL,
|
|
15
|
+
MessageBody: JSON.stringify(message)
|
|
16
|
+
};
|
|
17
|
+
const command: SendMessageCommand = new SendMessageCommand(sendMessageRequest);
|
|
18
|
+
await client.send(command);
|
|
19
|
+
} catch (error) {
|
|
20
|
+
throw new Error(`Error publishing message to CreditIncomeDetectionQueue${': ' + error.message}`);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ICreditLienCollectionPublisher } from "./interfaces/ICreditLienCollectionPublisher";
|
|
2
|
+
import { CreditQueueMessage } from "@fiado/type-kit/bin/credit";
|
|
3
|
+
import { SendMessageCommand, SendMessageRequest, SQSClient } from "@aws-sdk/client-sqs";
|
|
4
|
+
import { injectable } from "inversify";
|
|
5
|
+
|
|
6
|
+
@injectable()
|
|
7
|
+
export default class CreditLienCollectionPublisher implements ICreditLienCollectionPublisher {
|
|
8
|
+
private readonly QUEUE_URL = process.env.CREDIT_LIEN_COLLECTION_QUEUE;
|
|
9
|
+
|
|
10
|
+
async publish(message: CreditQueueMessage): Promise<void> {
|
|
11
|
+
try {
|
|
12
|
+
const client: SQSClient = new SQSClient();
|
|
13
|
+
const sendMessageRequest: SendMessageRequest = {
|
|
14
|
+
QueueUrl: this.QUEUE_URL,
|
|
15
|
+
MessageBody: JSON.stringify(message)
|
|
16
|
+
};
|
|
17
|
+
const command: SendMessageCommand = new SendMessageCommand(sendMessageRequest);
|
|
18
|
+
await client.send(command);
|
|
19
|
+
} catch (error) {
|
|
20
|
+
throw new Error(`Error publishing message to CreditLienCollectionQueue${': ' + (error.message || '')}`);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ICreditNotificationPublisher } from "./interfaces/ICreditNotificationPublisher";
|
|
2
|
+
import { CreditQueueMessage } from "@fiado/type-kit/bin/credit";
|
|
3
|
+
import { SendMessageCommand, SendMessageRequest, SQSClient } from "@aws-sdk/client-sqs";
|
|
4
|
+
import { injectable } from "inversify";
|
|
5
|
+
|
|
6
|
+
@injectable()
|
|
7
|
+
export default class CreditNotificationPublisher implements ICreditNotificationPublisher {
|
|
8
|
+
private readonly QUEUE_URL = process.env.CREDIT_NOTIFICATION_QUEUE;
|
|
9
|
+
|
|
10
|
+
async publish(message: CreditQueueMessage): Promise<void> {
|
|
11
|
+
try {
|
|
12
|
+
const client: SQSClient = new SQSClient();
|
|
13
|
+
const sendMessageRequest: SendMessageRequest = {
|
|
14
|
+
QueueUrl: this.QUEUE_URL,
|
|
15
|
+
MessageBody: JSON.stringify(message)
|
|
16
|
+
};
|
|
17
|
+
const command: SendMessageCommand = new SendMessageCommand(sendMessageRequest);
|
|
18
|
+
await client.send(command);
|
|
19
|
+
} catch (error) {
|
|
20
|
+
throw new Error(`Error publishing message to CreditNotificationQueue${': ' + error.message}`);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ICreditOfferGenerationPublisher } from "./interfaces/ICreditOfferGenerationPublisher";
|
|
2
|
+
import { CreditQueueMessage } from "@fiado/type-kit/bin/credit";
|
|
3
|
+
import { SendMessageCommand, SendMessageRequest, SQSClient } from "@aws-sdk/client-sqs";
|
|
4
|
+
import { injectable } from "inversify";
|
|
5
|
+
|
|
6
|
+
@injectable()
|
|
7
|
+
export default class CreditOfferGenerationPublisher implements ICreditOfferGenerationPublisher {
|
|
8
|
+
private readonly QUEUE_URL = process.env.CREDIT_OFFER_GENERATION_QUEUE;
|
|
9
|
+
|
|
10
|
+
async publish(message: CreditQueueMessage): Promise<void> {
|
|
11
|
+
try {
|
|
12
|
+
const client: SQSClient = new SQSClient();
|
|
13
|
+
const sendMessageRequest: SendMessageRequest = {
|
|
14
|
+
QueueUrl: this.QUEUE_URL,
|
|
15
|
+
MessageBody: JSON.stringify(message)
|
|
16
|
+
};
|
|
17
|
+
const command: SendMessageCommand = new SendMessageCommand(sendMessageRequest);
|
|
18
|
+
await client.send(command);
|
|
19
|
+
} catch (error) {
|
|
20
|
+
throw new Error(`Error publishing message to CreditOfferGenerationQueue${': ' + error.message}`);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ICreditReconciliationPublisher } from "./interfaces/ICreditReconciliationPublisher";
|
|
2
|
+
import { CreditQueueMessage } from "@fiado/type-kit/bin/credit";
|
|
3
|
+
import { SendMessageCommand, SendMessageRequest, SQSClient } from "@aws-sdk/client-sqs";
|
|
4
|
+
import { injectable } from "inversify";
|
|
5
|
+
|
|
6
|
+
@injectable()
|
|
7
|
+
export default class CreditReconciliationPublisher implements ICreditReconciliationPublisher {
|
|
8
|
+
private readonly QUEUE_URL = process.env.CREDIT_RECONCILIATION_QUEUE;
|
|
9
|
+
|
|
10
|
+
async publish(message: CreditQueueMessage): Promise<void> {
|
|
11
|
+
try {
|
|
12
|
+
const client: SQSClient = new SQSClient();
|
|
13
|
+
const sendMessageRequest: SendMessageRequest = {
|
|
14
|
+
QueueUrl: this.QUEUE_URL,
|
|
15
|
+
MessageBody: JSON.stringify(message)
|
|
16
|
+
};
|
|
17
|
+
const command: SendMessageCommand = new SendMessageCommand(sendMessageRequest);
|
|
18
|
+
await client.send(command);
|
|
19
|
+
} catch (error) {
|
|
20
|
+
throw new Error(`Error publishing message to CreditReconciliationQueue${': ' + (error.message || '')}`);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ICreditScoringPublisher } from "./interfaces/ICreditScoringPublisher";
|
|
2
|
+
import { CreditQueueMessage } from "@fiado/type-kit/bin/credit";
|
|
3
|
+
import { SendMessageCommand, SendMessageRequest, SQSClient } from "@aws-sdk/client-sqs";
|
|
4
|
+
import { injectable } from "inversify";
|
|
5
|
+
|
|
6
|
+
@injectable()
|
|
7
|
+
export default class CreditScoringPublisher implements ICreditScoringPublisher {
|
|
8
|
+
private readonly QUEUE_URL = process.env.CREDIT_SCORING_QUEUE;
|
|
9
|
+
|
|
10
|
+
async publish(message: CreditQueueMessage): Promise<void> {
|
|
11
|
+
try {
|
|
12
|
+
const client: SQSClient = new SQSClient();
|
|
13
|
+
const sendMessageRequest: SendMessageRequest = {
|
|
14
|
+
QueueUrl: this.QUEUE_URL,
|
|
15
|
+
MessageBody: JSON.stringify(message)
|
|
16
|
+
};
|
|
17
|
+
const command: SendMessageCommand = new SendMessageCommand(sendMessageRequest);
|
|
18
|
+
await client.send(command);
|
|
19
|
+
} catch (error) {
|
|
20
|
+
throw new Error(`Error publishing message to CreditScoringQueue${': ' + error.message}`);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ICreditStatementPublisher } from "./interfaces/ICreditStatementPublisher";
|
|
2
|
+
import { CreditQueueMessage } from "@fiado/type-kit/bin/credit";
|
|
3
|
+
import { SendMessageCommand, SendMessageRequest, SQSClient } from "@aws-sdk/client-sqs";
|
|
4
|
+
import { injectable } from "inversify";
|
|
5
|
+
|
|
6
|
+
@injectable()
|
|
7
|
+
export default class CreditStatementPublisher implements ICreditStatementPublisher {
|
|
8
|
+
private readonly QUEUE_URL = process.env.CREDIT_STATEMENT_QUEUE;
|
|
9
|
+
|
|
10
|
+
async publish(message: CreditQueueMessage): Promise<void> {
|
|
11
|
+
try {
|
|
12
|
+
const client: SQSClient = new SQSClient();
|
|
13
|
+
const sendMessageRequest: SendMessageRequest = {
|
|
14
|
+
QueueUrl: this.QUEUE_URL,
|
|
15
|
+
MessageBody: JSON.stringify(message)
|
|
16
|
+
};
|
|
17
|
+
const command: SendMessageCommand = new SendMessageCommand(sendMessageRequest);
|
|
18
|
+
await client.send(command);
|
|
19
|
+
} catch (error) {
|
|
20
|
+
throw new Error(`Error publishing message to CreditStatementQueue${': ' + error.message}`);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ICreditTransferPublisher } from "./interfaces/ICreditTransferPublisher";
|
|
2
|
+
import { CreditQueueMessage } from "@fiado/type-kit/bin/credit";
|
|
3
|
+
import { SendMessageCommand, SendMessageRequest, SQSClient } from "@aws-sdk/client-sqs";
|
|
4
|
+
import { injectable } from "inversify";
|
|
5
|
+
|
|
6
|
+
@injectable()
|
|
7
|
+
export default class CreditTransferPublisher implements ICreditTransferPublisher {
|
|
8
|
+
private readonly QUEUE_URL = process.env.CREDIT_TRANSFER_QUEUE;
|
|
9
|
+
|
|
10
|
+
async publish(message: CreditQueueMessage): Promise<void> {
|
|
11
|
+
try {
|
|
12
|
+
const client: SQSClient = new SQSClient();
|
|
13
|
+
const sendMessageRequest: SendMessageRequest = {
|
|
14
|
+
QueueUrl: this.QUEUE_URL,
|
|
15
|
+
MessageBody: JSON.stringify(message)
|
|
16
|
+
};
|
|
17
|
+
const command: SendMessageCommand = new SendMessageCommand(sendMessageRequest);
|
|
18
|
+
await client.send(command);
|
|
19
|
+
} catch (error) {
|
|
20
|
+
throw new Error(`Error publishing message to CreditTransferQueue${': ' + error.message}`);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import dotenv from 'dotenv';
|
|
2
|
+
import { inject, injectable } from "inversify";
|
|
3
|
+
import { IHttpRequest } from "@fiado/http-client";
|
|
4
|
+
import { ICreditPaymentApi } from "./interfaces/ICreditPaymentApi";
|
|
5
|
+
import { CreditDisbursementRequest, CreditDisbursementResponse } from "@fiado/type-kit/bin/credit";
|
|
6
|
+
import { CreditCollectionRequest, CreditCollectionResponse } from "@fiado/type-kit/bin/credit";
|
|
7
|
+
import { CreditTransferLoancoRequest, CreditTransferLoancoResponse } from "@fiado/type-kit/bin/credit";
|
|
8
|
+
import { CreditReversalRequest, CreditReversalResponse } from "@fiado/type-kit/bin/credit";
|
|
9
|
+
import { CreditBalanceResponse } from "@fiado/type-kit/bin/credit";
|
|
10
|
+
dotenv.config();
|
|
11
|
+
|
|
12
|
+
@injectable()
|
|
13
|
+
export class CreditPaymentApi implements ICreditPaymentApi {
|
|
14
|
+
|
|
15
|
+
private readonly baseUrl = process.env.CREDIT_PAYMENT_LAMBDA_URL || "";
|
|
16
|
+
|
|
17
|
+
constructor(@inject("IHttpRequest") private httpRequest: IHttpRequest) {}
|
|
18
|
+
|
|
19
|
+
public async disburse(request: CreditDisbursementRequest): Promise<CreditDisbursementResponse> {
|
|
20
|
+
const url = `${this.baseUrl}credit/disburse`;
|
|
21
|
+
const operationName = "creditDisburse";
|
|
22
|
+
return await this.httpRequest.post(url, request, { 'operationName': operationName });
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
public async collect(request: CreditCollectionRequest): Promise<CreditCollectionResponse> {
|
|
26
|
+
const url = `${this.baseUrl}credit/collect`;
|
|
27
|
+
const operationName = "creditCollect";
|
|
28
|
+
return await this.httpRequest.post(url, request, { 'operationName': operationName });
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
public async collectPartial(request: CreditCollectionRequest): Promise<CreditCollectionResponse> {
|
|
32
|
+
const url = `${this.baseUrl}credit/collect-partial`;
|
|
33
|
+
const operationName = "creditCollectPartial";
|
|
34
|
+
return await this.httpRequest.post(url, request, { 'operationName': operationName });
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
public async collectLien(request: CreditCollectionRequest): Promise<CreditCollectionResponse> {
|
|
38
|
+
const url = `${this.baseUrl}credit/collect-lien`;
|
|
39
|
+
const operationName = "creditCollectLien";
|
|
40
|
+
return await this.httpRequest.post(url, request, { 'operationName': operationName });
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
public async earlyPayment(request: CreditCollectionRequest): Promise<CreditCollectionResponse> {
|
|
44
|
+
const url = `${this.baseUrl}credit/early-payment`;
|
|
45
|
+
const operationName = "creditEarlyPayment";
|
|
46
|
+
return await this.httpRequest.post(url, request, { 'operationName': operationName });
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
public async transferLoanco(request: CreditTransferLoancoRequest): Promise<CreditTransferLoancoResponse> {
|
|
50
|
+
const url = `${this.baseUrl}credit/transfer-loanco`;
|
|
51
|
+
const operationName = "creditTransferLoanco";
|
|
52
|
+
return await this.httpRequest.post(url, request, { 'operationName': operationName });
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
public async reverse(request: CreditReversalRequest): Promise<CreditReversalResponse> {
|
|
56
|
+
const url = `${this.baseUrl}credit/reverse`;
|
|
57
|
+
const operationName = "creditReverse";
|
|
58
|
+
return await this.httpRequest.post(url, request, { 'operationName': operationName });
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
public async getBalance(creditId: string): Promise<CreditBalanceResponse> {
|
|
62
|
+
const url = `${this.baseUrl}credit/balance/${creditId}`;
|
|
63
|
+
const operationName = "creditBalance";
|
|
64
|
+
return await this.httpRequest.post(url, null, { 'operationName': operationName });
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
public async getHistory(creditId: string): Promise<any> {
|
|
68
|
+
const url = `${this.baseUrl}credit/history/${creditId}`;
|
|
69
|
+
const operationName = "creditHistory";
|
|
70
|
+
return await this.httpRequest.post(url, null, { 'operationName': operationName });
|
|
71
|
+
}
|
|
72
|
+
}
|