@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.
- package/.claude/settings.json +33 -33
- package/README.md +600 -600
- package/bin/container.config.js +3 -0
- package/bin/index.d.ts +1 -0
- package/bin/index.js +1 -0
- package/bin/platformRbac/api/PlatformRbacBusinessApi.d.ts +26 -0
- package/bin/platformRbac/api/PlatformRbacBusinessApi.js +54 -0
- package/bin/platformRbac/api/interfaces/IPlatformRbacBusinessApi.d.ts +40 -0
- package/bin/platformRbac/api/interfaces/IPlatformRbacBusinessApi.js +2 -0
- package/bin/platformRbac/index.d.ts +2 -0
- package/bin/platformRbac/index.js +23 -0
- package/docs/TECH_DEBT.md +16 -0
- package/package.json +36 -36
- package/src/account-beneficiary/AccountBeneficiaryApi.ts +18 -18
- package/src/account-beneficiary/index.ts +2 -2
- package/src/account-beneficiary/interfaces/IAccountBeneficiaryApi.ts +7 -7
- package/src/account-fiadoinc/AccountFiadoIncApi.ts +126 -126
- package/src/account-fiadoinc/index.ts +4 -4
- package/src/account-fiadoinc/interfaces/IAccountFiadoIncApi.ts +50 -50
- package/src/account-fiadoinc/queue/Publisher.ts +23 -23
- package/src/account-fiadoinc/queue/interfaces/IPublisher.ts +4 -4
- package/src/account-fiadosa/AccountFiadoSAApi.ts +38 -38
- package/src/account-fiadosa/index.ts +1 -1
- package/src/account-fiadosa/interfaces/IAccountFiadoSAApi.ts +16 -16
- package/src/account-pagoconfiado/AccountPagoConfiadoApi.ts +78 -78
- package/src/account-pagoconfiado/index.ts +2 -2
- package/src/account-pagoconfiado/interfaces/IAccountPagoConfiadoApi.ts +37 -37
- package/src/activity-business/ActivityApi.ts +36 -36
- package/src/activity-business/index.ts +5 -5
- package/src/activity-business/interfaces/IActivityApi.ts +13 -13
- package/src/activity-business/queue/ActivityPublisher.ts +30 -30
- package/src/activity-business/queue/IActivityPublisher.ts +4 -4
- package/src/address/AddressApi.ts +46 -46
- package/src/address/index.ts +3 -3
- package/src/address/interfaces/IAddressApi.ts +30 -30
- package/src/ai-engine-connector/AiEngineApi.ts +28 -28
- package/src/ai-engine-connector/index.ts +2 -2
- package/src/ai-engine-connector/interfaces/IAiEngineApi.ts +6 -6
- package/src/appselectondata/AppSelectionDataApi.ts +32 -32
- package/src/appselectondata/index.ts +2 -2
- package/src/appselectondata/interfaces/IAppSelectionDataApi.ts +17 -17
- package/src/authentication/AuthenticationApi.ts +29 -29
- package/src/authentication/index.ts +4 -4
- package/src/authentication/interfaces/IAuthenticationApi.ts +8 -8
- package/src/bankAccount/BankAccountApi.ts +34 -34
- package/src/bankAccount/index.ts +1 -1
- package/src/bankAccount/interfaces/IBankAccountApi.ts +6 -6
- package/src/bbvaRst/api/BBVARstApi.ts +16 -16
- package/src/bbvaRst/api/interfaces/IBBVARstApi.ts +4 -4
- package/src/bbvaRst/index.ts +1 -1
- package/src/benefits-marketplace/api/BenefitsMarketplaceApi.ts +35 -35
- package/src/benefits-marketplace/api/dtos/BenefitLeafDisplayResponse.ts +21 -21
- package/src/benefits-marketplace/api/interfaces/IBenefitsMarketplaceApi.ts +62 -62
- package/src/benefits-marketplace/index.ts +3 -3
- package/src/blacklist/BlackListApi.ts +19 -19
- package/src/blacklist/index.ts +2 -2
- package/src/blacklist/interfaces/IBlackListApi.ts +20 -20
- package/src/card/CardApi.ts +103 -103
- package/src/card/index.ts +3 -3
- package/src/card/interfaces/ICardApi.ts +32 -32
- package/src/card-business/index.ts +2 -2
- package/src/card-business/queue/CardBusinessPublisher.ts +23 -23
- package/src/card-business/queue/ICardBusinessPublisher.ts +10 -10
- package/src/centralPayments/CentralPaymentsConnectorApi.ts +317 -317
- package/src/centralPayments/index.ts +1 -1
- package/src/centralPayments/interfaces/ICentralPaymentsConnectorApi.ts +153 -153
- package/src/circuloCredito/api/CirculoCreditoApi.ts +21 -21
- package/src/circuloCredito/api/interfaces/ICirculoCreditoApi.ts +7 -7
- package/src/circuloCredito/index.ts +2 -2
- package/src/cnbv-business/CnbvApi.ts +31 -31
- package/src/cnbv-business/index.ts +4 -4
- package/src/cnbv-business/interfaces/ICnbvApi.ts +19 -19
- package/src/cnbv-connector/CnbvConnectorApi.ts +18 -18
- package/src/cnbv-connector/index.ts +1 -1
- package/src/cnbv-connector/interfaces/ICnbvConnectorApi.ts +6 -6
- package/src/cognitoBackofficeConnector/api/CognitoBackofficeConnectorApi.ts +254 -254
- package/src/cognitoBackofficeConnector/api/interfaces/ICognitoBackofficeConnectorApi.ts +181 -181
- package/src/cognitoBackofficeConnector/index.ts +2 -2
- package/src/cognitoConnector/CognitoConnectorApi.ts +110 -110
- package/src/cognitoConnector/CognitoConnectorV2.ts +87 -87
- package/src/cognitoConnector/index.ts +11 -11
- package/src/cognitoConnector/interfaces/ICognitoConnectorApi.ts +16 -16
- package/src/cognitoConnector/interfaces/ICognitoV2Api.ts +63 -63
- package/src/collector/CollectorApi.ts +97 -97
- package/src/collector/index.ts +2 -2
- package/src/collector/interfaces/ICollectorApi.ts +47 -47
- package/src/commission-business/CommissionBusinessApi.ts +19 -19
- package/src/commission-business/index.ts +3 -3
- package/src/commission-business/interfaces/ICommissionBusinessApi.ts +15 -15
- package/src/contactInformation/ContactInformationApi.ts +20 -20
- package/src/contactInformation/index.ts +2 -2
- package/src/contactInformation/interface/IContactInformationApi.ts +8 -8
- package/src/container.config.ts +281 -276
- package/src/contract-business/api/ContractBusinessApi.ts +37 -37
- package/src/contract-business/api/interfaces/IContractBusinessApi.ts +32 -32
- package/src/contract-business/index.ts +2 -2
- package/src/contract-generator/ContractGeneratorApi.ts +18 -18
- package/src/contract-generator/index.ts +2 -2
- package/src/contract-generator/interfaces/IContractGeneratorApi.ts +16 -16
- package/src/countries-business/CountriesBusinessApi.ts +26 -26
- package/src/countries-business/index.ts +2 -2
- package/src/countries-business/interfaces/ICountriesBusinessApi.ts +22 -22
- package/src/credit-engine/CreditEngineApi.ts +54 -54
- package/src/credit-engine/index.ts +17 -17
- package/src/credit-engine/interfaces/ICreditEngineApi.ts +46 -46
- package/src/credit-engine/queue/CreditCollectionPublisher.ts +24 -24
- package/src/credit-engine/queue/CreditDelinquencyPublisher.ts +24 -24
- package/src/credit-engine/queue/CreditIncomeDetectionPublisher.ts +24 -24
- package/src/credit-engine/queue/CreditLienCollectionPublisher.ts +24 -24
- package/src/credit-engine/queue/CreditNotificationPublisher.ts +24 -24
- package/src/credit-engine/queue/CreditOfferGenerationPublisher.ts +24 -24
- package/src/credit-engine/queue/CreditReconciliationPublisher.ts +24 -24
- package/src/credit-engine/queue/CreditScoringPublisher.ts +24 -24
- package/src/credit-engine/queue/CreditStatementPublisher.ts +24 -24
- package/src/credit-engine/queue/CreditTransferPublisher.ts +24 -24
- package/src/credit-engine/queue/interfaces/ICreditCollectionPublisher.ts +5 -5
- package/src/credit-engine/queue/interfaces/ICreditDelinquencyPublisher.ts +5 -5
- package/src/credit-engine/queue/interfaces/ICreditIncomeDetectionPublisher.ts +5 -5
- package/src/credit-engine/queue/interfaces/ICreditLienCollectionPublisher.ts +5 -5
- package/src/credit-engine/queue/interfaces/ICreditNotificationPublisher.ts +5 -5
- package/src/credit-engine/queue/interfaces/ICreditOfferGenerationPublisher.ts +5 -5
- package/src/credit-engine/queue/interfaces/ICreditReconciliationPublisher.ts +5 -5
- package/src/credit-engine/queue/interfaces/ICreditScoringPublisher.ts +5 -5
- package/src/credit-engine/queue/interfaces/ICreditStatementPublisher.ts +5 -5
- package/src/credit-engine/queue/interfaces/ICreditTransferPublisher.ts +5 -5
- package/src/credit-payment/CreditPaymentApi.ts +73 -73
- package/src/credit-payment/index.ts +2 -2
- package/src/credit-payment/interfaces/ICreditPaymentApi.ts +52 -52
- package/src/credit-statements/api/CreditStatementsApi.ts +25 -25
- package/src/credit-statements/api/interfaces/ICreditStatementsApi.ts +30 -30
- package/src/credit-statements/index.ts +2 -2
- package/src/device/DeviceApi.ts +32 -32
- package/src/device/index.ts +2 -2
- package/src/device/interfaces/IDeviceApi.ts +41 -41
- package/src/directories/DirectoriesApi.ts +63 -63
- package/src/directories/index.ts +3 -3
- package/src/directories/interfaces/IDirectoriesApi.ts +17 -17
- package/src/directory/DirectoryApi.ts +196 -196
- package/src/directory/index.ts +3 -3
- package/src/directory/interfaces/IDirectoryApi.ts +73 -73
- package/src/directorySetting/DirectorySettingApi.ts +42 -42
- package/src/directorySetting/index.ts +3 -3
- package/src/directorySetting/interfaces/IDirectorySettingApi.ts +56 -56
- package/src/disputes/DisputesApi.ts +50 -50
- package/src/disputes/index.ts +2 -2
- package/src/disputes/interfaces/IDisputesApi.ts +54 -54
- package/src/document-generator/DocumentGeneratorApi.ts +51 -51
- package/src/document-generator/index.ts +2 -2
- package/src/document-generator/interfaces/IDocumentGeneratorApi.ts +34 -34
- package/src/document-image-processor/DocumentImageProcessorApi.ts +22 -22
- package/src/document-image-processor/index.ts +1 -1
- package/src/document-image-processor/interfaces/IDocumentImageProcessorApi.ts +7 -7
- package/src/estafeta/api/EstafetaApi.ts +67 -67
- package/src/estafeta/api/interfaces/IEstafetaApi.ts +28 -28
- package/src/estafeta/index.ts +1 -1
- package/src/event-history-business/EventHistoryApi.ts +108 -108
- package/src/event-history-business/index.ts +3 -3
- package/src/event-history-business/interfaces/IEventHistoryApi.ts +47 -47
- package/src/exchangeRates/ExchangeRatesApi.ts +27 -27
- package/src/exchangeRates/index.ts +1 -1
- package/src/exchangeRates/interfaces/IExchangeRatesApi.ts +8 -8
- package/src/fiadoMessages/api/FiadoMessagesApi.ts +20 -20
- package/src/fiadoMessages/api/interfaces/IFiadoMessagesApi.ts +2 -2
- package/src/fiadoMessages/index.ts +1 -1
- package/src/firebase-connector/FirebaseConnectorApi.ts +53 -53
- package/src/firebase-connector/index.ts +3 -3
- package/src/firebase-connector/interfaces/IFirebaseConnectorApi.ts +6 -6
- package/src/fraudPreventionEngine/api/FraudPreventionEngineApi.ts +22 -22
- package/src/fraudPreventionEngine/api/interfaces/IFraudPreventionEngineApi.ts +7 -7
- package/src/fraudPreventionEngine/index.ts +1 -1
- package/src/group/GroupApi.ts +69 -69
- package/src/group/index.ts +1 -1
- package/src/group/interfaces/IGroupApi.ts +40 -40
- package/src/identity/IdentityApi.ts +95 -95
- package/src/identity/index.ts +3 -3
- package/src/identity/interfaces/IIdentityApi.ts +46 -46
- package/src/index.ts +77 -76
- package/src/legalDocument/api/LegalDocumentApi.ts +38 -38
- package/src/legalDocument/api/interfaces/ILegalDocumentApi.ts +7 -7
- package/src/legalDocument/index.ts +3 -3
- package/src/milestone-business/api/MilestoneBusinessApi.ts +26 -26
- package/src/milestone-business/api/interfaces/IMilestoneBusinessApi.ts +9 -9
- package/src/milestone-business/index.ts +2 -2
- package/src/multicommServicePayment/api/MulticommServicePaymentApi.ts +94 -94
- package/src/multicommServicePayment/api/interfaces/IMulticommServicePaymentApi.ts +44 -44
- package/src/multicommServicePayment/index.ts +1 -1
- package/src/notificationMessages/index.ts +1 -1
- package/src/notificationMessages/queue/NotificationMessagePublisher.ts +42 -42
- package/src/notificationMessages/queue/interfaces/INotificationMessagesPublisher.ts +7 -7
- package/src/notificationWebsockets/index.ts +1 -1
- package/src/notificationWebsockets/queue/NotificationWSMessagePublisher.ts +29 -29
- package/src/notificationWebsockets/queue/interfaces/INotificationWSMessagesPublisher.ts +4 -4
- package/src/observations/ObservationsApi.ts +23 -23
- package/src/observations/index.ts +3 -3
- package/src/observations/interfaces/IObservationsApi.ts +9 -9
- package/src/onboarding/api/OnboardingApi.ts +23 -23
- package/src/onboarding/api/interfaces/IOnboardingApi.ts +3 -3
- package/src/onboarding/index.ts +1 -1
- package/src/onboarding-business/api/OnboardingBusinessApi.ts +210 -210
- package/src/onboarding-business/api/interfaces/IOnboardingBusinessApi.ts +9 -9
- package/src/onboarding-business/index.ts +1 -1
- package/src/order-collector-business/OrderCollectorApi.ts +20 -20
- package/src/order-collector-business/index.ts +3 -3
- package/src/order-collector-business/interfaces/IOrderCollectorApi.ts +9 -9
- package/src/p2pContact/api/P2pContactApi.ts +19 -19
- package/src/p2pContact/api/interfaces/IP2pContactApi.ts +4 -4
- package/src/p2pContact/index.ts +1 -1
- package/src/payroll-business/PayrollApi.ts +19 -19
- package/src/payroll-business/index.ts +1 -1
- package/src/payroll-business/interfaces/IPayrollApi.ts +18 -18
- package/src/people-business/api/PeopleBusinessApi.ts +32 -32
- package/src/people-business/api/interfaces/IPeopleBusinessApi.ts +7 -7
- package/src/people-business/index.ts +1 -1
- package/src/platform-error-events/index.ts +2 -2
- package/src/platform-error-events/queue/PlatformErrorEventsPublisher.ts +24 -24
- package/src/platform-error-events/queue/interfaces/IPlatformErrorEventsPublisher.ts +5 -5
- package/src/platformRbac/api/PlatformRbacBusinessApi.ts +55 -0
- package/src/platformRbac/api/interfaces/IPlatformRbacBusinessApi.ts +56 -0
- package/src/platformRbac/index.ts +2 -0
- package/src/pomelo/api/PomeloApi.ts +109 -109
- package/src/pomelo/api/interfaces/IPomeloApi.ts +29 -29
- package/src/pomelo/index.ts +1 -1
- package/src/pomeloProcessor/api/PomeloProcessorApi.ts +17 -17
- package/src/pomeloProcessor/api/interfaces/IPomeloProcessorApi.ts +2 -2
- package/src/pomeloProcessor/index.ts +2 -2
- package/src/pricelist-business/PriceListApi.ts +45 -45
- package/src/pricelist-business/index.ts +1 -1
- package/src/pricelist-business/interfaces/IPriceListApi.ts +16 -16
- package/src/product-catalog/ProductCatalogApi.ts +17 -17
- package/src/product-catalog/index.ts +1 -1
- package/src/product-catalog/interfaces/IProductCatalogApi.ts +6 -6
- package/src/product-payment/api/ProductPaymentApi.ts +25 -25
- package/src/product-payment/api/interfaces/IProductPaymentApi.ts +8 -8
- package/src/product-payment/index.ts +1 -1
- package/src/referral-business/ReferralBusinessApi.ts +37 -37
- package/src/referral-business/index.ts +1 -1
- package/src/referral-business/interfaces/IReferralBusinessApi.ts +38 -38
- package/src/report-processor-business/api/IReportProcessorBusinessApi.ts +4 -4
- package/src/report-processor-business/api/ReportProcessorBusinessApi.ts +17 -17
- package/src/report-processor-business/index.ts +5 -5
- package/src/riskProfile/api/RiskProfileApi.ts +63 -63
- package/src/riskProfile/api/TransactionAlertApi.ts +49 -49
- package/src/riskProfile/api/interfaces/IRiskProfileApi.ts +51 -51
- package/src/riskProfile/api/interfaces/ITransactionAlertApi.ts +70 -70
- package/src/riskProfile/index.ts +7 -7
- package/src/riskProfile/queue/TransactionAlarmPublisher.ts +25 -25
- package/src/riskProfile/queue/interfaces/ITransactionAlarmPublisher.ts +4 -4
- package/src/service-business/ServiceApi.ts +78 -78
- package/src/service-business/index.ts +2 -2
- package/src/service-business/interfaces/IServiceApi.ts +73 -73
- package/src/sessionActivity/index.ts +2 -2
- package/src/sessionActivity/queue/SessionActivityPublisher.ts +23 -23
- package/src/sessionActivity/queue/interfaces/ISessionActivityPublisher.ts +4 -4
- package/src/stp-business/api/STPBusinessApi.ts +32 -32
- package/src/stp-business/api/interfaces/ISTPBusinessApi.ts +15 -15
- package/src/stp-business/index.ts +1 -1
- package/src/stpAccount/api/STPAccountApi.ts +111 -111
- package/src/stpAccount/api/interfaces/ISTPAccountApi.ts +7 -7
- package/src/stpAccount/index.ts +1 -1
- package/src/stpServicePayment/api/StpServicePaymentApi.ts +94 -94
- package/src/stpServicePayment/api/interfaces/IStpServicePaymentApi.ts +44 -44
- package/src/stpServicePayment/index.ts +1 -1
- package/src/stpSpei/api/StpSpeiApi.ts +32 -32
- package/src/stpSpei/api/interfaces/IStpSpeiApi.ts +6 -6
- package/src/stpSpei/index.ts +1 -1
- package/src/teams-connector/index.ts +2 -2
- package/src/teams-connector/queue/TeamsNotificationPublisher.ts +24 -24
- package/src/teams-connector/queue/interfaces/ITeamsNotificationPublisher.ts +5 -5
- package/src/tern/api/TernApi.ts +147 -147
- package/src/tern/api/interfaces/ITernApi.ts +54 -54
- package/src/tern/index.ts +1 -1
- package/src/transaction/api/TransactionApi.ts +157 -157
- package/src/transaction/api/interfaces/ITransactionApi.ts +82 -82
- package/src/transaction/index.ts +5 -5
- package/src/transaction/queue/TransactionPublisher.ts +25 -25
- package/src/transaction/queue/interfaces/ITransactionPublisher.ts +4 -4
- package/src/transactionProcessor/api/TransactionProcessorApi.ts +57 -57
- package/src/transactionProcessor/api/interfaces/ITransactionProcessorApi.ts +28 -28
- package/src/transactionProcessor/index.ts +1 -1
- package/src/uniteller-connector/api/UnitellerConnectorApi.ts +113 -113
- package/src/uniteller-connector/api/interfaces/IUnitellerConnectorApi.ts +85 -85
- package/src/uniteller-connector/index.ts +2 -2
- package/src/utils/InvokerUtils.ts +18 -18
- package/src/zendesk/ZendeskApi.ts +24 -24
- package/src/zendesk/index.ts +3 -3
- package/src/zendesk/interfaces/IZendeskApi.ts +10 -10
package/bin/container.config.js
CHANGED
|
@@ -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
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,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.
|
|
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';
|