@fiado/api-invoker 1.5.46 → 3.0.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.
Files changed (98) hide show
  1. package/bin/cognitoConnector/CognitoConnectorV2.d.ts +10 -0
  2. package/bin/cognitoConnector/CognitoConnectorV2.js +5 -0
  3. package/bin/cognitoConnector/interfaces/ICognitoV2Api.d.ts +13 -0
  4. package/bin/container.config.js +29 -0
  5. package/bin/credit-engine/CreditEngineApi.d.ts +13 -0
  6. package/bin/credit-engine/CreditEngineApi.js +54 -0
  7. package/bin/credit-engine/index.d.ts +12 -0
  8. package/bin/credit-engine/index.js +29 -0
  9. package/bin/credit-engine/interfaces/ICreditEngineApi.d.ts +28 -0
  10. package/bin/credit-engine/interfaces/ICreditEngineApi.js +2 -0
  11. package/bin/credit-engine/queue/CreditCollectionPublisher.d.ts +6 -0
  12. package/bin/credit-engine/queue/CreditCollectionPublisher.js +33 -0
  13. package/bin/credit-engine/queue/CreditDelinquencyPublisher.d.ts +6 -0
  14. package/bin/credit-engine/queue/CreditDelinquencyPublisher.js +33 -0
  15. package/bin/credit-engine/queue/CreditIncomeDetectionPublisher.d.ts +6 -0
  16. package/bin/credit-engine/queue/CreditIncomeDetectionPublisher.js +33 -0
  17. package/bin/credit-engine/queue/CreditLienCollectionPublisher.d.ts +6 -0
  18. package/bin/credit-engine/queue/CreditLienCollectionPublisher.js +33 -0
  19. package/bin/credit-engine/queue/CreditNotificationPublisher.d.ts +6 -0
  20. package/bin/credit-engine/queue/CreditNotificationPublisher.js +33 -0
  21. package/bin/credit-engine/queue/CreditOfferGenerationPublisher.d.ts +6 -0
  22. package/bin/credit-engine/queue/CreditOfferGenerationPublisher.js +33 -0
  23. package/bin/credit-engine/queue/CreditReconciliationPublisher.d.ts +6 -0
  24. package/bin/credit-engine/queue/CreditReconciliationPublisher.js +33 -0
  25. package/bin/credit-engine/queue/CreditScoringPublisher.d.ts +6 -0
  26. package/bin/credit-engine/queue/CreditScoringPublisher.js +33 -0
  27. package/bin/credit-engine/queue/CreditStatementPublisher.d.ts +6 -0
  28. package/bin/credit-engine/queue/CreditStatementPublisher.js +33 -0
  29. package/bin/credit-engine/queue/CreditTransferPublisher.d.ts +6 -0
  30. package/bin/credit-engine/queue/CreditTransferPublisher.js +33 -0
  31. package/bin/credit-engine/queue/interfaces/ICreditCollectionPublisher.d.ts +4 -0
  32. package/bin/credit-engine/queue/interfaces/ICreditCollectionPublisher.js +2 -0
  33. package/bin/credit-engine/queue/interfaces/ICreditDelinquencyPublisher.d.ts +4 -0
  34. package/bin/credit-engine/queue/interfaces/ICreditDelinquencyPublisher.js +2 -0
  35. package/bin/credit-engine/queue/interfaces/ICreditIncomeDetectionPublisher.d.ts +4 -0
  36. package/bin/credit-engine/queue/interfaces/ICreditIncomeDetectionPublisher.js +2 -0
  37. package/bin/credit-engine/queue/interfaces/ICreditLienCollectionPublisher.d.ts +4 -0
  38. package/bin/credit-engine/queue/interfaces/ICreditLienCollectionPublisher.js +2 -0
  39. package/bin/credit-engine/queue/interfaces/ICreditNotificationPublisher.d.ts +4 -0
  40. package/bin/credit-engine/queue/interfaces/ICreditNotificationPublisher.js +2 -0
  41. package/bin/credit-engine/queue/interfaces/ICreditOfferGenerationPublisher.d.ts +4 -0
  42. package/bin/credit-engine/queue/interfaces/ICreditOfferGenerationPublisher.js +2 -0
  43. package/bin/credit-engine/queue/interfaces/ICreditReconciliationPublisher.d.ts +4 -0
  44. package/bin/credit-engine/queue/interfaces/ICreditReconciliationPublisher.js +2 -0
  45. package/bin/credit-engine/queue/interfaces/ICreditScoringPublisher.d.ts +4 -0
  46. package/bin/credit-engine/queue/interfaces/ICreditScoringPublisher.js +2 -0
  47. package/bin/credit-engine/queue/interfaces/ICreditStatementPublisher.d.ts +4 -0
  48. package/bin/credit-engine/queue/interfaces/ICreditStatementPublisher.js +2 -0
  49. package/bin/credit-engine/queue/interfaces/ICreditTransferPublisher.d.ts +4 -0
  50. package/bin/credit-engine/queue/interfaces/ICreditTransferPublisher.js +2 -0
  51. package/bin/credit-payment/CreditPaymentApi.d.ts +21 -0
  52. package/bin/credit-payment/CreditPaymentApi.js +78 -0
  53. package/bin/credit-payment/index.d.ts +2 -0
  54. package/bin/credit-payment/index.js +18 -0
  55. package/bin/credit-payment/interfaces/ICreditPaymentApi.d.ts +43 -0
  56. package/bin/credit-payment/interfaces/ICreditPaymentApi.js +2 -0
  57. package/bin/document-generator/DocumentGeneratorApi.d.ts +17 -0
  58. package/bin/document-generator/DocumentGeneratorApi.js +63 -0
  59. package/bin/document-generator/index.d.ts +2 -0
  60. package/bin/document-generator/index.js +18 -0
  61. package/bin/document-generator/interfaces/IDocumentGeneratorApi.d.ts +30 -0
  62. package/bin/document-generator/interfaces/IDocumentGeneratorApi.js +2 -0
  63. package/bin/index.d.ts +3 -0
  64. package/bin/index.js +3 -0
  65. package/package.json +2 -2
  66. package/src/cognitoConnector/CognitoConnectorV2.ts +6 -0
  67. package/src/cognitoConnector/interfaces/ICognitoV2Api.ts +5 -0
  68. package/src/container.config.ts +44 -0
  69. package/src/credit-engine/CreditEngineApi.ts +40 -0
  70. package/src/credit-engine/index.ts +14 -0
  71. package/src/credit-engine/interfaces/ICreditEngineApi.ts +33 -0
  72. package/src/credit-engine/queue/CreditCollectionPublisher.ts +23 -0
  73. package/src/credit-engine/queue/CreditDelinquencyPublisher.ts +23 -0
  74. package/src/credit-engine/queue/CreditIncomeDetectionPublisher.ts +23 -0
  75. package/src/credit-engine/queue/CreditLienCollectionPublisher.ts +23 -0
  76. package/src/credit-engine/queue/CreditNotificationPublisher.ts +23 -0
  77. package/src/credit-engine/queue/CreditOfferGenerationPublisher.ts +23 -0
  78. package/src/credit-engine/queue/CreditReconciliationPublisher.ts +23 -0
  79. package/src/credit-engine/queue/CreditScoringPublisher.ts +23 -0
  80. package/src/credit-engine/queue/CreditStatementPublisher.ts +23 -0
  81. package/src/credit-engine/queue/CreditTransferPublisher.ts +23 -0
  82. package/src/credit-engine/queue/interfaces/ICreditCollectionPublisher.ts +5 -0
  83. package/src/credit-engine/queue/interfaces/ICreditDelinquencyPublisher.ts +5 -0
  84. package/src/credit-engine/queue/interfaces/ICreditIncomeDetectionPublisher.ts +5 -0
  85. package/src/credit-engine/queue/interfaces/ICreditLienCollectionPublisher.ts +5 -0
  86. package/src/credit-engine/queue/interfaces/ICreditNotificationPublisher.ts +5 -0
  87. package/src/credit-engine/queue/interfaces/ICreditOfferGenerationPublisher.ts +5 -0
  88. package/src/credit-engine/queue/interfaces/ICreditReconciliationPublisher.ts +5 -0
  89. package/src/credit-engine/queue/interfaces/ICreditScoringPublisher.ts +5 -0
  90. package/src/credit-engine/queue/interfaces/ICreditStatementPublisher.ts +5 -0
  91. package/src/credit-engine/queue/interfaces/ICreditTransferPublisher.ts +5 -0
  92. package/src/credit-payment/CreditPaymentApi.ts +72 -0
  93. package/src/credit-payment/index.ts +2 -0
  94. package/src/credit-payment/interfaces/ICreditPaymentApi.ts +52 -0
  95. package/src/document-generator/DocumentGeneratorApi.ts +50 -0
  96. package/src/document-generator/index.ts +2 -0
  97. package/src/document-generator/interfaces/IDocumentGeneratorApi.ts +33 -0
  98. package/src/index.ts +3 -0
