@fiado/api-invoker 5.73.0 → 5.75.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.
@@ -1,6 +1,6 @@
1
1
  import type { IHttpRequest } from "@fiado/http-client";
2
2
  import { StandardResponse } from "@fiado/gateway-adapter";
3
- import { ActivationCheckRequest, ActivationCheckResponse, CreditPaymentAppliedRequest, CreditPaymentAppliedResponse, CreditSettledRequest, CreditSettledResponse, LoanBorrowerResponse, LoanCreditResponse, OriginateLoanCreditRequest, OriginateLoanCreditResponse, QuoteLoanCreditRequest, QuoteLoanCreditResponse, SignLoanCreditRequest, SignLoanCreditResponse, UpsertLoanBorrowerRequest } from "@fiado/type-kit/bin/loanCredit/index.js";
3
+ import { ActivationCheckRequest, ActivationCheckResponse, CreditPaymentAppliedRequest, CreditPaymentAppliedResponse, CreditSettledRequest, CreditSettledResponse, LoanBorrowerResponse, ListMessagingCandidatesRequest, ListMessagingCandidatesResponse, LoanCreditResponse, OriginateLoanCreditRequest, OriginateLoanCreditResponse, QuoteLoanCreditRequest, QuoteLoanCreditResponse, SignLoanCreditRequest, SignLoanCreditResponse, UpsertLoanBorrowerRequest } from "@fiado/type-kit/bin/loanCredit/index.js";
4
4
  import { LoanCreditAnalyticsBatchRequest, LoanCreditAnalyticsBatchResponse } from "./dtos/LoanCreditAnalyticsBatch.js";
5
5
  import { CustomerCreditHistoryResponse } from "./dtos/CustomerCreditHistory.js";
6
6
  import { ILoanCreditBusinessApi } from "./interfaces/ILoanCreditBusinessApi.js";
@@ -32,4 +32,5 @@ export default class LoanCreditBusinessApi implements ILoanCreditBusinessApi {
32
32
  getCustomerCreditHistory(retailCustomerId: string, tenantId: string): Promise<StandardResponse<CustomerCreditHistoryResponse>>;
33
33
  batchGetCreditAnalytics(input: LoanCreditAnalyticsBatchRequest, tenantId: string): Promise<StandardResponse<LoanCreditAnalyticsBatchResponse>>;
34
34
  upsertBorrower(input: UpsertLoanBorrowerRequest, tenantId: string): Promise<StandardResponse<LoanBorrowerResponse>>;
35
+ listMessagingCandidates(input: ListMessagingCandidatesRequest, tenantId: string): Promise<StandardResponse<ListMessagingCandidatesResponse>>;
35
36
  }
@@ -78,6 +78,10 @@ let LoanCreditBusinessApi = class LoanCreditBusinessApi {
78
78
  const url = `${this.baseUrl}/private/borrowers?tenantId=${encodeURIComponent(tenantId)}`;
79
79
  return await this.httpRequest.post(url, input);
80
80
  }
81
+ async listMessagingCandidates(input, tenantId) {
82
+ const url = `${this.baseUrl}/private/messaging/candidates?tenantId=${encodeURIComponent(tenantId)}`;
83
+ return await this.httpRequest.post(url, input);
84
+ }
81
85
  };
