@fiado/api-invoker 4.70.0 → 4.72.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 (119) hide show
  1. package/bin/activity-business/ActivityApi.d.ts +5 -0
  2. package/bin/activity-business/ActivityApi.js +4 -0
  3. package/bin/activity-business/interfaces/IActivityApi.d.ts +10 -0
  4. package/bin/address/AddressApi.d.ts +5 -0
  5. package/bin/address/AddressApi.js +4 -0
  6. package/bin/address/interfaces/IAddressApi.d.ts +10 -0
  7. package/bin/auth-business/AuthBusinessApi.d.ts +12 -0
  8. package/bin/auth-business/AuthBusinessApi.js +32 -0
  9. package/bin/auth-business/index.d.ts +2 -0
  10. package/bin/auth-business/index.js +2 -0
  11. package/bin/auth-business/interfaces/IAuthBusinessApi.d.ts +15 -0
  12. package/bin/auth-business/interfaces/IAuthBusinessApi.js +1 -0
  13. package/bin/bankAccount/BankAccountApi.d.ts +3 -0
  14. package/bin/bankAccount/BankAccountApi.js +4 -0
  15. package/bin/bankAccount/interfaces/IBankAccountApi.d.ts +10 -0
  16. package/bin/beneficiary/BeneficiaryApi.d.ts +12 -0
  17. package/bin/beneficiary/BeneficiaryApi.js +32 -0
  18. package/bin/beneficiary/index.d.ts +2 -0
  19. package/bin/beneficiary/index.js +2 -0
  20. package/bin/beneficiary/interfaces/IBeneficiaryApi.d.ts +15 -0
  21. package/bin/beneficiary/interfaces/IBeneficiaryApi.js +1 -0
  22. package/bin/contactInformation/ContactInformationApi.d.ts +5 -0
  23. package/bin/contactInformation/ContactInformationApi.js +4 -0
  24. package/bin/contactInformation/interface/IContactInformationApi.d.ts +10 -0
  25. package/bin/container.config.js +13 -0
  26. package/bin/directorySetting/DirectorySettingApi.d.ts +3 -0
  27. package/bin/directorySetting/DirectorySettingApi.js +4 -0
  28. package/bin/directorySetting/interfaces/IDirectorySettingApi.d.ts +8 -0
  29. package/bin/group/GroupApi.d.ts +3 -0
  30. package/bin/group/GroupApi.js +4 -0
  31. package/bin/group/interfaces/IGroupApi.d.ts +8 -0
  32. package/bin/index.d.ts +8 -0
  33. package/bin/index.js +8 -0
  34. package/bin/membership/MembershipApi.d.ts +12 -0
  35. package/bin/membership/MembershipApi.js +32 -0
  36. package/bin/membership/index.d.ts +2 -0
  37. package/bin/membership/index.js +2 -0
  38. package/bin/membership/interfaces/IMembershipApi.d.ts +15 -0
  39. package/bin/membership/interfaces/IMembershipApi.js +1 -0
  40. package/bin/notificationWebsockets/NotificationWebsocketApi.d.ts +12 -0
  41. package/bin/notificationWebsockets/NotificationWebsocketApi.js +32 -0
  42. package/bin/notificationWebsockets/index.d.ts +2 -0
  43. package/bin/notificationWebsockets/index.js +2 -0
  44. package/bin/notificationWebsockets/interfaces/INotificationWebsocketApi.d.ts +15 -0
  45. package/bin/notificationWebsockets/interfaces/INotificationWebsocketApi.js +1 -0
  46. package/bin/performance-profile/PerformanceProfileApi.d.ts +12 -0
  47. package/bin/performance-profile/PerformanceProfileApi.js +32 -0
  48. package/bin/performance-profile/index.d.ts +2 -0
  49. package/bin/performance-profile/index.js +2 -0
  50. package/bin/performance-profile/interfaces/IPerformanceProfileApi.d.ts +15 -0
  51. package/bin/performance-profile/interfaces/IPerformanceProfileApi.js +1 -0
  52. package/bin/presence-websocket/PresenceWebsocketApi.d.ts +12 -0
  53. package/bin/presence-websocket/PresenceWebsocketApi.js +32 -0
  54. package/bin/presence-websocket/index.d.ts +2 -0
  55. package/bin/presence-websocket/index.js +2 -0
  56. package/bin/presence-websocket/interfaces/IPresenceWebsocketApi.d.ts +15 -0
  57. package/bin/presence-websocket/interfaces/IPresenceWebsocketApi.js +1 -0
  58. package/bin/retailCards/api/RetailCardsBusinessApi.d.ts +24 -0
  59. package/bin/retailCards/api/RetailCardsBusinessApi.js +51 -0
  60. package/bin/retailCards/api/interfaces/IRetailCardsBusinessApi.d.ts +41 -0
  61. package/bin/retailCards/api/interfaces/IRetailCardsBusinessApi.js +1 -0
  62. package/bin/retailCards/index.d.ts +2 -0
  63. package/bin/retailCards/index.js +2 -0
  64. package/bin/retailCatalog/api/RetailCatalogBusinessApi.d.ts +27 -0
  65. package/bin/retailCatalog/api/RetailCatalogBusinessApi.js +65 -0
  66. package/bin/retailCatalog/api/interfaces/IRetailCatalogBusinessApi.d.ts +64 -0
  67. package/bin/retailCatalog/api/interfaces/IRetailCatalogBusinessApi.js +1 -0
  68. package/bin/retailCatalog/index.d.ts +2 -0
  69. package/bin/retailCatalog/index.js +2 -0
  70. package/bin/riskProfile/api/RiskProfileApi.d.ts +4 -0
  71. package/bin/riskProfile/api/RiskProfileApi.js +4 -0
  72. package/bin/riskProfile/api/interfaces/IRiskProfileApi.d.ts +9 -0
  73. package/bin/zendesk/ZendeskApi.d.ts +3 -0
  74. package/bin/zendesk/ZendeskApi.js +4 -0
  75. package/bin/zendesk/interfaces/IZendeskApi.d.ts +8 -0
  76. package/docs/TECH_DEBT.md +7 -0
  77. package/package.json +1 -1
  78. package/src/activity-business/ActivityApi.ts +6 -0
  79. package/src/activity-business/interfaces/IActivityApi.ts +9 -1
  80. package/src/address/AddressApi.ts +6 -0
  81. package/src/address/interfaces/IAddressApi.ts +10 -1
  82. package/src/auth-business/AuthBusinessApi.ts +20 -0
  83. package/src/auth-business/index.ts +2 -0
  84. package/src/auth-business/interfaces/IAuthBusinessApi.ts +15 -0
  85. package/src/bankAccount/BankAccountApi.ts +5 -0
  86. package/src/bankAccount/interfaces/IBankAccountApi.ts +10 -0
  87. package/src/beneficiary/BeneficiaryApi.ts +20 -0
  88. package/src/beneficiary/index.ts +2 -0
  89. package/src/beneficiary/interfaces/IBeneficiaryApi.ts +15 -0
  90. package/src/contactInformation/ContactInformationApi.ts +6 -0
  91. package/src/contactInformation/interface/IContactInformationApi.ts +10 -1
  92. package/src/container.config.ts +14 -0
  93. package/src/directorySetting/DirectorySettingApi.ts +5 -0
  94. package/src/directorySetting/interfaces/IDirectorySettingApi.ts +8 -1
  95. package/src/group/GroupApi.ts +5 -0
  96. package/src/group/interfaces/IGroupApi.ts +8 -0
  97. package/src/index.ts +8 -0
  98. package/src/membership/MembershipApi.ts +20 -0
  99. package/src/membership/index.ts +2 -0
  100. package/src/membership/interfaces/IMembershipApi.ts +15 -0
  101. package/src/notificationWebsockets/NotificationWebsocketApi.ts +20 -0
  102. package/src/notificationWebsockets/index.ts +3 -1
  103. package/src/notificationWebsockets/interfaces/INotificationWebsocketApi.ts +15 -0
  104. package/src/performance-profile/PerformanceProfileApi.ts +20 -0
  105. package/src/performance-profile/index.ts +2 -0
  106. package/src/performance-profile/interfaces/IPerformanceProfileApi.ts +15 -0
  107. package/src/presence-websocket/PresenceWebsocketApi.ts +20 -0
  108. package/src/presence-websocket/index.ts +2 -0
  109. package/src/presence-websocket/interfaces/IPresenceWebsocketApi.ts +15 -0
  110. package/src/retailCards/api/RetailCardsBusinessApi.ts +44 -0
  111. package/src/retailCards/api/interfaces/IRetailCardsBusinessApi.ts +47 -0
  112. package/src/retailCards/index.ts +2 -0
  113. package/src/retailCatalog/api/RetailCatalogBusinessApi.ts +68 -0
  114. package/src/retailCatalog/api/interfaces/IRetailCatalogBusinessApi.ts +75 -0
  115. package/src/retailCatalog/index.ts +2 -0
  116. package/src/riskProfile/api/RiskProfileApi.ts +6 -0
  117. package/src/riskProfile/api/interfaces/IRiskProfileApi.ts +9 -0
  118. package/src/zendesk/ZendeskApi.ts +5 -0
  119. package/src/zendesk/interfaces/IZendeskApi.ts +8 -0
