@fiado/api-invoker 4.14.0 → 4.16.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/bin/platformRbac/api/PlatformRbacBusinessApi.d.ts +2 -1
- package/bin/platformRbac/api/PlatformRbacBusinessApi.js +4 -0
- package/bin/platformRbac/api/interfaces/IPlatformRbacBusinessApi.d.ts +8 -1
- package/bin/uniteller-connector/api/UnitellerConnectorApi.d.ts +21 -1
- package/bin/uniteller-connector/api/UnitellerConnectorApi.js +31 -0
- package/bin/uniteller-connector/api/interfaces/IUnitellerConnectorApi.d.ts +23 -1
- package/package.json +2 -2
- package/src/platformRbac/api/PlatformRbacBusinessApi.ts +8 -0
- package/src/platformRbac/api/interfaces/IPlatformRbacBusinessApi.ts +11 -0
- package/src/uniteller-connector/api/UnitellerConnectorApi.ts +46 -0
- package/src/uniteller-connector/api/interfaces/IUnitellerConnectorApi.ts +18 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { IHttpRequest } from "@fiado/http-client";
|
|
2
2
|
import { ApiGatewayResponse } from "@fiado/gateway-adapter";
|
|
3
|
-
import { DefineNextChallengeRequest, DefineNextChallengeResponse, PrepareChallengeRequest, PrepareChallengeResponse, VerifyChallengeRequest, VerifyChallengeResponse, AuthorizeRequest, AuthorizeResponse } from "@fiado/type-kit/bin/platformRbac";
|
|
3
|
+
import { DefineNextChallengeRequest, DefineNextChallengeResponse, PrepareChallengeRequest, PrepareChallengeResponse, VerifyChallengeRequest, VerifyChallengeResponse, AuthorizeRequest, AuthorizeResponse, EffectivePermissionsResponse } from "@fiado/type-kit/bin/platformRbac";
|
|
4
4
|
import { IPlatformRbacBusinessApi } from "./interfaces/IPlatformRbacBusinessApi";
|
|
5
5
|
/**
|
|
6
6
|
* Publisher HTTP del lambda `platform-rbac-business` (componente 06 SureKeep Fase 0)
|
|
@@ -24,4 +24,5 @@ export default class PlatformRbacBusinessApi implements IPlatformRbacBusinessApi
|
|
|
24
24
|
prepareChallenge(input: PrepareChallengeRequest): Promise<ApiGatewayResponse<PrepareChallengeResponse>>;
|
|
25
25
|
verifyChallenge(input: VerifyChallengeRequest): Promise<ApiGatewayResponse<VerifyChallengeResponse>>;
|
|
26
26
|
authorize(input: AuthorizeRequest): Promise<ApiGatewayResponse<AuthorizeResponse>>;
|
|
27
|
+
effectivePermissions(cognitoSub: string): Promise<ApiGatewayResponse<EffectivePermissionsResponse>>;
|
|
27
28
|
}
|
|
@@ -49,6 +49,10 @@ let PlatformRbacBusinessApi = class PlatformRbacBusinessApi {
|
|
|
49
49
|
const url = `${this.baseUrl}/internal/authorize`;
|
|
50
50
|
return await this.httpRequest.post(url, input);
|
|
51
51
|
}
|
|
52
|
+
async effectivePermissions(cognitoSub) {
|
|
53
|
+
const url = `${this.baseUrl}/internal/users/${encodeURIComponent(cognitoSub)}/effective-permissions`;
|
|
54
|
+
return await this.httpRequest.get(url);
|
|
55
|
+
}
|
|
52
56
|
};
|
|
53
57
|
PlatformRbacBusinessApi = __decorate([
|
|
54
58
|
(0, inversify_1.injectable)(),
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ApiGatewayResponse } from "@fiado/gateway-adapter";
|
|
2
|
-
import { DefineNextChallengeRequest, DefineNextChallengeResponse, PrepareChallengeRequest, PrepareChallengeResponse, VerifyChallengeRequest, VerifyChallengeResponse, AuthorizeRequest, AuthorizeResponse } from "@fiado/type-kit/bin/platformRbac";
|
|
2
|
+
import { DefineNextChallengeRequest, DefineNextChallengeResponse, PrepareChallengeRequest, PrepareChallengeResponse, VerifyChallengeRequest, VerifyChallengeResponse, AuthorizeRequest, AuthorizeResponse, EffectivePermissionsResponse } from "@fiado/type-kit/bin/platformRbac";
|
|
3
3
|
/**
|
|
4
4
|
* Contrato del publisher HTTP del lambda `platform-rbac-business` (componente 06 SureKeep Fase 0)
|
|
5
5
|
* para los 3 endpoints internos del Custom Auth Challenge flow (MFA).
|
|
@@ -45,4 +45,11 @@ export interface IPlatformRbacBusinessApi {
|
|
|
45
45
|
* resuelve permisos efectivos y devuelve `{ allow, reason?, context? }`.
|
|
46
46
|
*/
|
|
47
47
|
authorize(input: AuthorizeRequest): Promise<ApiGatewayResponse<AuthorizeResponse>>;
|
|
48
|
+
/**
|
|
49
|
+
* GET /internal/users/{cognitoSub}/effective-permissions — resuelve los permisos
|
|
50
|
+
* efectivos (más epoch y role assignments) de un usuario. Invocado por el
|
|
51
|
+
* `jwt-inyector-trigger` al emitir el token para embeber el bitset RBAC.
|
|
52
|
+
* El `cognitoSub` va en el path param (encodeURIComponent en el publisher).
|
|
53
|
+
*/
|
|
54
|
+
effectivePermissions(cognitoSub: string): Promise<ApiGatewayResponse<EffectivePermissionsResponse>>;
|
|
48
55
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { IHttpRequest } from "@fiado/http-client";
|
|
2
2
|
import { ApiGatewayResponse } from "@fiado/gateway-adapter";
|
|
3
3
|
import { ConnectorCatalogItem } from "@fiado/type-kit/bin/benefitCenter";
|
|
4
|
-
import { RemittanceAddBeneficiaryRequest, RemittanceBeneficiary, RemittanceCancelRequest, RemittanceCancelResponse, RemittanceHomeResponse, RemittanceListBeneficiariesResponse, RemittanceOnboardRequest, RemittanceOnboardResponse, RemittancePayRequest, RemittancePayResponse, RemittancePayerAdditionalFieldDto, RemittancePayerBranchDto, RemittancePayerDto, RemittanceQuoteRequest, RemittanceQuoteResponse, RemittanceSecurityQuestionsResponse, RemittanceSendPreviewRequest, RemittanceSendPreviewResponse, RemittanceSmsRequest, RemittanceStateDto, RemittanceTransactionDetail, RemittanceTransactionReceipt, RemittanceTransactionsListRequest, RemittanceTransactionsListResponse, RemittanceUpdateBeneficiaryRequest } from "@fiado/type-kit/bin/remittance";
|
|
4
|
+
import { RemittanceAddBeneficiaryRequest, RemittanceBackofficeDashboardSummary, RemittanceBackofficeStats, RemittanceBackofficeStatsPeriod, RemittanceBackofficeTransaction, RemittanceBackofficeTxListResponse, RemittanceBackofficeUserDetail, RemittanceBackofficeUserListResponse, RemittanceBeneficiary, RemittanceCancelRequest, RemittanceCancelResponse, RemittanceHomeResponse, RemittanceListBeneficiariesResponse, RemittanceOnboardRequest, RemittanceOnboardResponse, RemittancePayRequest, RemittancePayResponse, RemittancePayerAdditionalFieldDto, RemittancePayerBranchDto, RemittancePayerDto, RemittanceQuoteRequest, RemittanceQuoteResponse, RemittanceSecurityQuestionsResponse, RemittanceSendPreviewRequest, RemittanceSendPreviewResponse, RemittanceSmsRequest, RemittanceStateDto, RemittanceTransactionDetail, RemittanceTransactionReceipt, RemittanceTransactionsListRequest, RemittanceTransactionsListResponse, RemittanceUpdateBeneficiaryRequest } from "@fiado/type-kit/bin/remittance";
|
|
5
5
|
import { IUnitellerConnectorApi } from "./interfaces/IUnitellerConnectorApi";
|
|
6
6
|
export default class UnitellerConnectorApi implements IUnitellerConnectorApi {
|
|
7
7
|
private httpRequest;
|
|
@@ -44,4 +44,24 @@ export default class UnitellerConnectorApi implements IUnitellerConnectorApi {
|
|
|
44
44
|
smsTransactionAlert(directoryId: string, txNumber: string, request: RemittanceSmsRequest): Promise<ApiGatewayResponse<{
|
|
45
45
|
sent: boolean;
|
|
46
46
|
}>>;
|
|
47
|
+
backofficeDashboard(): Promise<ApiGatewayResponse<RemittanceBackofficeDashboardSummary>>;
|
|
48
|
+
backofficeListUsers(filters?: {
|
|
49
|
+
status?: string;
|
|
50
|
+
email?: string;
|
|
51
|
+
pageSize?: number;
|
|
52
|
+
index?: string;
|
|
53
|
+
}): Promise<ApiGatewayResponse<RemittanceBackofficeUserListResponse>>;
|
|
54
|
+
backofficeUserDetail(directoryId: string): Promise<ApiGatewayResponse<RemittanceBackofficeUserDetail>>;
|
|
55
|
+
backofficeListTransactions(filters?: {
|
|
56
|
+
txNumber?: string;
|
|
57
|
+
directoryId?: string;
|
|
58
|
+
status?: string;
|
|
59
|
+
countryISO?: string;
|
|
60
|
+
from?: string;
|
|
61
|
+
to?: string;
|
|
62
|
+
pageSize?: number;
|
|
63
|
+
index?: string;
|
|
64
|
+
}): Promise<ApiGatewayResponse<RemittanceBackofficeTxListResponse>>;
|
|
65
|
+
backofficeTransactionDetail(txNumber: string): Promise<ApiGatewayResponse<RemittanceBackofficeTransaction>>;
|
|
66
|
+
backofficeStats(period: RemittanceBackofficeStatsPeriod): Promise<ApiGatewayResponse<RemittanceBackofficeStats>>;
|
|
47
67
|
}
|
|
@@ -115,6 +115,30 @@ let UnitellerConnectorApi = class UnitellerConnectorApi {
|
|
|
115
115
|
const url = `${this.baseUrl}/transactions/${encodeURIComponent(txNumber)}/sms`;
|
|
116
116
|
return await this.httpRequest.post(url, { directoryId, ...request });
|
|
117
117
|
}
|
|
118
|
+
async backofficeDashboard() {
|
|
119
|
+
const url = `${this.baseUrl}/backoffice/dashboard`;
|
|
120
|
+
return await this.httpRequest.get(url);
|
|
121
|
+
}
|
|
122
|
+
async backofficeListUsers(filters) {
|
|
123
|
+
const url = `${this.baseUrl}/backoffice/users`;
|
|
124
|
+
return await this.httpRequest.get(url, dropUndefined(filters));
|
|
125
|
+
}
|
|
126
|
+
async backofficeUserDetail(directoryId) {
|
|
127
|
+
const url = `${this.baseUrl}/backoffice/users/${encodeURIComponent(directoryId)}`;
|
|
128
|
+
return await this.httpRequest.get(url);
|
|
129
|
+
}
|
|
130
|
+
async backofficeListTransactions(filters) {
|
|
131
|
+
const url = `${this.baseUrl}/backoffice/transactions`;
|
|
132
|
+
return await this.httpRequest.get(url, dropUndefined(filters));
|
|
133
|
+
}
|
|
134
|
+
async backofficeTransactionDetail(txNumber) {
|
|
135
|
+
const url = `${this.baseUrl}/backoffice/transactions/${encodeURIComponent(txNumber)}`;
|
|
136
|
+
return await this.httpRequest.get(url);
|
|
137
|
+
}
|
|
138
|
+
async backofficeStats(period) {
|
|
139
|
+
const url = `${this.baseUrl}/backoffice/stats`;
|
|
140
|
+
return await this.httpRequest.get(url, { period });
|
|
141
|
+
}
|
|
118
142
|
};
|
|
119
143
|
UnitellerConnectorApi = __decorate([
|
|
120
144
|
(0, inversify_1.injectable)(),
|
|
@@ -122,3 +146,10 @@ UnitellerConnectorApi = __decorate([
|
|
|
122
146
|
__metadata("design:paramtypes", [Object])
|
|
123
147
|
], UnitellerConnectorApi);
|
|
124
148
|
exports.default = UnitellerConnectorApi;
|
|
149
|
+
/** Quita las keys undefined para no mandar query params vacíos. */
|
|
150
|
+
function dropUndefined(params) {
|
|
151
|
+
if (!params)
|
|
152
|
+
return undefined;
|
|
153
|
+
const clean = Object.fromEntries(Object.entries(params).filter(([, value]) => value !== undefined));
|
|
154
|
+
return Object.keys(clean).length > 0 ? clean : undefined;
|
|
155
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ApiGatewayResponse } from "@fiado/gateway-adapter";
|
|
2
2
|
import { ConnectorCatalogItem } from "@fiado/type-kit/bin/benefitCenter";
|
|
3
|
-
import { RemittanceAddBeneficiaryRequest, RemittanceBeneficiary, RemittanceCancelRequest, RemittanceCancelResponse, RemittanceHomeResponse, RemittanceListBeneficiariesResponse, RemittanceOnboardRequest, RemittanceOnboardResponse, RemittancePayRequest, RemittancePayResponse, RemittancePayerAdditionalFieldDto, RemittancePayerBranchDto, RemittancePayerDto, RemittanceQuoteRequest, RemittanceQuoteResponse, RemittanceSecurityQuestionsResponse, RemittanceSendPreviewRequest, RemittanceSendPreviewResponse, RemittanceSmsRequest, RemittanceStateDto, RemittanceTransactionDetail, RemittanceTransactionReceipt, RemittanceTransactionsListRequest, RemittanceTransactionsListResponse, RemittanceUpdateBeneficiaryRequest } from "@fiado/type-kit/bin/remittance";
|
|
3
|
+
import { RemittanceAddBeneficiaryRequest, RemittanceBackofficeDashboardSummary, RemittanceBackofficeStats, RemittanceBackofficeStatsPeriod, RemittanceBackofficeTransaction, RemittanceBackofficeTxListResponse, RemittanceBackofficeUserDetail, RemittanceBackofficeUserListResponse, RemittanceBeneficiary, RemittanceCancelRequest, RemittanceCancelResponse, RemittanceHomeResponse, RemittanceListBeneficiariesResponse, RemittanceOnboardRequest, RemittanceOnboardResponse, RemittancePayRequest, RemittancePayResponse, RemittancePayerAdditionalFieldDto, RemittancePayerBranchDto, RemittancePayerDto, RemittanceQuoteRequest, RemittanceQuoteResponse, RemittanceSecurityQuestionsResponse, RemittanceSendPreviewRequest, RemittanceSendPreviewResponse, RemittanceSmsRequest, RemittanceStateDto, RemittanceTransactionDetail, RemittanceTransactionReceipt, RemittanceTransactionsListRequest, RemittanceTransactionsListResponse, RemittanceUpdateBeneficiaryRequest } from "@fiado/type-kit/bin/remittance";
|
|
4
4
|
export interface IUnitellerConnectorApi {
|
|
5
5
|
/** Estado del módulo remesas para un directoryId. */
|
|
6
6
|
getHome(directoryId: string): Promise<ApiGatewayResponse<RemittanceHomeResponse>>;
|
|
@@ -81,4 +81,26 @@ export interface IUnitellerConnectorApi {
|
|
|
81
81
|
smsTransactionAlert(directoryId: string, txNumber: string, request: RemittanceSmsRequest): Promise<ApiGatewayResponse<{
|
|
82
82
|
sent: boolean;
|
|
83
83
|
}>>;
|
|
84
|
+
backofficeDashboard(): Promise<ApiGatewayResponse<RemittanceBackofficeDashboardSummary>>;
|
|
85
|
+
/** Filtros: status (default ACTIVE en el connector) | email (lookup exacto); pageSize 1-100; index cursor opaco. */
|
|
86
|
+
backofficeListUsers(filters?: {
|
|
87
|
+
status?: string;
|
|
88
|
+
email?: string;
|
|
89
|
+
pageSize?: number;
|
|
90
|
+
index?: string;
|
|
91
|
+
}): Promise<ApiGatewayResponse<RemittanceBackofficeUserListResponse>>;
|
|
92
|
+
backofficeUserDetail(directoryId: string): Promise<ApiGatewayResponse<RemittanceBackofficeUserDetail>>;
|
|
93
|
+
/** Requiere al menos uno de txNumber | directoryId | status (el connector responde 400 si no). */
|
|
94
|
+
backofficeListTransactions(filters?: {
|
|
95
|
+
txNumber?: string;
|
|
96
|
+
directoryId?: string;
|
|
97
|
+
status?: string;
|
|
98
|
+
countryISO?: string;
|
|
99
|
+
from?: string;
|
|
100
|
+
to?: string;
|
|
101
|
+
pageSize?: number;
|
|
102
|
+
index?: string;
|
|
103
|
+
}): Promise<ApiGatewayResponse<RemittanceBackofficeTxListResponse>>;
|
|
104
|
+
backofficeTransactionDetail(txNumber: string): Promise<ApiGatewayResponse<RemittanceBackofficeTransaction>>;
|
|
105
|
+
backofficeStats(period: RemittanceBackofficeStatsPeriod): Promise<ApiGatewayResponse<RemittanceBackofficeStats>>;
|
|
84
106
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fiado/api-invoker",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.16.0",
|
|
4
4
|
"description": "Sirve como un puente entre diferentes funciones lambda, facilitando la comunicación entre ellas a través de invocaciones http",
|
|
5
5
|
"main": "bin/index.js",
|
|
6
6
|
"types": "bin/index.d.ts",
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"@fiado/gateway-adapter": "^2.0.0",
|
|
18
18
|
"@fiado/http-client": "^2.0.0",
|
|
19
19
|
"@fiado/logger": "^1.0.3",
|
|
20
|
-
"@fiado/type-kit": "^3.
|
|
20
|
+
"@fiado/type-kit": "^3.71.0",
|
|
21
21
|
"dotenv": "^16.4.7"
|
|
22
22
|
},
|
|
23
23
|
"peerDependencies": {
|
|
@@ -11,6 +11,7 @@ import {
|
|
|
11
11
|
VerifyChallengeResponse,
|
|
12
12
|
AuthorizeRequest,
|
|
13
13
|
AuthorizeResponse,
|
|
14
|
+
EffectivePermissionsResponse,
|
|
14
15
|
} from "@fiado/type-kit/bin/platformRbac";
|
|
15
16
|
import { IPlatformRbacBusinessApi } from "./interfaces/IPlatformRbacBusinessApi";
|
|
16
17
|
|
|
@@ -61,4 +62,11 @@ export default class PlatformRbacBusinessApi implements IPlatformRbacBusinessApi
|
|
|
61
62
|
const url = `${this.baseUrl}/internal/authorize`;
|
|
62
63
|
return await this.httpRequest.post(url, input);
|
|
63
64
|
}
|
|
65
|
+
|
|
66
|
+
async effectivePermissions(
|
|
67
|
+
cognitoSub: string,
|
|
68
|
+
): Promise<ApiGatewayResponse<EffectivePermissionsResponse>> {
|
|
69
|
+
const url = `${this.baseUrl}/internal/users/${encodeURIComponent(cognitoSub)}/effective-permissions`;
|
|
70
|
+
return await this.httpRequest.get(url);
|
|
71
|
+
}
|
|
64
72
|
}
|
|
@@ -8,6 +8,7 @@ import {
|
|
|
8
8
|
VerifyChallengeResponse,
|
|
9
9
|
AuthorizeRequest,
|
|
10
10
|
AuthorizeResponse,
|
|
11
|
+
EffectivePermissionsResponse,
|
|
11
12
|
} from "@fiado/type-kit/bin/platformRbac";
|
|
12
13
|
|
|
13
14
|
/**
|
|
@@ -66,4 +67,14 @@ export interface IPlatformRbacBusinessApi {
|
|
|
66
67
|
authorize(
|
|
67
68
|
input: AuthorizeRequest,
|
|
68
69
|
): Promise<ApiGatewayResponse<AuthorizeResponse>>;
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* GET /internal/users/{cognitoSub}/effective-permissions — resuelve los permisos
|
|
73
|
+
* efectivos (más epoch y role assignments) de un usuario. Invocado por el
|
|
74
|
+
* `jwt-inyector-trigger` al emitir el token para embeber el bitset RBAC.
|
|
75
|
+
* El `cognitoSub` va en el path param (encodeURIComponent en el publisher).
|
|
76
|
+
*/
|
|
77
|
+
effectivePermissions(
|
|
78
|
+
cognitoSub: string,
|
|
79
|
+
): Promise<ApiGatewayResponse<EffectivePermissionsResponse>>;
|
|
69
80
|
}
|
|
@@ -4,6 +4,13 @@ import { ApiGatewayResponse } from "@fiado/gateway-adapter";
|
|
|
4
4
|
import { ConnectorCatalogItem } from "@fiado/type-kit/bin/benefitCenter";
|
|
5
5
|
import {
|
|
6
6
|
RemittanceAddBeneficiaryRequest,
|
|
7
|
+
RemittanceBackofficeDashboardSummary,
|
|
8
|
+
RemittanceBackofficeStats,
|
|
9
|
+
RemittanceBackofficeStatsPeriod,
|
|
10
|
+
RemittanceBackofficeTransaction,
|
|
11
|
+
RemittanceBackofficeTxListResponse,
|
|
12
|
+
RemittanceBackofficeUserDetail,
|
|
13
|
+
RemittanceBackofficeUserListResponse,
|
|
7
14
|
RemittanceBeneficiary,
|
|
8
15
|
RemittanceCancelRequest,
|
|
9
16
|
RemittanceCancelResponse,
|
|
@@ -154,4 +161,43 @@ export default class UnitellerConnectorApi implements IUnitellerConnectorApi {
|
|
|
154
161
|
const url = `${this.baseUrl}/transactions/${encodeURIComponent(txNumber)}/sms`;
|
|
155
162
|
return await this.httpRequest.post(url, { directoryId, ...request });
|
|
156
163
|
}
|
|
164
|
+
|
|
165
|
+
async backofficeDashboard(): Promise<ApiGatewayResponse<RemittanceBackofficeDashboardSummary>> {
|
|
166
|
+
const url = `${this.baseUrl}/backoffice/dashboard`;
|
|
167
|
+
return await this.httpRequest.get(url);
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
async backofficeListUsers(filters?: { status?: string; email?: string; pageSize?: number; index?: string }): Promise<ApiGatewayResponse<RemittanceBackofficeUserListResponse>> {
|
|
171
|
+
const url = `${this.baseUrl}/backoffice/users`;
|
|
172
|
+
return await this.httpRequest.get(url, dropUndefined(filters));
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
async backofficeUserDetail(directoryId: string): Promise<ApiGatewayResponse<RemittanceBackofficeUserDetail>> {
|
|
176
|
+
const url = `${this.baseUrl}/backoffice/users/${encodeURIComponent(directoryId)}`;
|
|
177
|
+
return await this.httpRequest.get(url);
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
async backofficeListTransactions(filters?: { txNumber?: string; directoryId?: string; status?: string; countryISO?: string; from?: string; to?: string; pageSize?: number; index?: string }): Promise<ApiGatewayResponse<RemittanceBackofficeTxListResponse>> {
|
|
181
|
+
const url = `${this.baseUrl}/backoffice/transactions`;
|
|
182
|
+
return await this.httpRequest.get(url, dropUndefined(filters));
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
async backofficeTransactionDetail(txNumber: string): Promise<ApiGatewayResponse<RemittanceBackofficeTransaction>> {
|
|
186
|
+
const url = `${this.baseUrl}/backoffice/transactions/${encodeURIComponent(txNumber)}`;
|
|
187
|
+
return await this.httpRequest.get(url);
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
async backofficeStats(period: RemittanceBackofficeStatsPeriod): Promise<ApiGatewayResponse<RemittanceBackofficeStats>> {
|
|
191
|
+
const url = `${this.baseUrl}/backoffice/stats`;
|
|
192
|
+
return await this.httpRequest.get(url, { period });
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
/** Quita las keys undefined para no mandar query params vacíos. */
|
|
197
|
+
function dropUndefined(params?: Record<string, string | number | undefined>): Record<string, string | number> | undefined {
|
|
198
|
+
if (!params) return undefined;
|
|
199
|
+
const clean = Object.fromEntries(
|
|
200
|
+
Object.entries(params).filter(([, value]) => value !== undefined),
|
|
201
|
+
) as Record<string, string | number>;
|
|
202
|
+
return Object.keys(clean).length > 0 ? clean : undefined;
|
|
157
203
|
}
|
|
@@ -2,6 +2,13 @@ import { ApiGatewayResponse } from "@fiado/gateway-adapter";
|
|
|
2
2
|
import { ConnectorCatalogItem } from "@fiado/type-kit/bin/benefitCenter";
|
|
3
3
|
import {
|
|
4
4
|
RemittanceAddBeneficiaryRequest,
|
|
5
|
+
RemittanceBackofficeDashboardSummary,
|
|
6
|
+
RemittanceBackofficeStats,
|
|
7
|
+
RemittanceBackofficeStatsPeriod,
|
|
8
|
+
RemittanceBackofficeTransaction,
|
|
9
|
+
RemittanceBackofficeTxListResponse,
|
|
10
|
+
RemittanceBackofficeUserDetail,
|
|
11
|
+
RemittanceBackofficeUserListResponse,
|
|
5
12
|
RemittanceBeneficiary,
|
|
6
13
|
RemittanceCancelRequest,
|
|
7
14
|
RemittanceCancelResponse,
|
|
@@ -130,4 +137,15 @@ export interface IUnitellerConnectorApi {
|
|
|
130
137
|
|
|
131
138
|
/** SMS de UNIR al beneficiario de la tx (max 3 por tx). ⚠ gated por smoke. */
|
|
132
139
|
smsTransactionAlert(directoryId: string, txNumber: string, request: RemittanceSmsRequest): Promise<ApiGatewayResponse<{ sent: boolean }>>;
|
|
140
|
+
|
|
141
|
+
// ─── Backoffice (F9, read-only — D2: el backoffice frontend entra por benefits) ─
|
|
142
|
+
|
|
143
|
+
backofficeDashboard(): Promise<ApiGatewayResponse<RemittanceBackofficeDashboardSummary>>;
|
|
144
|
+
/** Filtros: status (default ACTIVE en el connector) | email (lookup exacto); pageSize 1-100; index cursor opaco. */
|
|
145
|
+
backofficeListUsers(filters?: { status?: string; email?: string; pageSize?: number; index?: string }): Promise<ApiGatewayResponse<RemittanceBackofficeUserListResponse>>;
|
|
146
|
+
backofficeUserDetail(directoryId: string): Promise<ApiGatewayResponse<RemittanceBackofficeUserDetail>>;
|
|
147
|
+
/** Requiere al menos uno de txNumber | directoryId | status (el connector responde 400 si no). */
|
|
148
|
+
backofficeListTransactions(filters?: { txNumber?: string; directoryId?: string; status?: string; countryISO?: string; from?: string; to?: string; pageSize?: number; index?: string }): Promise<ApiGatewayResponse<RemittanceBackofficeTxListResponse>>;
|
|
149
|
+
backofficeTransactionDetail(txNumber: string): Promise<ApiGatewayResponse<RemittanceBackofficeTransaction>>;
|
|
150
|
+
backofficeStats(period: RemittanceBackofficeStatsPeriod): Promise<ApiGatewayResponse<RemittanceBackofficeStats>>;
|
|
133
151
|
}
|