@@ -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,5 @@
1
+ import { CreditQueueMessage } from "@fiado/type-kit/bin/credit";
2
+
3
+ export interface ICreditCollectionPublisher {
4
+ publish(message: CreditQueueMessage): Promise<void>;
5
+ }
@@ -0,0 +1,5 @@
1
+ import { CreditQueueMessage } from "@fiado/type-kit/bin/credit";
2
+
3
+ export interface ICreditDelinquencyPublisher {
4
+ publish(message: CreditQueueMessage): Promise<void>;
5
+ }
@@ -0,0 +1,5 @@
1
+ import { CreditQueueMessage } from "@fiado/type-kit/bin/credit";
2
+
3
+ export interface ICreditIncomeDetectionPublisher {
4
+ publish(message: CreditQueueMessage): Promise<void>;
5
+ }
@@ -0,0 +1,5 @@
1
+ import { CreditQueueMessage } from "@fiado/type-kit/bin/credit";
2
+
3
+ export interface ICreditLienCollectionPublisher {
4
+ publish(message: CreditQueueMessage): Promise<void>;
5
+ }
@@ -0,0 +1,5 @@
1
+ import { CreditQueueMessage } from "@fiado/type-kit/bin/credit";
2
+
3
+ export interface ICreditNotificationPublisher {
4
+ publish(message: CreditQueueMessage): Promise<void>;
5
+ }
@@ -0,0 +1,5 @@
1
+ import { CreditQueueMessage } from "@fiado/type-kit/bin/credit";
2
+
3
+ export interface ICreditOfferGenerationPublisher {
4
+ publish(message: CreditQueueMessage): Promise<void>;
5
+ }
@@ -0,0 +1,5 @@
1
+ import { CreditQueueMessage } from "@fiado/type-kit/bin/credit";
2
+
3
+ export interface ICreditReconciliationPublisher {
4
+ publish(message: CreditQueueMessage): Promise<void>;
5
+ }
@@ -0,0 +1,5 @@
1
+ import { CreditQueueMessage } from "@fiado/type-kit/bin/credit";
2
+
3
+ export interface ICreditScoringPublisher {
4
+ publish(message: CreditQueueMessage): Promise<void>;
5
+ }
@@ -0,0 +1,5 @@
1
+ import { CreditQueueMessage } from "@fiado/type-kit/bin/credit";
2
+
3
+ export interface ICreditStatementPublisher {
4
+ publish(message: CreditQueueMessage): Promise<void>;
5
+ }
@@ -0,0 +1,5 @@
1
+ import { CreditQueueMessage } from "@fiado/type-kit/bin/credit";
2
+
3
+ export interface ICreditTransferPublisher {
4
+ publish(message: CreditQueueMessage): Promise<void>;
5
+ }
@@ -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
+ }
@@ -0,0 +1,2 @@
1
+ export * from './interfaces/ICreditPaymentApi';
2
+ export * from './CreditPaymentApi';
@@ -0,0 +1,52 @@
1
+ import { CreditDisbursementRequest, CreditDisbursementResponse } from "@fiado/type-kit/bin/credit";
2
+ import { CreditCollectionRequest, CreditCollectionResponse } from "@fiado/type-kit/bin/credit";
3
+ import { CreditTransferLoancoRequest, CreditTransferLoancoResponse } from "@fiado/type-kit/bin/credit";
4
+ import { CreditReversalRequest, CreditReversalResponse } from "@fiado/type-kit/bin/credit";
5
+ import { CreditBalanceResponse } from "@fiado/type-kit/bin/credit";
6
+
7
+ export interface ICreditPaymentApi {
8
+ /**
9
+ * Desembolsa el monto del crédito a la cuenta del usuario.
10
+ */
11
+ disburse(request: CreditDisbursementRequest): Promise<CreditDisbursementResponse>;
12
+
13
+ /**
14
+ * Cobra el cupón regular de un crédito.
15
+ */
16
+ collect(request: CreditCollectionRequest): Promise<CreditCollectionResponse>;
17
+
18
+ /**
19
+ * Cobra un monto parcial (insuficiente para cupón completo).
20
+ */
21
+ collectPartial(request: CreditCollectionRequest): Promise<CreditCollectionResponse>;
22
+
23
+ /**
24
+ * Cobra por cobro latente (lien sobre depósito).
25
+ */
26
+ collectLien(request: CreditCollectionRequest): Promise<CreditCollectionResponse>;
27
+
28
+ /**
29
+ * Procesa un pago anticipado/adelantado/liquidación.
30
+ */
31
+ earlyPayment(request: CreditCollectionRequest): Promise<CreditCollectionResponse>;
32
+
33
+ /**
34
+ * Transfiere fondos recaudados a LoanCo.
35
+ */
36
+ transferLoanco(request: CreditTransferLoancoRequest): Promise<CreditTransferLoancoResponse>;
37
+
38
+ /**
39
+ * Reversa una transacción de crédito.
40
+ */
41
+ reverse(request: CreditReversalRequest): Promise<CreditReversalResponse>;
42
+
43
+ /**
44
+ * Consulta el balance de un crédito.
45
+ */
46
+ getBalance(creditId: string): Promise<CreditBalanceResponse>;
47
+
48
+ /**
49
+ * Obtiene historial de transacciones de un crédito.
50
+ */
51
+ getHistory(creditId: string): Promise<any>;
52
+ }
@@ -0,0 +1,50 @@
1
+ import dotenv from 'dotenv';
2
+ import { inject, injectable } from "inversify";
3
+ import { IHttpRequest } from "@fiado/http-client";
4
+ import { IDocumentGeneratorApi } from "./interfaces/IDocumentGeneratorApi";
5
+ import { DocumentGenerateRequest, DocumentGenerateResponse } from "@fiado/type-kit/bin/credit";
6
+ dotenv.config();
7
+
8
+ @injectable()
9
+ export class DocumentGeneratorApi implements IDocumentGeneratorApi {
10
+
11
+ private readonly baseUrl = process.env.DOCUMENT_GENERATOR_LAMBDA_URL || "";
12
+
13
+ constructor(@inject("IHttpRequest") private httpRequest: IHttpRequest) {}
14
+
15
+ public async generate(request: DocumentGenerateRequest): Promise<DocumentGenerateResponse> {
16
+ const url = `${this.baseUrl}document/generate`;
17
+ const operationName = "documentGenerate";
18
+ return await this.httpRequest.post(url, request, { 'operationName': operationName });
19
+ }
20
+
21
+ public async sign(documentId: string): Promise<DocumentGenerateResponse> {
22
+ const url = `${this.baseUrl}document/sign`;
23
+ const operationName = "documentSign";
24
+ return await this.httpRequest.post(url, { documentId }, { 'operationName': operationName });
25
+ }
26
+
27
+ public async generateAndSign(request: DocumentGenerateRequest): Promise<DocumentGenerateResponse> {
28
+ const url = `${this.baseUrl}document/generate-and-sign`;
29
+ const operationName = "documentGenerateAndSign";
30
+ return await this.httpRequest.post(url, request, { 'operationName': operationName });
31
+ }
32
+
33
+ public async getDocument(documentId: string): Promise<DocumentGenerateResponse> {
34
+ const url = `${this.baseUrl}document/${documentId}`;
35
+ const operationName = "documentGetDocument";
36
+ return await this.httpRequest.post(url, null, { 'operationName': operationName });
37
+ }
38
+
39
+ public async getDocumentUrl(documentId: string): Promise<{ url: string; expiresAt: string }> {
40
+ const url = `${this.baseUrl}document/${documentId}/url`;
41
+ const operationName = "documentGetDocumentUrl";
42
+ return await this.httpRequest.post(url, null, { 'operationName': operationName });
43
+ }
44
+
45
+ public async getDocumentByReference(type: string, referenceId: string): Promise<DocumentGenerateResponse[]> {
46
+ const url = `${this.baseUrl}document/by-reference/${type}/${referenceId}`;
47
+ const operationName = "documentGetDocumentByReference";
48
+ return await this.httpRequest.post(url, null, { 'operationName': operationName });
49
+ }
50
+ }
@@ -0,0 +1,2 @@
1
+ export * from './interfaces/IDocumentGeneratorApi';
2
+ export * from './DocumentGeneratorApi';
@@ -0,0 +1,33 @@
1
+ import { DocumentGenerateRequest, DocumentGenerateResponse } from "@fiado/type-kit/bin/credit";
2
+
3
+ export interface IDocumentGeneratorApi {
4
+ /**
5
+ * Genera un documento PDF desde un template + datos.
6
+ */
7
+ generate(request: DocumentGenerateRequest): Promise<DocumentGenerateResponse>;
8
+
9
+ /**
10
+ * Firma un documento existente con TSA.
11
+ */
12
+ sign(documentId: string): Promise<DocumentGenerateResponse>;
13
+
14
+ /**
15
+ * Genera y firma un documento en un solo paso.
16
+ */
17
+ generateAndSign(request: DocumentGenerateRequest): Promise<DocumentGenerateResponse>;
18
+
19
+ /**
20
+ * Obtiene metadata de un documento.
21
+ */
22
+ getDocument(documentId: string): Promise<DocumentGenerateResponse>;
23
+
24
+ /**
25
+ * Obtiene signed URL para descarga.
26
+ */
27
+ getDocumentUrl(documentId: string): Promise<{ url: string; expiresAt: string }>;
28
+
29
+ /**
30
+ * Busca documentos por tipo de referencia y ID.
31
+ */
32
+ getDocumentByReference(type: string, referenceId: string): Promise<DocumentGenerateResponse[]>;
33
+ }
package/src/index.ts CHANGED
@@ -59,4 +59,7 @@ export * from "./people-business";
59
59
  export * from "./stp-business";
60
60
  export * from "./multicommServicePayment";
61
61
  export * from "./product-payment";
62
+ export * from "./credit-engine";
63
+ export * from "./credit-payment";
64
+ export * from "./document-generator";
62
65