@@ -0,0 +1,75 @@
1
+ import { StandardResponse } from "@fiado/gateway-adapter";
2
+
3
+ /**
4
+ * Contrato del publisher HTTP del lambda `retail-catalog-business` (SureKeep Fase 1, pista Retail)
5
+ * para sus endpoints privados del ciclo de venta del IMEI, consumidos por el wizard F2.
6
+ *
7
+ * ─────────────────────────────────────────────────────────────────────────────
8
+ * TENANT — header `x-tenant-issuer` (NO `?tenantId=`).
9
+ * ─────────────────────────────────────────────────────────────────────────────
10
+ * A diferencia de customer/cards/loan-config (que resuelven el silo por `?tenantId=` canónico), este
11
+ * lambda resuelve el tenant por el ISSUER Cognito forwardeado en el header `x-tenant-issuer`
12
+ * (`PrivateController.issuerFromHeader` → `TenantContextService.withContext(issuer)`). Los privados son
13
+ * `Feature.ANONIMUS` (sin RBAC; la protección es la red VPC), así que el caller DEBE declarar el issuer.
14
+ *
15
+ * ⚠️ Retorno `StandardResponse<T>` — el consumer lee `result.data`, NO `result.body`.
16
+ * Errores: el destino lanza `DomainError` tipado → el publisher RECHAZA (no devuelve null); cada
17
+ * consumer mapea a su propio error de dominio.
18
+ *
19
+ * DTOs de catálogo/reserva: el lambda destino NO publica todavía estos shapes en `@fiado/type-kit`
20
+ * (`StoreCatalogItem`, `ReserveInventoryResult`), así que se declaran INLINE aquí (TD: migrar a
21
+ * type-kit cuando el contrato se estabilice). El shape espeja `StoreCatalogItemResponse` /
22
+ * `ReserveInventoryResponse` del `retail-catalog-business`.
23
+ *
24
+ * Env var requerida en el consumer: `RETAIL_CATALOG_BUSINESS_URL`.
25
+ * El template.yml del consumer la setea con:
26
+ *
27
+ * RETAIL_CATALOG_BUSINESS_URL: '{{resolve:ssm:retail-catalog-business}}'
28
+ */
29
+
30
+ /** Ítem del catálogo vendible de un store (espeja `StoreCatalogItemResponse` del destino). */
31
+ export interface StoreCatalogItem {
32
+ sku: string;
33
+ imei: string;
34
+ cashPriceCents: number;
35
+ available: boolean;
36
+ }
37
+
38
+ /** Resultado de la reserva (espeja `ReserveInventoryResponse` del destino). */
39
+ export interface ReserveInventoryResult {
40
+ reservationExpiresAt: string;
41
+ }
42
+
43
+ /** Body de PUT `/private/inventory/{imei}/reserve`. */
44
+ export interface ReserveInventoryBody {
45
+ sku: string;
46
+ sessionId: string;
47
+ }
48
+
49
+ /** Body de PUT `/private/inventory/{imei}/sell` (DEC-020 del destino: `customerId` puebla `soldToCustomerId`). */
50
+ export interface SellInventoryBody {
51
+ sessionId: string;
52
+ customerId: string;
53
+ }
54
+
55
+ /** Body de PUT `/private/inventory/{imei}/release` (DEC-018 del destino: verifica titularidad de la sesión). */
56
+ export interface ReleaseReservationBody {
57
+ sessionId: string;
58
+ }
59
+
60
+ export interface IRetailCatalogBusinessApi {
61
+ /** GET `/private/stores/{storeId}/catalog` — catálogo vendible (sku, imei, precio de contado, disponibilidad). */
62
+ getStoreCatalog(storeId: string, issuer: string): Promise<StandardResponse<StoreCatalogItem[]>>;
63
+
64
+ /** PUT `/private/inventory/{imei}/reserve` — reserva atómica del IMEI para una sesión (AVAILABLE → RESERVED). */
65
+ reserveInventory(imei: string, body: ReserveInventoryBody, issuer: string): Promise<StandardResponse<ReserveInventoryResult>>;
66
+
67
+ /** PUT `/private/inventory/{imei}/sell` — vende el IMEI (RESERVED → SOLD). */
68
+ sellInventory(imei: string, body: SellInventoryBody, issuer: string): Promise<StandardResponse<void>>;
69
+
70
+ /** PUT `/private/inventory/{imei}/release` — libera la reserva (RESERVED → AVAILABLE, titularidad de la sesión). */
71
+ releaseInventory(imei: string, body: ReleaseReservationBody, issuer: string): Promise<StandardResponse<void>>;
72
+
73
+ /** PUT `/private/inventory/{imei}/return` — devuelve el IMEI vendido al stock (SOLD → AVAILABLE, sin body). */
74
+ returnInventory(imei: string, issuer: string): Promise<StandardResponse<void>>;
75
+ }
@@ -0,0 +1,2 @@
1
+ export * from "./api/interfaces/IRetailCatalogBusinessApi.js";
2
+ export { default as RetailCatalogBusinessApi } from "./api/RetailCatalogBusinessApi.js";
@@ -5,6 +5,7 @@ import {CreatePrivateAlarm, CreateRiskProfileRequest} from "@fiado/type-kit/bin/
5
5
  type UpdateRiskProfileRequest = import("@fiado/type-kit/bin/riskProfile/dtos/UpdateRiskProfileRequest.js").default;