82
86
  LoanCreditBusinessApi = __decorate([
83
87
  injectable(),
@@ -1,5 +1,5 @@
1
1
  import { StandardResponse } from "@fiado/gateway-adapter";
2
- import { ActivationCheckRequest, CreditPaymentAppliedRequest, CreditPaymentAppliedResponse, CreditSettledRequest, CreditSettledResponse, ActivationCheckResponse, LoanBorrowerResponse, LoanCreditResponse, OriginateLoanCreditRequest, OriginateLoanCreditResponse, QuoteLoanCreditRequest, QuoteLoanCreditResponse, SignLoanCreditRequest, SignLoanCreditResponse, UpsertLoanBorrowerRequest } from "@fiado/type-kit/bin/loanCredit/index.js";
2
+ import { ActivationCheckRequest, CreditPaymentAppliedRequest, CreditPaymentAppliedResponse, CreditSettledRequest, CreditSettledResponse, ActivationCheckResponse, LoanBorrowerResponse, ListMessagingCandidatesRequest, ListMessagingCandidatesResponse, LoanCreditResponse, OriginateLoanCreditRequest, OriginateLoanCreditResponse, QuoteLoanCreditRequest, QuoteLoanCreditResponse, SignLoanCreditRequest, SignLoanCreditResponse, UpsertLoanBorrowerRequest } from "@fiado/type-kit/bin/loanCredit/index.js";
3
3
  import { LoanCreditAnalyticsBatchRequest, LoanCreditAnalyticsBatchResponse } from "../dtos/LoanCreditAnalyticsBatch.js";
4
4
  import { CustomerCreditHistoryResponse } from "../dtos/CustomerCreditHistory.js";
5
5
  /**
@@ -95,4 +95,13 @@ export interface ILoanCreditBusinessApi {
95
95
  * del evento `CustomerKycVerifiedV1` — fallback operativo mientras la cola no exista).
96
96
  */
97
97
  upsertBorrower(input: UpsertLoanBorrowerRequest, tenantId: string): Promise<StandardResponse<LoanBorrowerResponse>>;
98
+ /**
99
+ * Devuelve UNA PÁGINA de candidatos a mensaje del `slot` y el día de tienda pedidos: la persona,
100
+ * el momento que le toca, el canal y las variables ya resueltas. El motor barre su cartera, aplica
101
+ * el cupo diario y depura qué mensaje le toca a cada quien — el caller no resuelve nada de dominio.
102
+ *
103
+ * El cupo se consume aquí, así que reintentar una página NO manda el mensaje dos veces: quien ya
104
+ * recibió su aviso del día no vuelve a salir. `nextCursor` en `null` significa que ya no queda nadie.
105
+ */
106
+ listMessagingCandidates(input: ListMessagingCandidatesRequest, tenantId: string): Promise<StandardResponse<ListMessagingCandidatesResponse>>;
98
107
  }
@@ -1,6 +1,6 @@
1
1
  import type { IHttpRequest } from '@fiado/http-client';
2
2
  type FiadoApiResponse<T> = import('@fiado/type-kit/bin/apiResponse/dtos/FiadoApiResponse.js').default<T>;
3
- import { SendMessageRequest, SendMessageResponse, VerifyOtpRequest, VerifyOtpResponse, OtpValidatedResponse, TemplateMessageCreateRequest, TemplateMessageUpdateRequest, TemplateMessageResponse, TemplateMessageListResponse, TemplateMessageListFiltersRequest } from '@fiado/type-kit/bin/messagesConnector/index.js';
3
+ import { SendMessageRequest, SendMessageResponse, VerifyOtpRequest, VerifyOtpResponse, OtpValidatedResponse, TemplateMessageCreateRequest, TemplateMessageUpdateRequest, TemplateMessageResponse, TemplateMessageListResponse, TemplateMessageListFiltersRequest, SendMessagesBulkRequest, SendMessagesBulkResponse, MdmNotifyRequest, MdmNotifyBatchResponse } from '@fiado/type-kit/bin/messagesConnector/index.js';
4
4
  import { IMessagesBusinessApi } from './interfaces/IMessagesBusinessApi.js';
5
5
  export declare class MessagesBusinessApi implements IMessagesBusinessApi {
6
6
  private readonly httpRequest;
@@ -9,6 +9,8 @@ export declare class MessagesBusinessApi implements IMessagesBusinessApi {
9
9
  sendMessage(request: SendMessageRequest): Promise<FiadoApiResponse<SendMessageResponse>>;
10
10
  verifyOtp(request: VerifyOtpRequest): Promise<FiadoApiResponse<VerifyOtpResponse>>;
11
11
  getValidatedOtp(directoryId: string, otpCode: string): Promise<FiadoApiResponse<OtpValidatedResponse>>;
12
+ sendMessagesBulk(request: SendMessagesBulkRequest): Promise<FiadoApiResponse<SendMessagesBulkResponse>>;
13
+ notifyMdmDevices(request: MdmNotifyRequest): Promise<FiadoApiResponse<MdmNotifyBatchResponse>>;
12
14
  createTemplate(tenantId: string, request: TemplateMessageCreateRequest): Promise<FiadoApiResponse<TemplateMessageResponse>>;
13
15
  listTemplates(tenantId: string, filters: TemplateMessageListFiltersRequest): Promise<FiadoApiResponse<TemplateMessageListResponse>>;
14
16
  getTemplate(tenantId: string, id: string): Promise<FiadoApiResponse<TemplateMessageResponse>>;
@@ -29,6 +29,12 @@ let MessagesBusinessApi = class MessagesBusinessApi {
29
29
  async getValidatedOtp(directoryId, otpCode) {
30
30
  return await this.httpRequest.get(`${this.baseUrl}messages/otp/validated`, { directoryId, otpCode }, { 'operationName': 'privateGetValidatedOtp' });
31
31
  }
32
+ async sendMessagesBulk(request) {
33
+ return await this.httpRequest.post(joinUrl(this.baseUrl, 'messages/bulk'), request, { 'operationName': 'privateSendMessagesBulk' });
34
+ }
35
+ async notifyMdmDevices(request) {
36
+ return await this.httpRequest.post(joinUrl(this.baseUrl, 'messages/mdm-notify'), request, { 'operationName': 'privateNotifyMdmDevices' });
37
+ }
32
38
  async createTemplate(tenantId, request) {
33
39
  const url = this.withTenantId(joinUrl(this.baseUrl, 'templates'), tenantId);
34
40
  return await this.httpRequest.post(url, request, { 'operationName': 'backofficeCreateTemplate' });
@@ -1,9 +1,30 @@
1
1
  type FiadoApiResponse<T> = import('@fiado/type-kit/bin/apiResponse/dtos/FiadoApiResponse.js').default<T>;
2
- import { SendMessageRequest, SendMessageResponse, VerifyOtpRequest, VerifyOtpResponse, OtpValidatedResponse, TemplateMessageCreateRequest, TemplateMessageUpdateRequest, TemplateMessageResponse, TemplateMessageListResponse, TemplateMessageListFiltersRequest } from '@fiado/type-kit/bin/messagesConnector/index.js';
2
+ import { SendMessageRequest, SendMessageResponse, VerifyOtpRequest, VerifyOtpResponse, OtpValidatedResponse, TemplateMessageCreateRequest, TemplateMessageUpdateRequest, TemplateMessageResponse, TemplateMessageListResponse, TemplateMessageListFiltersRequest, SendMessagesBulkRequest, SendMessagesBulkResponse, MdmNotifyRequest, MdmNotifyBatchResponse } from '@fiado/type-kit/bin/messagesConnector/index.js';
3
3
  export interface IMessagesBusinessApi {
4
4
  sendMessage(request: SendMessageRequest): Promise<FiadoApiResponse<SendMessageResponse>>;
5
5
  verifyOtp(request: VerifyOtpRequest): Promise<FiadoApiResponse<VerifyOtpResponse>>;
6
6
  getValidatedOtp(directoryId: string, otpCode: string): Promise<FiadoApiResponse<OtpValidatedResponse>>;
7
+ /**
8
+ * La unica entrada de mensajes a mensajeria. Recibe un lote con los canales mezclados y lo
9
+ * ENCOLA: la entrega sigue por la cola, con sus reintentos y su DLQ.
10
+ *
11
+ * Responde 202 con un resultado POR ITEM — un telefono malo no tumba los otros noventa y
12
+ * nueve — y rechaza el lote entero con 422 MESSAGES_BULK_BATCH_TOO_LARGE si pasa el tope
13
+ * `MESSAGES_BULK_MAX_BATCH` del type-kit.
14
+ *
15
+ * La `reference` de cada item es la llave de idempotencia: repetirla devuelve ese item con
16
+ * `DUPLICATE_REFERENCE` en vez de encolarlo de nuevo.
17
+ */
18
+ sendMessagesBulk(request: SendMessagesBulkRequest): Promise<FiadoApiResponse<SendMessagesBulkResponse>>;
19
+ /**
20
+ * Avisa en la pantalla del equipo financiado. Puerta aparte del lote a proposito: el item
21
+ * lleva IMEI y proveedor en vez de destinatario y variables.
22
+ *
23
+ * Mensajeria resuelve el texto del `noticeType` contra el catalogo, agrupa por proveedor y
24
+ * hace UN `notifyDevices()` por grupo. Responde 202 con un resultado por IMEI; el proveedor
25
+ * caido llega como ERROR de ese item, nunca como dato invalido.
26
+ */
27
+ notifyMdmDevices(request: MdmNotifyRequest): Promise<FiadoApiResponse<MdmNotifyBatchResponse>>;
7
28
  /**
8
29
  * CRUD de plantillas. Los cinco viven en la API privada sin authorizer, asi que el `tenantId`
9
30
  * es obligatorio y explicito: el lambda responde 400 TENANT_ID_REQUIRED si no llega.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fiado/api-invoker",
3
- "version": "5.73.0",
3
+ "version": "5.75.0",
4
4
  "description": "Sirve como un puente entre diferentes funciones lambda, facilitando la comunicación entre ellas a través de invocaciones http",
5
5
  "type": "module",
6
6
  "main": "bin/index.js",
@@ -34,7 +34,7 @@
34
34
  "@fiado/gateway-adapter": "^3.9.0",
35
35
  "@fiado/http-client": "^2.0.1",
36
36
  "@fiado/logger": "^1.1.3",
37
- "@fiado/type-kit": "^3.407.0",
37
+ "@fiado/type-kit": "^3.417.0",
38
38
  "dotenv": "^16.4.7"
39
39
  },
40
40
  "peerDependencies": {
@@ -9,6 +9,8 @@ import {
9
9
  CreditSettledRequest,
10
10
  CreditSettledResponse,
11
11
  LoanBorrowerResponse,
12
+ ListMessagingCandidatesRequest,
13
+ ListMessagingCandidatesResponse,
12
14
  LoanCreditResponse,
13
15
  OriginateLoanCreditRequest,
14
16
  OriginateLoanCreditResponse,
@@ -144,4 +146,12 @@ export default class LoanCreditBusinessApi implements ILoanCreditBusinessApi {
144
146
  const url = `${this.baseUrl}/private/borrowers?tenantId=${encodeURIComponent(tenantId)}`;
145
147
  return await this.httpRequest.post(url, input);
146
148
  }
149
+
150
+ async listMessagingCandidates(
151
+ input: ListMessagingCandidatesRequest,
152
+ tenantId: string,
153
+ ): Promise<StandardResponse<ListMessagingCandidatesResponse>> {
154
+ const url = `${this.baseUrl}/private/messaging/candidates?tenantId=${encodeURIComponent(tenantId)}`;
155
+ return await this.httpRequest.post(url, input);
156
+ }
147
157
  }
@@ -7,6 +7,8 @@ import {
7
7
  CreditSettledResponse,
8
8
  ActivationCheckResponse,
9
9
  LoanBorrowerResponse,
10
+ ListMessagingCandidatesRequest,
11
+ ListMessagingCandidatesResponse,
10
12
  LoanCreditResponse,
11
13
  OriginateLoanCreditRequest,
12
14
  OriginateLoanCreditResponse,
@@ -167,4 +169,17 @@ export interface ILoanCreditBusinessApi {
167
169
  input: UpsertLoanBorrowerRequest,
168
170
  tenantId: string,
169
171
  ): Promise<StandardResponse<LoanBorrowerResponse>>;
172
+
173
+ /**
174
+ * Devuelve UNA PÁGINA de candidatos a mensaje del `slot` y el día de tienda pedidos: la persona,
175
+ * el momento que le toca, el canal y las variables ya resueltas. El motor barre su cartera, aplica
176
+ * el cupo diario y depura qué mensaje le toca a cada quien — el caller no resuelve nada de dominio.
177
+ *
178
+ * El cupo se consume aquí, así que reintentar una página NO manda el mensaje dos veces: quien ya
179
+ * recibió su aviso del día no vuelve a salir. `nextCursor` en `null` significa que ya no queda nadie.
180
+ */
181
+ listMessagingCandidates(
182
+ input: ListMessagingCandidatesRequest,
183
+ tenantId: string,
184
+ ): Promise<StandardResponse<ListMessagingCandidatesResponse>>;
170
185
  }
@@ -7,6 +7,8 @@ import {
7
7
  OtpValidatedResponse,
8
8
  TemplateMessageCreateRequest, TemplateMessageUpdateRequest,
9
9
  TemplateMessageResponse, TemplateMessageListResponse, TemplateMessageListFiltersRequest,
10
+ SendMessagesBulkRequest, SendMessagesBulkResponse,
11
+ MdmNotifyRequest, MdmNotifyBatchResponse,
10
12
  } from '@fiado/type-kit/bin/messagesConnector/index.js';
11
13
  import { IMessagesBusinessApi } from './interfaces/IMessagesBusinessApi.js';
12
14
  import { joinUrl } from '../../utils/joinUrl.js';
@@ -31,6 +33,14 @@ export class MessagesBusinessApi implements IMessagesBusinessApi {
31
33
  return await this.httpRequest.get(`${this.baseUrl}messages/otp/validated`, { directoryId, otpCode }, { 'operationName': 'privateGetValidatedOtp' });
32
34
  }
33
35
 
36
+ async sendMessagesBulk(request: SendMessagesBulkRequest): Promise<FiadoApiResponse<SendMessagesBulkResponse>> {
37
+ return await this.httpRequest.post(joinUrl(this.baseUrl, 'messages/bulk'), request, { 'operationName': 'privateSendMessagesBulk' });
38
+ }
39
+
40
+ async notifyMdmDevices(request: MdmNotifyRequest): Promise<FiadoApiResponse<MdmNotifyBatchResponse>> {
41
+ return await this.httpRequest.post(joinUrl(this.baseUrl, 'messages/mdm-notify'), request, { 'operationName': 'privateNotifyMdmDevices' });
42
+ }
43
+
34
44
  async createTemplate(tenantId: string, request: TemplateMessageCreateRequest): Promise<FiadoApiResponse<TemplateMessageResponse>> {
35
45
  const url = this.withTenantId(joinUrl(this.baseUrl, 'templates'), tenantId);
36
46
  return await this.httpRequest.post(url, request, { 'operationName': 'backofficeCreateTemplate' });
@@ -5,6 +5,8 @@ import {
5
5
  OtpValidatedResponse,
6
6
  TemplateMessageCreateRequest, TemplateMessageUpdateRequest,
7
7
  TemplateMessageResponse, TemplateMessageListResponse, TemplateMessageListFiltersRequest,
8
+ SendMessagesBulkRequest, SendMessagesBulkResponse,
9
+ MdmNotifyRequest, MdmNotifyBatchResponse,
8
10
  } from '@fiado/type-kit/bin/messagesConnector/index.js';
9
11
 
10
12
  export interface IMessagesBusinessApi {
@@ -12,6 +14,29 @@ export interface IMessagesBusinessApi {
12
14
  verifyOtp(request: VerifyOtpRequest): Promise<FiadoApiResponse<VerifyOtpResponse>>;
13
15
  getValidatedOtp(directoryId: string, otpCode: string): Promise<FiadoApiResponse<OtpValidatedResponse>>;
14
16
 
17
+ /**
18
+ * La unica entrada de mensajes a mensajeria. Recibe un lote con los canales mezclados y lo
19
+ * ENCOLA: la entrega sigue por la cola, con sus reintentos y su DLQ.
20
+ *
21
+ * Responde 202 con un resultado POR ITEM — un telefono malo no tumba los otros noventa y
22
+ * nueve — y rechaza el lote entero con 422 MESSAGES_BULK_BATCH_TOO_LARGE si pasa el tope
23
+ * `MESSAGES_BULK_MAX_BATCH` del type-kit.
24
+ *
25
+ * La `reference` de cada item es la llave de idempotencia: repetirla devuelve ese item con
26
+ * `DUPLICATE_REFERENCE` en vez de encolarlo de nuevo.
27
+ */
28
+ sendMessagesBulk(request: SendMessagesBulkRequest): Promise<FiadoApiResponse<SendMessagesBulkResponse>>;
29
+
30
+ /**
31
+ * Avisa en la pantalla del equipo financiado. Puerta aparte del lote a proposito: el item
32
+ * lleva IMEI y proveedor en vez de destinatario y variables.
33
+ *
34
+ * Mensajeria resuelve el texto del `noticeType` contra el catalogo, agrupa por proveedor y
35
+ * hace UN `notifyDevices()` por grupo. Responde 202 con un resultado por IMEI; el proveedor
36
+ * caido llega como ERROR de ese item, nunca como dato invalido.
37
+ */
38
+ notifyMdmDevices(request: MdmNotifyRequest): Promise<FiadoApiResponse<MdmNotifyBatchResponse>>;
39
+
15
40
  /**
16
41
  * CRUD de plantillas. Los cinco viven en la API privada sin authorizer, asi que el `tenantId`
17
42
  * es obligatorio y explicito: el lambda responde 400 TENANT_ID_REQUIRED si no llega.