@fiado/api-invoker 4.5.0 → 4.6.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 (286) hide show
  1. package/.claude/settings.json +33 -33
  2. package/README.md +600 -600
  3. package/bin/container.config.js +3 -0
  4. package/bin/index.d.ts +1 -0
  5. package/bin/index.js +1 -0
  6. package/bin/platformRbac/api/PlatformRbacBusinessApi.d.ts +26 -0
  7. package/bin/platformRbac/api/PlatformRbacBusinessApi.js +54 -0
  8. package/bin/platformRbac/api/interfaces/IPlatformRbacBusinessApi.d.ts +40 -0
  9. package/bin/platformRbac/api/interfaces/IPlatformRbacBusinessApi.js +2 -0
  10. package/bin/platformRbac/index.d.ts +2 -0
  11. package/bin/platformRbac/index.js +23 -0
  12. package/docs/TECH_DEBT.md +16 -0
  13. package/package.json +36 -36
  14. package/src/account-beneficiary/AccountBeneficiaryApi.ts +18 -18
  15. package/src/account-beneficiary/index.ts +2 -2
  16. package/src/account-beneficiary/interfaces/IAccountBeneficiaryApi.ts +7 -7
  17. package/src/account-fiadoinc/AccountFiadoIncApi.ts +126 -126
  18. package/src/account-fiadoinc/index.ts +4 -4
  19. package/src/account-fiadoinc/interfaces/IAccountFiadoIncApi.ts +50 -50
  20. package/src/account-fiadoinc/queue/Publisher.ts +23 -23
  21. package/src/account-fiadoinc/queue/interfaces/IPublisher.ts +4 -4
  22. package/src/account-fiadosa/AccountFiadoSAApi.ts +38 -38
  23. package/src/account-fiadosa/index.ts +1 -1
  24. package/src/account-fiadosa/interfaces/IAccountFiadoSAApi.ts +16 -16
  25. package/src/account-pagoconfiado/AccountPagoConfiadoApi.ts +78 -78
  26. package/src/account-pagoconfiado/index.ts +2 -2
  27. package/src/account-pagoconfiado/interfaces/IAccountPagoConfiadoApi.ts +37 -37
  28. package/src/activity-business/ActivityApi.ts +36 -36
  29. package/src/activity-business/index.ts +5 -5
  30. package/src/activity-business/interfaces/IActivityApi.ts +13 -13
  31. package/src/activity-business/queue/ActivityPublisher.ts +30 -30
  32. package/src/activity-business/queue/IActivityPublisher.ts +4 -4
  33. package/src/address/AddressApi.ts +46 -46
  34. package/src/address/index.ts +3 -3
  35. package/src/address/interfaces/IAddressApi.ts +30 -30
  36. package/src/ai-engine-connector/AiEngineApi.ts +28 -28
  37. package/src/ai-engine-connector/index.ts +2 -2
  38. package/src/ai-engine-connector/interfaces/IAiEngineApi.ts +6 -6
  39. package/src/appselectondata/AppSelectionDataApi.ts +32 -32
  40. package/src/appselectondata/index.ts +2 -2
  41. package/src/appselectondata/interfaces/IAppSelectionDataApi.ts +17 -17
  42. package/src/authentication/AuthenticationApi.ts +29 -29
  43. package/src/authentication/index.ts +4 -4
  44. package/src/authentication/interfaces/IAuthenticationApi.ts +8 -8
  45. package/src/bankAccount/BankAccountApi.ts +34 -34
  46. package/src/bankAccount/index.ts +1 -1
  47. package/src/bankAccount/interfaces/IBankAccountApi.ts +6 -6
  48. package/src/bbvaRst/api/BBVARstApi.ts +16 -16
  49. package/src/bbvaRst/api/interfaces/IBBVARstApi.ts +4 -4
  50. package/src/bbvaRst/index.ts +1 -1
  51. package/src/benefits-marketplace/api/BenefitsMarketplaceApi.ts +35 -35
  52. package/src/benefits-marketplace/api/dtos/BenefitLeafDisplayResponse.ts +21 -21
  53. package/src/benefits-marketplace/api/interfaces/IBenefitsMarketplaceApi.ts +62 -62
  54. package/src/benefits-marketplace/index.ts +3 -3
  55. package/src/blacklist/BlackListApi.ts +19 -19
  56. package/src/blacklist/index.ts +2 -2
  57. package/src/blacklist/interfaces/IBlackListApi.ts +20 -20
  58. package/src/card/CardApi.ts +103 -103
  59. package/src/card/index.ts +3 -3
  60. package/src/card/interfaces/ICardApi.ts +32 -32
  61. package/src/card-business/index.ts +2 -2
  62. package/src/card-business/queue/CardBusinessPublisher.ts +23 -23
  63. package/src/card-business/queue/ICardBusinessPublisher.ts +10 -10
  64. package/src/centralPayments/CentralPaymentsConnectorApi.ts +317 -317
  65. package/src/centralPayments/index.ts +1 -1
  66. package/src/centralPayments/interfaces/ICentralPaymentsConnectorApi.ts +153 -153
  67. package/src/circuloCredito/api/CirculoCreditoApi.ts +21 -21
  68. package/src/circuloCredito/api/interfaces/ICirculoCreditoApi.ts +7 -7
  69. package/src/circuloCredito/index.ts +2 -2
  70. package/src/cnbv-business/CnbvApi.ts +31 -31
  71. package/src/cnbv-business/index.ts +4 -4
  72. package/src/cnbv-business/interfaces/ICnbvApi.ts +19 -19
  73. package/src/cnbv-connector/CnbvConnectorApi.ts +18 -18
  74. package/src/cnbv-connector/index.ts +1 -1
  75. package/src/cnbv-connector/interfaces/ICnbvConnectorApi.ts +6 -6
  76. package/src/cognitoBackofficeConnector/api/CognitoBackofficeConnectorApi.ts +254 -254
  77. package/src/cognitoBackofficeConnector/api/interfaces/ICognitoBackofficeConnectorApi.ts +181 -181
  78. package/src/cognitoBackofficeConnector/index.ts +2 -2
  79. package/src/cognitoConnector/CognitoConnectorApi.ts +110 -110
  80. package/src/cognitoConnector/CognitoConnectorV2.ts +87 -87
  81. package/src/cognitoConnector/index.ts +11 -11
  82. package/src/cognitoConnector/interfaces/ICognitoConnectorApi.ts +16 -16
  83. package/src/cognitoConnector/interfaces/ICognitoV2Api.ts +63 -63
  84. package/src/collector/CollectorApi.ts +97 -97
  85. package/src/collector/index.ts +2 -2
  86. package/src/collector/interfaces/ICollectorApi.ts +47 -47
  87. package/src/commission-business/CommissionBusinessApi.ts +19 -19
  88. package/src/commission-business/index.ts +3 -3
  89. package/src/commission-business/interfaces/ICommissionBusinessApi.ts +15 -15
  90. package/src/contactInformation/ContactInformationApi.ts +20 -20
  91. package/src/contactInformation/index.ts +2 -2
  92. package/src/contactInformation/interface/IContactInformationApi.ts +8 -8
  93. package/src/container.config.ts +281 -276
  94. package/src/contract-business/api/ContractBusinessApi.ts +37 -37
  95. package/src/contract-business/api/interfaces/IContractBusinessApi.ts +32 -32
  96. package/src/contract-business/index.ts +2 -2
  97. package/src/contract-generator/ContractGeneratorApi.ts +18 -18
  98. package/src/contract-generator/index.ts +2 -2
  99. package/src/contract-generator/interfaces/IContractGeneratorApi.ts +16 -16
  100. package/src/countries-business/CountriesBusinessApi.ts +26 -26
  101. package/src/countries-business/index.ts +2 -2
  102. package/src/countries-business/interfaces/ICountriesBusinessApi.ts +22 -22
  103. package/src/credit-engine/CreditEngineApi.ts +54 -54
  104. package/src/credit-engine/index.ts +17 -17
  105. package/src/credit-engine/interfaces/ICreditEngineApi.ts +46 -46
  106. package/src/credit-engine/queue/CreditCollectionPublisher.ts +24 -24
  107. package/src/credit-engine/queue/CreditDelinquencyPublisher.ts +24 -24
  108. package/src/credit-engine/queue/CreditIncomeDetectionPublisher.ts +24 -24
  109. package/src/credit-engine/queue/CreditLienCollectionPublisher.ts +24 -24
  110. package/src/credit-engine/queue/CreditNotificationPublisher.ts +24 -24
  111. package/src/credit-engine/queue/CreditOfferGenerationPublisher.ts +24 -24
  112. package/src/credit-engine/queue/CreditReconciliationPublisher.ts +24 -24
  113. package/src/credit-engine/queue/CreditScoringPublisher.ts +24 -24
  114. package/src/credit-engine/queue/CreditStatementPublisher.ts +24 -24
  115. package/src/credit-engine/queue/CreditTransferPublisher.ts +24 -24
  116. package/src/credit-engine/queue/interfaces/ICreditCollectionPublisher.ts +5 -5
  117. package/src/credit-engine/queue/interfaces/ICreditDelinquencyPublisher.ts +5 -5
  118. package/src/credit-engine/queue/interfaces/ICreditIncomeDetectionPublisher.ts +5 -5
  119. package/src/credit-engine/queue/interfaces/ICreditLienCollectionPublisher.ts +5 -5
  120. package/src/credit-engine/queue/interfaces/ICreditNotificationPublisher.ts +5 -5
  121. package/src/credit-engine/queue/interfaces/ICreditOfferGenerationPublisher.ts +5 -5
  122. package/src/credit-engine/queue/interfaces/ICreditReconciliationPublisher.ts +5 -5
  123. package/src/credit-engine/queue/interfaces/ICreditScoringPublisher.ts +5 -5
  124. package/src/credit-engine/queue/interfaces/ICreditStatementPublisher.ts +5 -5
  125. package/src/credit-engine/queue/interfaces/ICreditTransferPublisher.ts +5 -5
  126. package/src/credit-payment/CreditPaymentApi.ts +73 -73
  127. package/src/credit-payment/index.ts +2 -2
  128. package/src/credit-payment/interfaces/ICreditPaymentApi.ts +52 -52
  129. package/src/credit-statements/api/CreditStatementsApi.ts +25 -25
  130. package/src/credit-statements/api/interfaces/ICreditStatementsApi.ts +30 -30
  131. package/src/credit-statements/index.ts +2 -2
  132. package/src/device/DeviceApi.ts +32 -32
  133. package/src/device/index.ts +2 -2
  134. package/src/device/interfaces/IDeviceApi.ts +41 -41
  135. package/src/directories/DirectoriesApi.ts +63 -63
  136. package/src/directories/index.ts +3 -3
  137. package/src/directories/interfaces/IDirectoriesApi.ts +17 -17
  138. package/src/directory/DirectoryApi.ts +196 -196
  139. package/src/directory/index.ts +3 -3
  140. package/src/directory/interfaces/IDirectoryApi.ts +73 -73
  141. package/src/directorySetting/DirectorySettingApi.ts +42 -42
  142. package/src/directorySetting/index.ts +3 -3
  143. package/src/directorySetting/interfaces/IDirectorySettingApi.ts +56 -56
  144. package/src/disputes/DisputesApi.ts +50 -50
  145. package/src/disputes/index.ts +2 -2
  146. package/src/disputes/interfaces/IDisputesApi.ts +54 -54
  147. package/src/document-generator/DocumentGeneratorApi.ts +51 -51
  148. package/src/document-generator/index.ts +2 -2
  149. package/src/document-generator/interfaces/IDocumentGeneratorApi.ts +34 -34
  150. package/src/document-image-processor/DocumentImageProcessorApi.ts +22 -22
  151. package/src/document-image-processor/index.ts +1 -1
  152. package/src/document-image-processor/interfaces/IDocumentImageProcessorApi.ts +7 -7
  153. package/src/estafeta/api/EstafetaApi.ts +67 -67
  154. package/src/estafeta/api/interfaces/IEstafetaApi.ts +28 -28
  155. package/src/estafeta/index.ts +1 -1
  156. package/src/event-history-business/EventHistoryApi.ts +108 -108
  157. package/src/event-history-business/index.ts +3 -3
  158. package/src/event-history-business/interfaces/IEventHistoryApi.ts +47 -47
  159. package/src/exchangeRates/ExchangeRatesApi.ts +27 -27
  160. package/src/exchangeRates/index.ts +1 -1
  161. package/src/exchangeRates/interfaces/IExchangeRatesApi.ts +8 -8
  162. package/src/fiadoMessages/api/FiadoMessagesApi.ts +20 -20
  163. package/src/fiadoMessages/api/interfaces/IFiadoMessagesApi.ts +2 -2
  164. package/src/fiadoMessages/index.ts +1 -1
  165. package/src/firebase-connector/FirebaseConnectorApi.ts +53 -53
  166. package/src/firebase-connector/index.ts +3 -3
  167. package/src/firebase-connector/interfaces/IFirebaseConnectorApi.ts +6 -6
  168. package/src/fraudPreventionEngine/api/FraudPreventionEngineApi.ts +22 -22
  169. package/src/fraudPreventionEngine/api/interfaces/IFraudPreventionEngineApi.ts +7 -7
  170. package/src/fraudPreventionEngine/index.ts +1 -1
  171. package/src/group/GroupApi.ts +69 -69
  172. package/src/group/index.ts +1 -1
  173. package/src/group/interfaces/IGroupApi.ts +40 -40
  174. package/src/identity/IdentityApi.ts +95 -95
  175. package/src/identity/index.ts +3 -3
  176. package/src/identity/interfaces/IIdentityApi.ts +46 -46
  177. package/src/index.ts +77 -76
  178. package/src/legalDocument/api/LegalDocumentApi.ts +38 -38
  179. package/src/legalDocument/api/interfaces/ILegalDocumentApi.ts +7 -7
  180. package/src/legalDocument/index.ts +3 -3
  181. package/src/milestone-business/api/MilestoneBusinessApi.ts +26 -26
  182. package/src/milestone-business/api/interfaces/IMilestoneBusinessApi.ts +9 -9
  183. package/src/milestone-business/index.ts +2 -2
  184. package/src/multicommServicePayment/api/MulticommServicePaymentApi.ts +94 -94
  185. package/src/multicommServicePayment/api/interfaces/IMulticommServicePaymentApi.ts +44 -44
  186. package/src/multicommServicePayment/index.ts +1 -1
  187. package/src/notificationMessages/index.ts +1 -1
  188. package/src/notificationMessages/queue/NotificationMessagePublisher.ts +42 -42
  189. package/src/notificationMessages/queue/interfaces/INotificationMessagesPublisher.ts +7 -7
  190. package/src/notificationWebsockets/index.ts +1 -1
  191. package/src/notificationWebsockets/queue/NotificationWSMessagePublisher.ts +29 -29
  192. package/src/notificationWebsockets/queue/interfaces/INotificationWSMessagesPublisher.ts +4 -4
  193. package/src/observations/ObservationsApi.ts +23 -23
  194. package/src/observations/index.ts +3 -3
  195. package/src/observations/interfaces/IObservationsApi.ts +9 -9
  196. package/src/onboarding/api/OnboardingApi.ts +23 -23
  197. package/src/onboarding/api/interfaces/IOnboardingApi.ts +3 -3
  198. package/src/onboarding/index.ts +1 -1
  199. package/src/onboarding-business/api/OnboardingBusinessApi.ts +210 -210
  200. package/src/onboarding-business/api/interfaces/IOnboardingBusinessApi.ts +9 -9
  201. package/src/onboarding-business/index.ts +1 -1
  202. package/src/order-collector-business/OrderCollectorApi.ts +20 -20
  203. package/src/order-collector-business/index.ts +3 -3
  204. package/src/order-collector-business/interfaces/IOrderCollectorApi.ts +9 -9
  205. package/src/p2pContact/api/P2pContactApi.ts +19 -19
  206. package/src/p2pContact/api/interfaces/IP2pContactApi.ts +4 -4
  207. package/src/p2pContact/index.ts +1 -1
  208. package/src/payroll-business/PayrollApi.ts +19 -19
  209. package/src/payroll-business/index.ts +1 -1
  210. package/src/payroll-business/interfaces/IPayrollApi.ts +18 -18
  211. package/src/people-business/api/PeopleBusinessApi.ts +32 -32
  212. package/src/people-business/api/interfaces/IPeopleBusinessApi.ts +7 -7
  213. package/src/people-business/index.ts +1 -1
  214. package/src/platform-error-events/index.ts +2 -2
  215. package/src/platform-error-events/queue/PlatformErrorEventsPublisher.ts +24 -24
  216. package/src/platform-error-events/queue/interfaces/IPlatformErrorEventsPublisher.ts +5 -5
  217. package/src/platformRbac/api/PlatformRbacBusinessApi.ts +55 -0
  218. package/src/platformRbac/api/interfaces/IPlatformRbacBusinessApi.ts +56 -0
  219. package/src/platformRbac/index.ts +2 -0
  220. package/src/pomelo/api/PomeloApi.ts +109 -109
  221. package/src/pomelo/api/interfaces/IPomeloApi.ts +29 -29
  222. package/src/pomelo/index.ts +1 -1
  223. package/src/pomeloProcessor/api/PomeloProcessorApi.ts +17 -17
  224. package/src/pomeloProcessor/api/interfaces/IPomeloProcessorApi.ts +2 -2
  225. package/src/pomeloProcessor/index.ts +2 -2
  226. package/src/pricelist-business/PriceListApi.ts +45 -45
  227. package/src/pricelist-business/index.ts +1 -1
  228. package/src/pricelist-business/interfaces/IPriceListApi.ts +16 -16
  229. package/src/product-catalog/ProductCatalogApi.ts +17 -17
  230. package/src/product-catalog/index.ts +1 -1
  231. package/src/product-catalog/interfaces/IProductCatalogApi.ts +6 -6
  232. package/src/product-payment/api/ProductPaymentApi.ts +25 -25
  233. package/src/product-payment/api/interfaces/IProductPaymentApi.ts +8 -8
  234. package/src/product-payment/index.ts +1 -1
  235. package/src/referral-business/ReferralBusinessApi.ts +37 -37
  236. package/src/referral-business/index.ts +1 -1
  237. package/src/referral-business/interfaces/IReferralBusinessApi.ts +38 -38
  238. package/src/report-processor-business/api/IReportProcessorBusinessApi.ts +4 -4
  239. package/src/report-processor-business/api/ReportProcessorBusinessApi.ts +17 -17
  240. package/src/report-processor-business/index.ts +5 -5
  241. package/src/riskProfile/api/RiskProfileApi.ts +63 -63
  242. package/src/riskProfile/api/TransactionAlertApi.ts +49 -49
  243. package/src/riskProfile/api/interfaces/IRiskProfileApi.ts +51 -51
  244. package/src/riskProfile/api/interfaces/ITransactionAlertApi.ts +70 -70
  245. package/src/riskProfile/index.ts +7 -7
  246. package/src/riskProfile/queue/TransactionAlarmPublisher.ts +25 -25
  247. package/src/riskProfile/queue/interfaces/ITransactionAlarmPublisher.ts +4 -4
  248. package/src/service-business/ServiceApi.ts +78 -78
  249. package/src/service-business/index.ts +2 -2
  250. package/src/service-business/interfaces/IServiceApi.ts +73 -73
  251. package/src/sessionActivity/index.ts +2 -2
  252. package/src/sessionActivity/queue/SessionActivityPublisher.ts +23 -23
  253. package/src/sessionActivity/queue/interfaces/ISessionActivityPublisher.ts +4 -4
  254. package/src/stp-business/api/STPBusinessApi.ts +32 -32
  255. package/src/stp-business/api/interfaces/ISTPBusinessApi.ts +15 -15
  256. package/src/stp-business/index.ts +1 -1
  257. package/src/stpAccount/api/STPAccountApi.ts +111 -111
  258. package/src/stpAccount/api/interfaces/ISTPAccountApi.ts +7 -7
  259. package/src/stpAccount/index.ts +1 -1
  260. package/src/stpServicePayment/api/StpServicePaymentApi.ts +94 -94
  261. package/src/stpServicePayment/api/interfaces/IStpServicePaymentApi.ts +44 -44
  262. package/src/stpServicePayment/index.ts +1 -1
  263. package/src/stpSpei/api/StpSpeiApi.ts +32 -32
  264. package/src/stpSpei/api/interfaces/IStpSpeiApi.ts +6 -6
  265. package/src/stpSpei/index.ts +1 -1
  266. package/src/teams-connector/index.ts +2 -2
  267. package/src/teams-connector/queue/TeamsNotificationPublisher.ts +24 -24
  268. package/src/teams-connector/queue/interfaces/ITeamsNotificationPublisher.ts +5 -5
  269. package/src/tern/api/TernApi.ts +147 -147
  270. package/src/tern/api/interfaces/ITernApi.ts +54 -54
  271. package/src/tern/index.ts +1 -1
  272. package/src/transaction/api/TransactionApi.ts +157 -157
  273. package/src/transaction/api/interfaces/ITransactionApi.ts +82 -82
  274. package/src/transaction/index.ts +5 -5
  275. package/src/transaction/queue/TransactionPublisher.ts +25 -25
  276. package/src/transaction/queue/interfaces/ITransactionPublisher.ts +4 -4
  277. package/src/transactionProcessor/api/TransactionProcessorApi.ts +57 -57
  278. package/src/transactionProcessor/api/interfaces/ITransactionProcessorApi.ts +28 -28
  279. package/src/transactionProcessor/index.ts +1 -1
  280. package/src/uniteller-connector/api/UnitellerConnectorApi.ts +113 -113
  281. package/src/uniteller-connector/api/interfaces/IUnitellerConnectorApi.ts +85 -85
  282. package/src/uniteller-connector/index.ts +2 -2
  283. package/src/utils/InvokerUtils.ts +18 -18
  284. package/src/zendesk/ZendeskApi.ts +24 -24
  285. package/src/zendesk/index.ts +3 -3
  286. package/src/zendesk/interfaces/IZendeskApi.ts +10 -10