6
6
  type UpdateAlarmProfileRequest = import("@fiado/type-kit/bin/riskProfile/dtos/UpdateAlarmProfileRequest.js").default;
7
7
  import { ResponseOptions } from "@fiado/gateway-adapter";
8
+ type FiadoApiResponse<T> = import("@fiado/type-kit/bin/apiResponse/dtos/FiadoApiResponse.js").default<T>;
8
9
  import {
9
10
  SetCustomAlarmRequest,
10
11
  SetCustomAlarmResponse,
@@ -86,4 +87,9 @@ export default class RiskProfileApi implements IRiskProfileApi {
86
87
  return await this.httpRequest.get(url);
87
88
  }
88
89
 
90
+ async deleteByDirectoryId(directoryId: string): Promise<FiadoApiResponse<{ deletedCount: number }>> {
91
+ const url = `${this.baseUrl}/private/directory/${directoryId}`;
92
+ return await this.httpRequest.delete<FiadoApiResponse<{ deletedCount: number }>>(url);
93
+ }
94
+
89
95
  }
@@ -2,6 +2,7 @@ import {CreatePrivateAlarm, CreateRiskProfileRequest} from "@fiado/type-kit/bin/
2
2
  type UpdateAlarmProfileRequest = import("@fiado/type-kit/bin/riskProfile/dtos/UpdateAlarmProfileRequest.js").default;
