@fiado/api-invoker 5.33.1 → 5.34.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/synergypay-connector/api/SynergyPayConnectorApi.d.ts +8 -2
- package/bin/synergypay-connector/api/SynergyPayConnectorApi.js +23 -0
- package/bin/synergypay-connector/api/interfaces/ISynergyPayConnectorApi.d.ts +32 -1
- package/package.json +2 -2
- package/src/synergypay-connector/api/SynergyPayConnectorApi.ts +34 -1
- package/src/synergypay-connector/api/interfaces/ISynergyPayConnectorApi.ts +38 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { IHttpRequest } from "@fiado/http-client";
|
|
1
|
+
import type { IHttpRequest } from "@fiado/http-client";
|
|
2
2
|
import { ApiGatewayResponse } from "@fiado/gateway-adapter";
|
|
3
3
|
import { ConnectorCatalogResponse } from "@fiado/type-kit/bin/benefitCenter/index.js";
|
|
4
|
-
import { CreateFundingReferenceRequest, CreateFundingReferenceResponse, ListFundingReferencesResponse, ApplyWalletFundingRequest, ApplyWalletFundingResponse } from "@fiado/type-kit/bin/walletFunding/index.js";
|
|
4
|
+
import { CreateFundingReferenceRequest, CreateFundingReferenceResponse, ListFundingReferencesResponse, ApplyWalletFundingRequest, ApplyWalletFundingResponse, ListFundingStoresRequest, ListFundingStoresResponse, WalletFundingReferenceStatusEnum } from "@fiado/type-kit/bin/walletFunding/index.js";
|
|
5
5
|
import { ISynergyPayConnectorApi } from "./interfaces/ISynergyPayConnectorApi.js";
|
|
6
6
|
export default class SynergyPayConnectorApi implements ISynergyPayConnectorApi {
|
|
7
7
|
private httpRequest;
|
|
@@ -14,5 +14,11 @@ export default class SynergyPayConnectorApi implements ISynergyPayConnectorApi {
|
|
|
14
14
|
includeDisabled?: boolean;
|
|
15
15
|
}): Promise<ApiGatewayResponse<ConnectorCatalogResponse>>;
|
|
16
16
|
applyFunding(request: ApplyWalletFundingRequest): Promise<ApiGatewayResponse<ApplyWalletFundingResponse>>;
|
|
17
|
+
listStores(query: ListFundingStoresRequest): Promise<ApiGatewayResponse<ListFundingStoresResponse>>;
|
|
18
|
+
cancelFundingReference(reference: string, reason?: "USER" | "WALLET_DEACTIVATED" | "OPS"): Promise<ApiGatewayResponse<{
|
|
19
|
+
reference: string;
|
|
20
|
+
status: WalletFundingReferenceStatusEnum;
|
|
21
|
+
cancelled: boolean;
|
|
22
|
+
}>>;
|
|
17
23
|
getPendingFunding(directoryId: string): Promise<ApiGatewayResponse<any>>;
|
|
18
24
|
}
|
|
@@ -39,6 +39,29 @@ let SynergyPayConnectorApi = class SynergyPayConnectorApi {
|
|
|
39
39
|
const url = `${this.baseUrl}/funding/apply`;
|
|
40
40
|
return await this.httpRequest.post(url, request);
|
|
41
41
|
}
|
|
42
|
+
async listStores(query) {
|
|
43
|
+
const params = new URLSearchParams({
|
|
44
|
+
latitude: String(query.latitude),
|
|
45
|
+
longitude: String(query.longitude),
|
|
46
|
+
});
|
|
47
|
+
// `radius` y `product` ausentes se OMITEN: el connector aplica sus
|
|
48
|
+
// defaults (el radio del proveedor y `cashin`). Mandarlos vacios los
|
|
49
|
+
// convertiria en filtros invalidos.
|
|
50
|
+
if (query.radius !== undefined)
|
|
51
|
+
params.set("radius", String(query.radius));
|
|
52
|
+
if (query.product !== undefined)
|
|
53
|
+
params.set("product", query.product);
|
|
54
|
+
const url = `${this.baseUrl}/stores?${params.toString()}`;
|
|
55
|
+
return await this.httpRequest.get(url);
|
|
56
|
+
}
|
|
57
|
+
async cancelFundingReference(reference, reason) {
|
|
58
|
+
const params = new URLSearchParams();
|
|
59
|
+
if (reason)
|
|
60
|
+
params.set("reason", reason);
|
|
61
|
+
const qs = params.toString();
|
|
62
|
+
const url = `${this.baseUrl}/funding/references/${encodeURIComponent(reference)}${qs ? `?${qs}` : ""}`;
|
|
63
|
+
return await this.httpRequest.delete(url);
|
|
64
|
+
}
|
|
42
65
|
async getPendingFunding(directoryId) {
|
|
43
66
|
const url = `${this.baseUrl}/funding/pending?directoryId=${encodeURIComponent(directoryId)}`;
|
|
44
67
|
return await this.httpRequest.get(url);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ApiGatewayResponse } from "@fiado/gateway-adapter";
|
|
2
2
|
import { ConnectorCatalogResponse } from "@fiado/type-kit/bin/benefitCenter/index.js";
|
|
3
|
-
import { CreateFundingReferenceRequest, CreateFundingReferenceResponse, ListFundingReferencesResponse, ApplyWalletFundingRequest, ApplyWalletFundingResponse } from "@fiado/type-kit/bin/walletFunding/index.js";
|
|
3
|
+
import { CreateFundingReferenceRequest, CreateFundingReferenceResponse, ListFundingReferencesResponse, ApplyWalletFundingRequest, ApplyWalletFundingResponse, ListFundingStoresRequest, ListFundingStoresResponse, WalletFundingReferenceStatusEnum } from "@fiado/type-kit/bin/walletFunding/index.js";
|
|
4
4
|
/**
|
|
5
5
|
* Cliente del marketplace hacia synergypay-connector (privado, dentro de la VPC).
|
|
6
6
|
*
|
|
@@ -14,6 +14,8 @@ import { CreateFundingReferenceRequest, CreateFundingReferenceResponse, ListFund
|
|
|
14
14
|
* - GET /funding/references?directoryId=&status=
|
|
15
15
|
* - GET /catalog/standard?benefitId=&includeDisabled=
|
|
16
16
|
* - POST /funding/apply
|
|
17
|
+
* - GET /stores?latitude=&longitude=&radius=&product=
|
|
18
|
+
* - DELETE /funding/references/{reference}?reason=
|
|
17
19
|
*
|
|
18
20
|
* NOTA: los endpoints `/passport/*` del BackOffice (SPEC 1.3) NO están incluidos —
|
|
19
21
|
* el synergypay-connector aún no los expone (F6.1 construyó solo el money-path).
|
|
@@ -42,6 +44,35 @@ export interface ISynergyPayConnectorApi {
|
|
|
42
44
|
* queda para el cierre SETTLED (conciliación bancaria) — mismo contrato canónico.
|
|
43
45
|
*/
|
|
44
46
|
applyFunding(request: ApplyWalletFundingRequest): Promise<ApiGatewayResponse<ApplyWalletFundingResponse>>;
|
|
47
|
+
/**
|
|
48
|
+
* Directorio de tiendas cercanas donde el cliente puede presentar su
|
|
49
|
+
* referencia y entregar el efectivo.
|
|
50
|
+
*
|
|
51
|
+
* Va APARTE de la referencia a proposito: una referencia sirve en cualquier
|
|
52
|
+
* tienda afiliada, asi que el directorio cambia —altas, bajas, horarios,
|
|
53
|
+
* comisiones— sin tocar referencias vivas. El connector filtra por
|
|
54
|
+
* `product=cashin` cuando no se especifica: sin ese filtro, buena parte de
|
|
55
|
+
* las tiendas que devuelve el proveedor no aceptan deposito.
|
|
56
|
+
*/
|
|
57
|
+
listStores(query: ListFundingStoresRequest): Promise<ApiGatewayResponse<ListFundingStoresResponse>>;
|
|
58
|
+
/**
|
|
59
|
+
* Cancela una referencia en el proveedor Y en la tabla del connector, en ese
|
|
60
|
+
* orden.
|
|
61
|
+
*
|
|
62
|
+
* Es la unica palanca que frena el efectivo ANTES de que entre a la caja:
|
|
63
|
+
* rechazar el webhook no alcanza, porque cuando el proveedor llama el cobro
|
|
64
|
+
* ya ocurrio. NO cancelar por fuera (curl directo al proveedor) — las dos
|
|
65
|
+
* mitades quedan desincronizadas y creeriamos que el cliente puede
|
|
66
|
+
* depositar cuando la caja ya no se lo permite.
|
|
67
|
+
*
|
|
68
|
+
* Idempotente: cancelar algo ya cancelado devuelve `cancelled: false`, no
|
|
69
|
+
* un error.
|
|
70
|
+
*/
|
|
71
|
+
cancelFundingReference(reference: string, reason?: "USER" | "WALLET_DEACTIVATED" | "OPS"): Promise<ApiGatewayResponse<{
|
|
72
|
+
reference: string;
|
|
73
|
+
status: WalletFundingReferenceStatusEnum;
|
|
74
|
+
cancelled: boolean;
|
|
75
|
+
}>>;
|
|
45
76
|
/**
|
|
46
77
|
* Cash-in AUTORIZADO pero aun no acreditado del cliente, en el mes en curso.
|
|
47
78
|
*
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fiado/api-invoker",
|
|
3
|
-
|
|
3
|
+
"version": "5.34.0",
|
|
4
4
|
"description": "Sirve como un puente entre diferentes funciones lambda, facilitando la comunicación entre ellas a través de invocaciones http",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "bin/index.js",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"@fiado/gateway-adapter": "^3.9.0",
|
|
35
35
|
"@fiado/http-client": "^2.0.1",
|
|
36
36
|
"@fiado/logger": "^1.1.3",
|
|
37
|
-
"@fiado/type-kit": "^3.
|
|
37
|
+
"@fiado/type-kit": "^3.327.0",
|
|
38
38
|
"dotenv": "^16.4.7"
|
|
39
39
|
},
|
|
40
40
|
"peerDependencies": {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { inject, injectable } from "inversify";
|
|
2
|
-
import { IHttpRequest } from "@fiado/http-client";
|
|
2
|
+
import type { IHttpRequest } from "@fiado/http-client";
|
|
3
3
|
import { ApiGatewayResponse } from "@fiado/gateway-adapter";
|
|
4
4
|
import { ConnectorCatalogResponse } from "@fiado/type-kit/bin/benefitCenter/index.js";
|
|
5
5
|
import {
|
|
@@ -8,6 +8,9 @@ import {
|
|
|
8
8
|
ListFundingReferencesResponse,
|
|
9
9
|
ApplyWalletFundingRequest,
|
|
10
10
|
ApplyWalletFundingResponse,
|
|
11
|
+
ListFundingStoresRequest,
|
|
12
|
+
ListFundingStoresResponse,
|
|
13
|
+
WalletFundingReferenceStatusEnum,
|
|
11
14
|
} from "@fiado/type-kit/bin/walletFunding/index.js";
|
|
12
15
|
import { ISynergyPayConnectorApi } from "./interfaces/ISynergyPayConnectorApi.js";
|
|
13
16
|
|
|
@@ -50,6 +53,36 @@ export default class SynergyPayConnectorApi implements ISynergyPayConnectorApi {
|
|
|
50
53
|
return await this.httpRequest.post(url, request);
|
|
51
54
|
}
|
|
52
55
|
|
|
56
|
+
async listStores(
|
|
57
|
+
query: ListFundingStoresRequest,
|
|
58
|
+
): Promise<ApiGatewayResponse<ListFundingStoresResponse>> {
|
|
59
|
+
const params = new URLSearchParams({
|
|
60
|
+
latitude: String(query.latitude),
|
|
61
|
+
longitude: String(query.longitude),
|
|
62
|
+
});
|
|
63
|
+
// `radius` y `product` ausentes se OMITEN: el connector aplica sus
|
|
64
|
+
// defaults (el radio del proveedor y `cashin`). Mandarlos vacios los
|
|
65
|
+
// convertiria en filtros invalidos.
|
|
66
|
+
if (query.radius !== undefined) params.set("radius", String(query.radius));
|
|
67
|
+
if (query.product !== undefined) params.set("product", query.product);
|
|
68
|
+
const url = `${this.baseUrl}/stores?${params.toString()}`;
|
|
69
|
+
return await this.httpRequest.get(url);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
async cancelFundingReference(
|
|
73
|
+
reference: string,
|
|
74
|
+
reason?: "USER" | "WALLET_DEACTIVATED" | "OPS",
|
|
75
|
+
): Promise<ApiGatewayResponse<{
|
|
76
|
+
reference: string;
|
|
77
|
+
status: WalletFundingReferenceStatusEnum;
|
|
78
|
+
cancelled: boolean;
|
|
79
|
+
}>> {
|
|
80
|
+
const params = new URLSearchParams();
|
|
81
|
+
if (reason) params.set("reason", reason);
|
|
82
|
+
const qs = params.toString();
|
|
83
|
+
const url = `${this.baseUrl}/funding/references/${encodeURIComponent(reference)}${qs ? `?${qs}` : ""}`;
|
|
84
|
+
return await this.httpRequest.delete(url);
|
|
85
|
+
}
|
|
53
86
|
async getPendingFunding(directoryId: string): Promise<ApiGatewayResponse<any>> {
|
|
54
87
|
const url = `${this.baseUrl}/funding/pending?directoryId=${encodeURIComponent(directoryId)}`;
|
|
55
88
|
return await this.httpRequest.get(url);
|
|
@@ -6,6 +6,9 @@ import {
|
|
|
6
6
|
ListFundingReferencesResponse,
|
|
7
7
|
ApplyWalletFundingRequest,
|
|
8
8
|
ApplyWalletFundingResponse,
|
|
9
|
+
ListFundingStoresRequest,
|
|
10
|
+
ListFundingStoresResponse,
|
|
11
|
+
WalletFundingReferenceStatusEnum,
|
|
9
12
|
} from "@fiado/type-kit/bin/walletFunding/index.js";
|
|
10
13
|
|
|
11
14
|
/**
|
|
@@ -21,6 +24,8 @@ import {
|
|
|
21
24
|
* - GET /funding/references?directoryId=&status=
|
|
22
25
|
* - GET /catalog/standard?benefitId=&includeDisabled=
|
|
23
26
|
* - POST /funding/apply
|
|
27
|
+
* - GET /stores?latitude=&longitude=&radius=&product=
|
|
28
|
+
* - DELETE /funding/references/{reference}?reason=
|
|
24
29
|
*
|
|
25
30
|
* NOTA: los endpoints `/passport/*` del BackOffice (SPEC 1.3) NO están incluidos —
|
|
26
31
|
* el synergypay-connector aún no los expone (F6.1 construyó solo el money-path).
|
|
@@ -58,6 +63,39 @@ export interface ISynergyPayConnectorApi {
|
|
|
58
63
|
applyFunding(
|
|
59
64
|
request: ApplyWalletFundingRequest,
|
|
60
65
|
): Promise<ApiGatewayResponse<ApplyWalletFundingResponse>>;
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Directorio de tiendas cercanas donde el cliente puede presentar su
|
|
69
|
+
* referencia y entregar el efectivo.
|
|
70
|
+
*
|
|
71
|
+
* Va APARTE de la referencia a proposito: una referencia sirve en cualquier
|
|
72
|
+
* tienda afiliada, asi que el directorio cambia —altas, bajas, horarios,
|
|
73
|
+
* comisiones— sin tocar referencias vivas. El connector filtra por
|
|
74
|
+
* `product=cashin` cuando no se especifica: sin ese filtro, buena parte de
|
|
75
|
+
* las tiendas que devuelve el proveedor no aceptan deposito.
|
|
76
|
+
*/
|
|
77
|
+
listStores(query: ListFundingStoresRequest): Promise<ApiGatewayResponse<ListFundingStoresResponse>>;
|
|
78
|
+
/**
|
|
79
|
+
* Cancela una referencia en el proveedor Y en la tabla del connector, en ese
|
|
80
|
+
* orden.
|
|
81
|
+
*
|
|
82
|
+
* Es la unica palanca que frena el efectivo ANTES de que entre a la caja:
|
|
83
|
+
* rechazar el webhook no alcanza, porque cuando el proveedor llama el cobro
|
|
84
|
+
* ya ocurrio. NO cancelar por fuera (curl directo al proveedor) — las dos
|
|
85
|
+
* mitades quedan desincronizadas y creeriamos que el cliente puede
|
|
86
|
+
* depositar cuando la caja ya no se lo permite.
|
|
87
|
+
*
|
|
88
|
+
* Idempotente: cancelar algo ya cancelado devuelve `cancelled: false`, no
|
|
89
|
+
* un error.
|
|
90
|
+
*/
|
|
91
|
+
cancelFundingReference(
|
|
92
|
+
reference: string,
|
|
93
|
+
reason?: "USER" | "WALLET_DEACTIVATED" | "OPS",
|
|
94
|
+
): Promise<ApiGatewayResponse<{
|
|
95
|
+
reference: string;
|
|
96
|
+
status: WalletFundingReferenceStatusEnum;
|
|
97
|
+
cancelled: boolean;
|
|
98
|
+
}>>;
|
|
61
99
|
/**
|
|
62
100
|
* Cash-in AUTORIZADO pero aun no acreditado del cliente, en el mes en curso.
|
|
63
101
|
*
|