@@ -103,6 +103,7 @@ const BenefitsMarketplaceApi_1 = __importDefault(require("./benefits-marketplace
103
103
  // UniTeller remittance connector (Fase 2 remittance)
104
104
  const uniteller_connector_1 = require("./uniteller-connector");
105
105
  const CognitoBackofficeConnectorApi_1 = __importDefault(require("./cognitoBackofficeConnector/api/CognitoBackofficeConnectorApi"));
106
+ const PlatformRbacBusinessApi_1 = __importDefault(require("./platformRbac/api/PlatformRbacBusinessApi"));
106
107
  exports.apiInvokerBindings = new inversify_1.ContainerModule(({ bind }) => {
107
108
  // UTILS bindings
108
109
  bind("InvokerUtils").to(InvokerUtils_1.InvokerUtils);
@@ -210,4 +211,6 @@ exports.apiInvokerBindings = new inversify_1.ContainerModule(({ bind }) => {
210
211
  bind("IUnitellerConnectorApi").to(uniteller_connector_1.UnitellerConnectorApi);
211
212
  // Cognito backoffice connector (Fase 0 SureKeep)
212
213
  bind("ICognitoBackofficeConnectorApi").to(CognitoBackofficeConnectorApi_1.default);
214
+ // Platform RBAC business — Custom Auth Challenge endpoints (Fase 0 SureKeep)
215
+ bind("IPlatformRbacBusinessApi").to(PlatformRbacBusinessApi_1.default);
213
216
  });
package/bin/index.d.ts CHANGED
@@ -74,3 +74,4 @@ export * from "./ai-engine-connector";
74
74
  export * from "./benefits-marketplace";
75
75
  export * from "./milestone-business";
76
76
  export * from "./cognitoBackofficeConnector";
77
+ export * from "./platformRbac";
package/bin/index.js CHANGED
@@ -90,3 +90,4 @@ __exportStar(require("./ai-engine-connector"), exports);
90
90
  __exportStar(require("./benefits-marketplace"), exports);
91
91
  __exportStar(require("./milestone-business"), exports);
92
92
  __exportStar(require("./cognitoBackofficeConnector"), exports);
93
+ __exportStar(require("./platformRbac"), exports);
@@ -0,0 +1,26 @@
1
+ import { IHttpRequest } from "@fiado/http-client";
2
+ import { ApiGatewayResponse } from "@fiado/gateway-adapter";
3
+ import { DefineNextChallengeRequest, DefineNextChallengeResponse, PrepareChallengeRequest, PrepareChallengeResponse, VerifyChallengeRequest, VerifyChallengeResponse } from "@fiado/type-kit/bin/platformRbac";
4
+ import { IPlatformRbacBusinessApi } from "./interfaces/IPlatformRbacBusinessApi";
5
+ /**
6
+ * Publisher HTTP del lambda `platform-rbac-business` (componente 06 SureKeep Fase 0)
7
+ * para los 3 endpoints internos del Custom Auth Challenge flow.
8
+ *
9
+ * Env var requerida en el consumer: `PLATFORM_RBAC_BUSINESS_URL`.
10
+ * El template.yml del consumer la setea con:
11
+ *
12
+ * PLATFORM_RBAC_BUSINESS_URL: '{{resolve:ssm:platform-rbac-business}}'
13
+ *
14
+ * Convención CLAUDE.md global: SSM key = nombre del lambda owner de la URL.
15
+ * El rbac-business publica su URL en SSM bajo la key `platform-rbac-business`
16
+ * vía el `post_build` del buildspec.yml estándar Fiado.
17
+ */
18
+ export default class PlatformRbacBusinessApi implements IPlatformRbacBusinessApi {
19
+ private httpRequest;
20
+ /** URL base del lambda. Leída de env var en cold start del consumer. */
21
+ private readonly baseUrl;
22
+ constructor(httpRequest: IHttpRequest);
23
+ defineNextChallenge(input: DefineNextChallengeRequest): Promise<ApiGatewayResponse<DefineNextChallengeResponse>>;
24
+ prepareChallenge(input: PrepareChallengeRequest): Promise<ApiGatewayResponse<PrepareChallengeResponse>>;
25
+ verifyChallenge(input: VerifyChallengeRequest): Promise<ApiGatewayResponse<VerifyChallengeResponse>>;
26
+ }
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const inversify_1 = require("inversify");
16
+ /**
17
+ * Publisher HTTP del lambda `platform-rbac-business` (componente 06 SureKeep Fase 0)
18
+ * para los 3 endpoints internos del Custom Auth Challenge flow.
19
+ *
20
+ * Env var requerida en el consumer: `PLATFORM_RBAC_BUSINESS_URL`.
21
+ * El template.yml del consumer la setea con:
22
+ *
23
+ * PLATFORM_RBAC_BUSINESS_URL: '{{resolve:ssm:platform-rbac-business}}'
24
+ *
25
+ * Convención CLAUDE.md global: SSM key = nombre del lambda owner de la URL.
26
+ * El rbac-business publica su URL en SSM bajo la key `platform-rbac-business`
27
+ * vía el `post_build` del buildspec.yml estándar Fiado.
28
+ */
29
+ let PlatformRbacBusinessApi = class PlatformRbacBusinessApi {
30
+ httpRequest;
31
+ /** URL base del lambda. Leída de env var en cold start del consumer. */
32
+ baseUrl = process.env.PLATFORM_RBAC_BUSINESS_URL || "";
33
+ constructor(httpRequest) {
34
+ this.httpRequest = httpRequest;
35
+ }
36
+ async defineNextChallenge(input) {
37
+ const url = `${this.baseUrl}/internal/auth/define-next-challenge`;
38
+ return await this.httpRequest.post(url, input);
39
+ }
40
+ async prepareChallenge(input) {
41
+ const url = `${this.baseUrl}/internal/auth/prepare-challenge`;
42
+ return await this.httpRequest.post(url, input);
43
+ }
44
+ async verifyChallenge(input) {
45
+ const url = `${this.baseUrl}/internal/auth/verify-challenge`;
46
+ return await this.httpRequest.post(url, input);
47
+ }
48
+ };
49
+ PlatformRbacBusinessApi = __decorate([
50
+ (0, inversify_1.injectable)(),
51
+ __param(0, (0, inversify_1.inject)("IHttpRequest")),
52
+ __metadata("design:paramtypes", [Object])
53
+ ], PlatformRbacBusinessApi);
54
+ exports.default = PlatformRbacBusinessApi;
@@ -0,0 +1,40 @@
1
+ import { ApiGatewayResponse } from "@fiado/gateway-adapter";
2
+ import { DefineNextChallengeRequest, DefineNextChallengeResponse, PrepareChallengeRequest, PrepareChallengeResponse, VerifyChallengeRequest, VerifyChallengeResponse } from "@fiado/type-kit/bin/platformRbac";
3
+ /**
4
+ * Contrato del publisher HTTP del lambda `platform-rbac-business` (componente 06 SureKeep Fase 0)
5
+ * para los 3 endpoints internos del Custom Auth Challenge flow (MFA).
6
+ *
7
+ * Consumidores: `cognito-backoffice-connector` desde los Lambda Triggers
8
+ * `defineAuthChallenge`, `createAuthChallenge` y `verifyAuthChallengeResponse`
9
+ * configurados en cada User Pool aprovisionado por la saga `TenantOnboardingManager`.
10
+ *
11
+ * Patrón de retorno: `Promise<ApiGatewayResponse<T>>` sin unwrap (v4 canonical Fiado).
12
+ * El consumer accede `result.body.data` para llegar al payload tipado.
13
+ *
14
+ * Env var requerida en el consumer: `PLATFORM_RBAC_BUSINESS_URL`.
15
+ * El template.yml del consumer la setea con:
16
+ *
17
+ * PLATFORM_RBAC_BUSINESS_URL: '{{resolve:ssm:platform-rbac-business}}'
18
+ *
19
+ * Convención CLAUDE.md global: SSM key = nombre del lambda owner de la URL.
20
+ */
21
+ export interface IPlatformRbacBusinessApi {
22
+ /**
23
+ * POST /internal/auth/define-next-challenge — decide el próximo challenge MFA
24
+ * según los resultados acumulados en `session`. Invocado por el trigger
25
+ * `defineAuthChallenge` en cada paso del Custom Auth Challenge flow.
26
+ */
27
+ defineNextChallenge(input: DefineNextChallengeRequest): Promise<ApiGatewayResponse<DefineNextChallengeResponse>>;
28
+ /**
29
+ * POST /internal/auth/prepare-challenge — prepara el challenge (genera y envía
30
+ * código OTP por email/SMS, o computa el `privateChallenge` para TOTP).
31
+ * Invocado por el trigger `createAuthChallenge`.
32
+ */
33
+ prepareChallenge(input: PrepareChallengeRequest): Promise<ApiGatewayResponse<PrepareChallengeResponse>>;
34
+ /**
35
+ * POST /internal/auth/verify-challenge — verifica la respuesta del usuario
36
+ * contra el `privateChallenge`. Invocado por el trigger
37
+ * `verifyAuthChallengeResponse`.
38
+ */
39
+ verifyChallenge(input: VerifyChallengeRequest): Promise<ApiGatewayResponse<VerifyChallengeResponse>>;
40
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ export * from "./api/interfaces/IPlatformRbacBusinessApi";
2
+ export { default as PlatformRbacBusinessApi } from "./api/PlatformRbacBusinessApi";
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ var __importDefault = (this && this.__importDefault) || function (mod) {
17
+ return (mod && mod.__esModule) ? mod : { "default": mod };
18
+ };
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ exports.PlatformRbacBusinessApi = void 0;
21
+ __exportStar(require("./api/interfaces/IPlatformRbacBusinessApi"), exports);
22
+ var PlatformRbacBusinessApi_1 = require("./api/PlatformRbacBusinessApi");
23
+ Object.defineProperty(exports, "PlatformRbacBusinessApi", { enumerable: true, get: function () { return __importDefault(PlatformRbacBusinessApi_1).default; } });
@@ -0,0 +1,16 @@
1
+ # TECH_DEBT — @fiado/api-invoker
2
+
3
+ Registro vivo de deudas conscientes del repo. Cada entrada con ID estable `TD-AI-NNN` y los 4 campos canónicos (contexto / asunción / condición para cerrar / bloqueante).
4
+
5
+ ## TD-AI-001 — 2026-05-29 — npm link @fiado/type-kit activo
6
+
7
+ - **Contexto:** `node_modules/@fiado/type-kit` es symlink local a `C:/Users/Fiado/Documents/Repos/fiado-type-kit/` (v3.43.1) — el publicado en CodeArtifact es v3.42.0 sin el módulo `platformRbac` que el Publisher `PlatformRbacBusinessApi` nuevo (`src/platformRbac/`) importa. El link se activó para iterar localmente sin publish prematuro del type-kit (decisión del user en el plan `2026-05-29-custom-auth-challenge-mfa.md`).
8
+ - **Asunción / pendiente:** el `npm run build` y `tsc --noEmit` funcionan con el link, pero CI y cualquier `npm install` fresh van a resolver desde CodeArtifact (3.42.0) y fallar con `TS2307: Cannot find module '@fiado/type-kit/bin/platformRbac'` en los 2 archivos nuevos del Publisher.
9
+ - **Condición para cerrar:** secuencia obligatoria al final del plan de auth (después de todas las tasks):
10
+ 1. `cd /c/Users/Fiado/Documents/Repos/fiado-type-kit && npm publish` (Andres ejecuta).
11
+ 2. `cd /c/Users/Fiado/fiado-workspace/fiado-api-invoker && npm unlink @fiado/type-kit`.
12
+ 3. Actualizar `package.json` del api-invoker con la version publicada del type-kit (`"@fiado/type-kit": "^3.43.1"`).
13
+ 4. `npm install` fresh.
14
+ 5. `npx tsc --noEmit` verde.
15
+ 6. `npm publish` del api-invoker en su nueva version (Andres ejecuta).
16
+ - **Bloqueante:** SÍ — el primer deploy productivo o CI run del api-invoker (y de cualquier consumer que bumpee a la 4.6.0) rompe si el publish del type-kit NO se materializó antes.
package/package.json CHANGED
@@ -1,36 +1,36 @@
1
- {
2
- "name": "@fiado/api-invoker",
3
- "version": "4.5.0",
4
- "description": "Sirve como un puente entre diferentes funciones lambda, facilitando la comunicación entre ellas a través de invocaciones http",
5
- "main": "bin/index.js",
6
- "types": "bin/index.d.ts",
7
- "scripts": {
8
- "test": "node --experimental-vm-modules node_modules/jest/bin/jest.js",
9
- "build": "tsc",
10
- "prepublishOnly": "npm run build"
11
- },
12
- "keywords": [],
13
- "author": "Fiado Inc",
14
- "license": "ISC",
15
- "dependencies": {
16
- "@aws-sdk/client-sqs": "^3.919.0",
17
- "@fiado/gateway-adapter": "^2.0.0",
18
- "@fiado/http-client": "^2.0.0",
19
- "@fiado/logger": "^1.0.3",
20
- "@fiado/type-kit": "^3.30.0",
21
- "dotenv": "^16.4.7"
22
- },
23
- "peerDependencies": {
24
- "inversify": "^8.0.0",
25
- "reflect-metadata": "^0.2.2"
26
- },
27
- "devDependencies": {
28
- "@types/jest": "^30.0.0",
29
- "@types/node": "^25.9.1",
30
- "inversify": "^8.1.0",
31
- "jest": "^30.4.2",
32
- "reflect-metadata": "^0.2.2",
33
- "ts-jest": "^29.4.11",
34
- "typescript": "^6.0.3"
35
- }
36
- }
1
+ {
2
+ "name": "@fiado/api-invoker",
3
+ "version": "4.6.0",
4
+ "description": "Sirve como un puente entre diferentes funciones lambda, facilitando la comunicación entre ellas a través de invocaciones http",
5
+ "main": "bin/index.js",
6
+ "types": "bin/index.d.ts",
7
+ "scripts": {
8
+ "test": "node --experimental-vm-modules node_modules/jest/bin/jest.js",
9
+ "build": "tsc",
10
+ "prepublishOnly": "npm run build"
11
+ },
12
+ "keywords": [],
13
+ "author": "Fiado Inc",
14
+ "license": "ISC",
15
+ "dependencies": {
16
+ "@aws-sdk/client-sqs": "^3.919.0",
17
+ "@fiado/gateway-adapter": "^2.0.0",
18
+ "@fiado/http-client": "^2.0.0",
19
+ "@fiado/logger": "^1.0.3",
20
+ "@fiado/type-kit": "^3.30.0",
21
+ "dotenv": "^16.4.7"
22
+ },
23
+ "peerDependencies": {
24
+ "inversify": "^8.0.0",
25
+ "reflect-metadata": "^0.2.2"
26
+ },
27
+ "devDependencies": {
28
+ "@types/jest": "^30.0.0",
29
+ "@types/node": "^25.9.1",
30
+ "inversify": "^8.1.0",
31
+ "jest": "^30.4.2",
32
+ "reflect-metadata": "^0.2.2",
33
+ "ts-jest": "^29.4.11",
34
+ "typescript": "^6.0.3"
35
+ }
36
+ }
@@ -1,19 +1,19 @@
1
- import { inject, injectable } from "inversify";
2
- import { IAccountBeneficiaryApi } from "./interfaces/IAccountBeneficiaryApi";
3
- import { IHttpRequest } from "@fiado/http-client";
4
- import { AccountBeneficiaryCreateRequest } from "@fiado/type-kit/bin/beneficiary";
5
- import { CountryId } from "@fiado/type-kit/bin/country";
6
-
7
-
8
- @injectable()
9
- export class AccountBeneficiaryApi implements IAccountBeneficiaryApi {
10
- private readonly baseUrl = process.env.ACCOUNT_BENEFICIARY_LAMBDA_URL || "";
11
-
12
- constructor(@inject("IHttpRequest") private httpRequest: IHttpRequest) {
13
- }
14
-
15
- async create(directoryId: string, countryId: CountryId, input: AccountBeneficiaryCreateRequest[]): Promise<void> {
16
- const url = `${this.baseUrl}${countryId}/users/${directoryId}`;
17
- return await this.httpRequest.post(url, input);
18
- }
1
+ import { inject, injectable } from "inversify";
2
+ import { IAccountBeneficiaryApi } from "./interfaces/IAccountBeneficiaryApi";
3
+ import { IHttpRequest } from "@fiado/http-client";
4
+ import { AccountBeneficiaryCreateRequest } from "@fiado/type-kit/bin/beneficiary";
5
+ import { CountryId } from "@fiado/type-kit/bin/country";
6
+
7
+
8
+ @injectable()
9
+ export class AccountBeneficiaryApi implements IAccountBeneficiaryApi {
10
+ private readonly baseUrl = process.env.ACCOUNT_BENEFICIARY_LAMBDA_URL || "";
11
+
12
+ constructor(@inject("IHttpRequest") private httpRequest: IHttpRequest) {
13
+ }
14
+
15
+ async create(directoryId: string, countryId: CountryId, input: AccountBeneficiaryCreateRequest[]): Promise<void> {
16
+ const url = `${this.baseUrl}${countryId}/users/${directoryId}`;
17
+ return await this.httpRequest.post(url, input);
18
+ }
19
19
  }
@@ -1,3 +1,3 @@
1
-
2
- export * from './interfaces/IAccountBeneficiaryApi';
1
+
2
+ export * from './interfaces/IAccountBeneficiaryApi';
3
3
  export * from './AccountBeneficiaryApi';
@@ -1,8 +1,8 @@
1
- import { AccountBeneficiaryCreateRequest } from "@fiado/type-kit/bin/beneficiary";
2
- import { CountryId } from "@fiado/type-kit/bin/country";
3
-
4
- export interface IAccountBeneficiaryApi {
5
-
6
- create(directoryId: string, countryId: CountryId, input: AccountBeneficiaryCreateRequest[]): Promise<void>;
7
-
1
+ import { AccountBeneficiaryCreateRequest } from "@fiado/type-kit/bin/beneficiary";
2
+ import { CountryId } from "@fiado/type-kit/bin/country";
3
+
4
+ export interface IAccountBeneficiaryApi {
5
+
6
+ create(directoryId: string, countryId: CountryId, input: AccountBeneficiaryCreateRequest[]): Promise<void>;
7
+
8
8
  }
@@ -1,127 +1,127 @@
1
- import { IHttpRequest } from "@fiado/http-client";
2
- import {
3
- AccountCreateRequest,
4
- AccountCreateResponse,
5
- AccountUpdateBalanceRequest,
6
- AccountUpdateRequest,
7
- ExecuteP2pOperationRequest,
8
- ExecuteP2pOperationResponse,
9
- ExecutePocketOperationRequest,
10
- ExecutePocketOperationResponse,
11
- GetAccountResponse,
12
- GetAccountResponseList,
13
- GetBankAccountUserResponse,
14
- GetPocketBalanceResponse
15
- } from "@fiado/type-kit/bin/account";
16
- import FiadoApiResponse from "@fiado/type-kit/bin/apiResponse/dtos/FiadoApiResponse";
17
- import { Provider, ProviderDocumentUploadRequest } from "@fiado/type-kit/bin/provider";
18
- import { inject, injectable } from "inversify";
19
- import { IAccountFiadoIncApi } from "./interfaces/IAccountFiadoIncApi";
20
- import { IPublisher } from "./queue/interfaces/IPublisher";
21
-
22
- @injectable()
23
- export default class AccountFiadoIncApi implements IAccountFiadoIncApi {
24
-
25
- private readonly baseUrl = process.env.ACCOUNT_FIADOINC_LAMBDA_URL || "";
26
-
27
- constructor(
28
- @inject("IHttpRequest") private readonly httpRequest: IHttpRequest,
29
- @inject("IPublisher") private readonly publisher: IPublisher
30
- ) {
31
- }
32
- async replaceExternalAccount(provider: Provider, directoryId: string, externalAccountId: string, isPrincipal: boolean): Promise<FiadoApiResponse<void>> {
33
- const url = `${this.baseUrl}${provider}/account/replace`;
34
- return await this.httpRequest.post(url, {directoryId,externalAccountId,isPrincipal});
35
- }
36
-
37
- /** ACCOUNTS **/
38
- async confirmUserCreation(provider: Provider, externalUserId: string, request: AccountCreateRequest): Promise<FiadoApiResponse<AccountCreateResponse>> {
39
- const url = `${this.baseUrl}${provider}/users/confirm/${externalUserId}`;
40
- return await this.httpRequest.put(url, request);
41
- }
42
-
43
- async createAccount(provider: Provider, data: AccountCreateRequest): Promise<FiadoApiResponse<AccountCreateResponse>> {
44
- const url = `${this.baseUrl}${provider}`;
45
- return await this.httpRequest.post(url, data);
46
- }
47
-
48
- async getAccountByDirectoryId(provider: Provider, directoryId: string): Promise<FiadoApiResponse<GetAccountResponse[]>> {
49
- const url = `${this.baseUrl}${provider}/users/${directoryId}/`;
50
- return await this.httpRequest.get(url);
51
- }
52
-
53
- async getAccountByExternalAccountId(provider: Provider, externalAccountId: string): Promise<FiadoApiResponse<GetAccountResponse[]>> {
54
- const url = `${this.baseUrl}${provider}/accounts/external/${externalAccountId}`;
55
- return await this.httpRequest.get(url);
56
- }
57
-
58
- async getExternalUser(provider: Provider, directoryId: string): Promise<FiadoApiResponse<GetBankAccountUserResponse>> {
59
- const url = `${this.baseUrl}${provider}/users/${directoryId}/external`;
60
- return await this.httpRequest.get(url);
61
- }
62
-
63
- async scanAllAccounts(provider: Provider | 'ALL', limit?: number, lastEvaluatedKey?: string): Promise<FiadoApiResponse<GetAccountResponseList>> {
64
- const queryParams = new URLSearchParams();
65
- queryParams.append('provider', provider);
66
- if (limit) queryParams.append('limit', limit.toString());
67
- if (lastEvaluatedKey) queryParams.append('lastEvaluatedKey', lastEvaluatedKey);
68
-
69
- const url = `${this.baseUrl}accounts/scan?${queryParams.toString()}`;
70
- return await this.httpRequest.get(url);
71
- }
72
-
73
- async scanAccountsByDateRange(provider: Provider | 'ALL', startDate: number, endDate: number, limit?: number, lastEvaluatedKey?: string): Promise<FiadoApiResponse<GetAccountResponseList>> {
74
- const queryParams = new URLSearchParams();
75
- queryParams.append('provider', provider);
76
- queryParams.append('startDate', startDate.toString());
77
- queryParams.append('endDate', endDate.toString());
78
- if (limit) queryParams.append('limit', limit.toString());
79
- if (lastEvaluatedKey) queryParams.append('lastEvaluatedKey', lastEvaluatedKey);
80
-
81
- const url = `${this.baseUrl}accounts/scan/by-date-range?${queryParams.toString()}`;
82
- return await this.httpRequest.get(url);
83
- }
84
-
85
- /** POCKETS **/
86
- async getPocketBalance(provider: Provider, directoryId: string): Promise<FiadoApiResponse<GetPocketBalanceResponse>> {
87
- const url = `${this.baseUrl}${provider}/pockets/users/${directoryId}/balance`;
88
- return await this.httpRequest.get(url);
89
- }
90
-
91
- async updatePocketBalance(provider: Provider, pocketId: string, request: AccountUpdateBalanceRequest): Promise<FiadoApiResponse<null>> {
92
- const url = `${this.baseUrl}${provider}/pockets/${pocketId}/balance`;
93
- return await this.httpRequest.put(url, request);
94
- }
95
-
96
- async getPocketBalanceById(provider: Provider, pocketId: string): Promise<FiadoApiResponse<GetPocketBalanceResponse>> {
97
- const url = `${this.baseUrl}${provider}/pockets/${pocketId}/balance`;
98
- return await this.httpRequest.get(url);
99
- }
100
-
101
- async deletePocket(provider: Provider, pocketId: string): Promise<FiadoApiResponse<void>> {
102
- const url = `${this.baseUrl}${provider}/pockets/${pocketId}`;
103
- return await this.httpRequest.delete(url);
104
- }
105
-
106
- /** TRANSACTIONS **/
107
-
108
- async executeP2pTransaction(provider: Provider, request: ExecuteP2pOperationRequest): Promise<FiadoApiResponse<ExecuteP2pOperationResponse>> {
109
- const url = `${this.baseUrl}${provider}/p2p/send`;
110
- return await this.httpRequest.post(url, request);
111
- }
112
-
113
- async executePocketTransaction(provider: Provider, pocketId: string, request: ExecutePocketOperationRequest): Promise<FiadoApiResponse<ExecutePocketOperationResponse[]>> {
114
- const url = `${this.baseUrl}${provider}/pockets/${pocketId}/transaction`;
115
- return await this.httpRequest.post(url, request);
116
- }
117
-
118
- /** USERS **/
119
- async update(provider: Provider, directoryId: string, data: AccountUpdateRequest): Promise<FiadoApiResponse<void>> {
120
- const url = `${this.baseUrl}${provider}/users/${directoryId}`;
121
- return await this.httpRequest.put(url, data);
122
- }
123
-
124
- async publish(provider: Provider, params: { externalUserId: string; input: ProviderDocumentUploadRequest }): Promise<void> {
125
- return await this.publisher.publish(provider, params);
126
- }
1
+ import { IHttpRequest } from "@fiado/http-client";
2
+ import {
3
+ AccountCreateRequest,
4
+ AccountCreateResponse,
5
+ AccountUpdateBalanceRequest,
6
+ AccountUpdateRequest,
7
+ ExecuteP2pOperationRequest,
8
+ ExecuteP2pOperationResponse,
9
+ ExecutePocketOperationRequest,
10
+ ExecutePocketOperationResponse,
11
+ GetAccountResponse,
12
+ GetAccountResponseList,
13
+ GetBankAccountUserResponse,
14
+ GetPocketBalanceResponse
15
+ } from "@fiado/type-kit/bin/account";
16
+ import FiadoApiResponse from "@fiado/type-kit/bin/apiResponse/dtos/FiadoApiResponse";
17
+ import { Provider, ProviderDocumentUploadRequest } from "@fiado/type-kit/bin/provider";
18
+ import { inject, injectable } from "inversify";
19
+ import { IAccountFiadoIncApi } from "./interfaces/IAccountFiadoIncApi";
20
+ import { IPublisher } from "./queue/interfaces/IPublisher";
21
+
22
+ @injectable()
23
+ export default class AccountFiadoIncApi implements IAccountFiadoIncApi {
24
+
25
+ private readonly baseUrl = process.env.ACCOUNT_FIADOINC_LAMBDA_URL || "";
26
+
27
+ constructor(
28
+ @inject("IHttpRequest") private readonly httpRequest: IHttpRequest,
29
+ @inject("IPublisher") private readonly publisher: IPublisher
30
+ ) {
31
+ }
32
+ async replaceExternalAccount(provider: Provider, directoryId: string, externalAccountId: string, isPrincipal: boolean): Promise<FiadoApiResponse<void>> {
33
+ const url = `${this.baseUrl}${provider}/account/replace`;
34
+ return await this.httpRequest.post(url, {directoryId,externalAccountId,isPrincipal});
35
+ }
36
+
37
+ /** ACCOUNTS **/
38
+ async confirmUserCreation(provider: Provider, externalUserId: string, request: AccountCreateRequest): Promise<FiadoApiResponse<AccountCreateResponse>> {
39
+ const url = `${this.baseUrl}${provider}/users/confirm/${externalUserId}`;
40
+ return await this.httpRequest.put(url, request);
41
+ }
42
+
43
+ async createAccount(provider: Provider, data: AccountCreateRequest): Promise<FiadoApiResponse<AccountCreateResponse>> {
44
+ const url = `${this.baseUrl}${provider}`;
45
+ return await this.httpRequest.post(url, data);
46
+ }
47
+
48
+ async getAccountByDirectoryId(provider: Provider, directoryId: string): Promise<FiadoApiResponse<GetAccountResponse[]>> {
49
+ const url = `${this.baseUrl}${provider}/users/${directoryId}/`;
50
+ return await this.httpRequest.get(url);
51
+ }
52
+
53
+ async getAccountByExternalAccountId(provider: Provider, externalAccountId: string): Promise<FiadoApiResponse<GetAccountResponse[]>> {
54
+ const url = `${this.baseUrl}${provider}/accounts/external/${externalAccountId}`;
55
+ return await this.httpRequest.get(url);
56
+ }
57
+
58
+ async getExternalUser(provider: Provider, directoryId: string): Promise<FiadoApiResponse<GetBankAccountUserResponse>> {
59
+ const url = `${this.baseUrl}${provider}/users/${directoryId}/external`;
60
+ return await this.httpRequest.get(url);
61
+ }
62
+
63
+ async scanAllAccounts(provider: Provider | 'ALL', limit?: number, lastEvaluatedKey?: string): Promise<FiadoApiResponse<GetAccountResponseList>> {
64
+ const queryParams = new URLSearchParams();
65
+ queryParams.append('provider', provider);
66
+ if (limit) queryParams.append('limit', limit.toString());
67
+ if (lastEvaluatedKey) queryParams.append('lastEvaluatedKey', lastEvaluatedKey);
68
+
69
+ const url = `${this.baseUrl}accounts/scan?${queryParams.toString()}`;
70
+ return await this.httpRequest.get(url);
71
+ }
72
+
73
+ async scanAccountsByDateRange(provider: Provider | 'ALL', startDate: number, endDate: number, limit?: number, lastEvaluatedKey?: string): Promise<FiadoApiResponse<GetAccountResponseList>> {
74
+ const queryParams = new URLSearchParams();
75
+ queryParams.append('provider', provider);
76
+ queryParams.append('startDate', startDate.toString());
77
+ queryParams.append('endDate', endDate.toString());
78
+ if (limit) queryParams.append('limit', limit.toString());
79
+ if (lastEvaluatedKey) queryParams.append('lastEvaluatedKey', lastEvaluatedKey);
80
+
81
+ const url = `${this.baseUrl}accounts/scan/by-date-range?${queryParams.toString()}`;
82
+ return await this.httpRequest.get(url);
83
+ }
84
+
85
+ /** POCKETS **/
86
+ async getPocketBalance(provider: Provider, directoryId: string): Promise<FiadoApiResponse<GetPocketBalanceResponse>> {
87
+ const url = `${this.baseUrl}${provider}/pockets/users/${directoryId}/balance`;
88
+ return await this.httpRequest.get(url);
89
+ }
90
+
91
+ async updatePocketBalance(provider: Provider, pocketId: string, request: AccountUpdateBalanceRequest): Promise<FiadoApiResponse<null>> {
92
+ const url = `${this.baseUrl}${provider}/pockets/${pocketId}/balance`;
93
+ return await this.httpRequest.put(url, request);
94
+ }
95
+
96
+ async getPocketBalanceById(provider: Provider, pocketId: string): Promise<FiadoApiResponse<GetPocketBalanceResponse>> {
97
+ const url = `${this.baseUrl}${provider}/pockets/${pocketId}/balance`;
98
+ return await this.httpRequest.get(url);
99
+ }
100
+
101
+ async deletePocket(provider: Provider, pocketId: string): Promise<FiadoApiResponse<void>> {
102
+ const url = `${this.baseUrl}${provider}/pockets/${pocketId}`;
103
+ return await this.httpRequest.delete(url);
104
+ }
105
+
106
+ /** TRANSACTIONS **/
107
+
108
+ async executeP2pTransaction(provider: Provider, request: ExecuteP2pOperationRequest): Promise<FiadoApiResponse<ExecuteP2pOperationResponse>> {
109
+ const url = `${this.baseUrl}${provider}/p2p/send`;
110
+ return await this.httpRequest.post(url, request);
111
+ }
112
+
113
+ async executePocketTransaction(provider: Provider, pocketId: string, request: ExecutePocketOperationRequest): Promise<FiadoApiResponse<ExecutePocketOperationResponse[]>> {
114
+ const url = `${this.baseUrl}${provider}/pockets/${pocketId}/transaction`;
115
+ return await this.httpRequest.post(url, request);
116
+ }
117
+
118
+ /** USERS **/
119
+ async update(provider: Provider, directoryId: string, data: AccountUpdateRequest): Promise<FiadoApiResponse<void>> {
120
+ const url = `${this.baseUrl}${provider}/users/${directoryId}`;
121
+ return await this.httpRequest.put(url, data);
122
+ }
123
+
124
+ async publish(provider: Provider, params: { externalUserId: string; input: ProviderDocumentUploadRequest }): Promise<void> {
125
+ return await this.publisher.publish(provider, params);
126
+ }
127
127
  }
@@ -1,5 +1,5 @@
1
- export * from './interfaces/IAccountFiadoIncApi';
2
- export * from './AccountFiadoIncApi';
3
-
4
- export * from './queue/interfaces/IPublisher';
1
+ export * from './interfaces/IAccountFiadoIncApi';
2
+ export * from './AccountFiadoIncApi';
3
+
4
+ export * from './queue/interfaces/IPublisher';
5
5
  export * from './queue/Publisher';