3
3
  type UpdateRiskProfileRequest = import("@fiado/type-kit/bin/riskProfile/dtos/UpdateRiskProfileRequest.js").default;
4
4
  import { ResponseOptions } from "@fiado/gateway-adapter";
5
+ type FiadoApiResponse<T> = import("@fiado/type-kit/bin/apiResponse/dtos/FiadoApiResponse.js").default<T>;
5
6
  import {
6
7
  SetCustomAlarmRequest,
7
8
  SetCustomAlarmResponse,
@@ -67,4 +68,12 @@ export interface IRiskProfileApi {
67
68
  * Paginación: pasar `continuationToken` de la respuesta previa; `null` = fin.
68
69
  */
69
70
  listClientFinancialHistory(directoryId: string, params?: { limit?: number; continuationToken?: string }): Promise<ResponseOptions<ListClientFinancialHistoryResponse>>;
71
+
72
+ /**
73
+ * Borra en cascada el perfil de riesgo asociado a un directoryId.
74
+ * @param directoryId ID del directorio.
75
+ * @throws {Error} Lanza un error si los parámetros de entrada son inválidos.
76
+ */
77
+ // TODO(type-kit): swap a Directory.DeleteByDirectoryResponse cuando se publique
78
+ deleteByDirectoryId(directoryId: string): Promise<FiadoApiResponse<{ deletedCount: number }>>;
70
79
  }
@@ -21,4 +21,9 @@ export class ZendeskApi implements IZendeskApi {
21
21
  const url: string = `${this.baseUrl}tickets/create`;
22
22
  return await this.httpRequest.post(url,data);
23
23
  }
24
+
25
+ async deleteByDirectoryId(directoryId: string): Promise<FiadoApiResponse<{ deletedCount: number }>> {
26
+ const url = `${this.baseUrl}private/directory/${directoryId}`;
27
+ return await this.httpRequest.delete<FiadoApiResponse<{ deletedCount: number }>>(url);
28
+ }
24
29
  }
@@ -7,4 +7,12 @@ import { HelpdeskCreateTicketRequest, HelpdeskCreateUserRequest } from '@fiado/t
7
7
  export interface IZendeskApi {
8
8
  createUser(data: HelpdeskCreateUserRequest): Promise<FiadoApiResponse<any>>;
9
9
  createTicket(data: HelpdeskCreateTicketRequest): Promise<FiadoApiResponse<any>>;
10
+
11
+ /**
12
+ * Borra en cascada los registros de Zendesk asociados a un directoryId.
13
+ * @param directoryId ID del directorio.
14
+ * @throws {Error} Lanza un error si los parámetros de entrada son inválidos.
15
+ */
16
+ // TODO(type-kit): swap a Directory.DeleteByDirectoryResponse cuando se publique
17
+ deleteByDirectoryId(directoryId: string): Promise<FiadoApiResponse<{ deletedCount: number }>>;
10
18
  }