@fiado/api-invoker 5.134.0 → 5.136.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/retailCommission/RetailCommissionBusinessApi.d.ts +2 -1
- package/bin/retailCommission/RetailCommissionBusinessApi.js +5 -0
- package/bin/retailCommission/interfaces/IRetailCommissionBusinessApi.d.ts +7 -1
- package/bin/retailCustomer/api/RetailCustomerBusinessApi.d.ts +1 -2
- package/bin/retailCustomer/api/RetailCustomerBusinessApi.js +0 -4
- package/bin/retailCustomer/api/interfaces/IRetailCustomerBusinessApi.d.ts +1 -10
- package/bin/retailOrg/api/RetailOrgBusinessApi.d.ts +3 -1
- package/bin/retailOrg/api/RetailOrgBusinessApi.js +8 -0
- package/bin/retailOrg/api/interfaces/IRetailOrgBusinessApi.d.ts +10 -1
- package/package.json +2 -2
- package/src/retailCommission/RetailCommissionBusinessApi.ts +14 -1
- package/src/retailCommission/interfaces/IRetailCommissionBusinessApi.ts +15 -1
- package/src/retailCustomer/api/RetailCustomerBusinessApi.ts +0 -10
- package/src/retailCustomer/api/interfaces/IRetailCustomerBusinessApi.ts +0 -15
- package/src/retailOrg/api/RetailOrgBusinessApi.ts +14 -0
- package/src/retailOrg/api/interfaces/IRetailOrgBusinessApi.ts +15 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { IHttpRequest } from "@fiado/http-client";
|
|
2
2
|
import type { StandardResponse } from "@fiado/gateway-adapter";
|
|
3
|
-
import type { PrivateLatestClosedPayoutResponse } from "@fiado/type-kit/bin/retailCommission/index.js";
|
|
3
|
+
import type { PrivateLatestClosedPayoutResponse, PrivateTriggerSellerPaymentResponse } from "@fiado/type-kit/bin/retailCommission/index.js";
|
|
4
4
|
import type { IRetailCommissionBusinessApi } from "./interfaces/IRetailCommissionBusinessApi.js";
|
|
5
5
|
/** Publisher HTTP de `retail-commission-business`. Contrato → `IRetailCommissionBusinessApi`. */
|
|
6
6
|
export declare class RetailCommissionBusinessApi implements IRetailCommissionBusinessApi {
|
|
@@ -9,4 +9,5 @@ export declare class RetailCommissionBusinessApi implements IRetailCommissionBus
|
|
|
9
9
|
/** La URL del SSM termina en `/v1/`; se quita la barra final para no duplicarla. */
|
|
10
10
|
private get baseUrl();
|
|
11
11
|
getLatestClosedPayout(retailerId: string, tenantId: string): Promise<StandardResponse<PrivateLatestClosedPayoutResponse>>;
|
|
12
|
+
triggerSellerPayment(retailerId: string, sellerId: string, tenantId: string): Promise<StandardResponse<PrivateTriggerSellerPaymentResponse>>;
|
|
12
13
|
}
|
|
@@ -26,6 +26,11 @@ let RetailCommissionBusinessApi = class RetailCommissionBusinessApi {
|
|
|
26
26
|
const query = new URLSearchParams({ tenantId });
|
|
27
27
|
return await this.httpRequest.get(`${this.baseUrl}${path}?${query.toString()}`);
|
|
28
28
|
}
|
|
29
|
+
async triggerSellerPayment(retailerId, sellerId, tenantId) {
|
|
30
|
+
const path = `/private/retailers/${encodeURIComponent(retailerId)}/sellers/${encodeURIComponent(sellerId)}/payments/trigger`;
|
|
31
|
+
const query = new URLSearchParams({ tenantId });
|
|
32
|
+
return await this.httpRequest.post(`${this.baseUrl}${path}?${query.toString()}`, {});
|
|
33
|
+
}
|
|
29
34
|
};
|
|
30
35
|
RetailCommissionBusinessApi = __decorate([
|
|
31
36
|
injectable(),
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { StandardResponse } from "@fiado/gateway-adapter";
|
|
2
|
-
import type { PrivateLatestClosedPayoutResponse } from "@fiado/type-kit/bin/retailCommission/index.js";
|
|
2
|
+
import type { PrivateLatestClosedPayoutResponse, PrivateTriggerSellerPaymentResponse } from "@fiado/type-kit/bin/retailCommission/index.js";
|
|
3
3
|
/**
|
|
4
4
|
* Publisher de los endpoints privados de `retail-commission-business` (motor de comisiones de
|
|
5
5
|
* VentasLuga). No confundir con `commission-business`, que es otro servicio.
|
|
@@ -13,4 +13,10 @@ export interface IRetailCommissionBusinessApi {
|
|
|
13
13
|
* de la cadena, con lo que le pagó a cada vendedor. Sin corte cerrado reciente: `period: null`.
|
|
14
14
|
*/
|
|
15
15
|
getLatestClosedPayout(retailerId: string, tenantId: string): Promise<StandardResponse<PrivateLatestClosedPayoutResponse>>;
|
|
16
|
+
/**
|
|
17
|
+
* `POST /private/retailers/{retailerId}/sellers/{sellerId}/payments/trigger` — pide al motor
|
|
18
|
+
* intentar pagar el saldo pendiente del vendedor. Lo usa retail-org al vincular una wallet.
|
|
19
|
+
* Va con cuerpo vacío (`{}`) y responde 202 `{ enqueued }`; rechaza si el motor responde con error.
|
|
20
|
+
*/
|
|
21
|
+
triggerSellerPayment(retailerId: string, sellerId: string, tenantId: string): Promise<StandardResponse<PrivateTriggerSellerPaymentResponse>>;
|
|
16
22
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { IHttpRequest } from "@fiado/http-client";
|
|
2
2
|
import { StandardResponse } from "@fiado/gateway-adapter";
|
|
3
|
-
import { UpsertCustomerFromKycRequest,
|
|
3
|
+
import { UpsertCustomerFromKycRequest, AccountResultRequest, CustomerResponse, PromotionBonusEntryResponse, UpsertPromotionBonusRequest, WelcomeAccreditationRequest, WelcomeAccreditationResponse, WelcomeAccreditationResultRequest, WelcomeBonusResponse } from "@fiado/type-kit/bin/retailCustomer/index.js";
|
|
4
4
|
import { CustomersBatchRequest, CustomersBatchResponse } from "./dtos/CustomersBatch.js";
|
|
5
5
|
import { CustomersPageQuery, PrivateCustomerListItem } from "./dtos/CustomersPage.js";
|
|
6
6
|
import { PaginatedResult } from "@fiado/type-kit/bin/retailOrg/index.js";
|
|
@@ -24,7 +24,6 @@ export default class RetailCustomerBusinessApi implements IRetailCustomerBusines
|
|
|
24
24
|
private readonly baseUrl;
|
|
25
25
|
constructor(httpRequest: IHttpRequest);
|
|
26
26
|
upsertCustomerFromKyc(payload: UpsertCustomerFromKycRequest, tenantId: string): Promise<StandardResponse<CustomerResponse>>;
|
|
27
|
-
ensureCustomerByPhone(payload: EnsureCustomerByPhoneRequest, tenantId: string): Promise<StandardResponse<EnsureCustomerByPhoneResponse>>;
|
|
28
27
|
setAccountResult(customerId: string, payload: AccountResultRequest, tenantId: string): Promise<StandardResponse<CustomerResponse>>;
|
|
29
28
|
getCustomerByPhone(phone: string, tenantId: string): Promise<StandardResponse<CustomerResponse>>;
|
|
30
29
|
getCustomer(customerId: string, tenantId: string): Promise<StandardResponse<CustomerResponse>>;
|
|
@@ -35,10 +35,6 @@ let RetailCustomerBusinessApi = class RetailCustomerBusinessApi {
|
|
|
35
35
|
const url = `${this.baseUrl}/private/customers/upsert-from-kyc?tenantId=${encodeURIComponent(tenantId)}`;
|
|
36
36
|
return await this.httpRequest.post(url, payload);
|
|
37
37
|
}
|
|
38
|
-
async ensureCustomerByPhone(payload, tenantId) {
|
|
39
|
-
const url = `${this.baseUrl}/private/customers/ensure-by-phone?tenantId=${encodeURIComponent(tenantId)}`;
|
|
40
|
-
return await this.httpRequest.post(url, payload);
|
|
41
|
-
}
|
|
42
38
|
async setAccountResult(customerId, payload, tenantId) {
|
|
43
39
|
const url = `${this.baseUrl}/private/customers/${encodeURIComponent(customerId)}/account-result?tenantId=${encodeURIComponent(tenantId)}`;
|
|
44
40
|
return await this.httpRequest.put(url, payload);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { StandardResponse } from "@fiado/gateway-adapter";
|
|
2
|
-
import { UpsertCustomerFromKycRequest,
|
|
2
|
+
import { UpsertCustomerFromKycRequest, AccountResultRequest, CustomerResponse, PromotionBonusEntryResponse, UpsertPromotionBonusRequest, WelcomeAccreditationRequest, WelcomeAccreditationResponse, WelcomeAccreditationResultRequest, WelcomeBonusResponse } from "@fiado/type-kit/bin/retailCustomer/index.js";
|
|
3
3
|
import { CustomersBatchRequest, CustomersBatchResponse } from "../dtos/CustomersBatch.js";
|
|
4
4
|
import { CustomersPageQuery, PrivateCustomerListItem } from "../dtos/CustomersPage.js";
|
|
5
5
|
import { PaginatedResult } from "@fiado/type-kit/bin/retailOrg/index.js";
|
|
@@ -54,15 +54,6 @@ export interface IRetailCustomerBusinessApi {
|
|
|
54
54
|
* aditivo al type-kit (backlog) — no acá.
|
|
55
55
|
*/
|
|
56
56
|
upsertCustomerFromKyc(payload: UpsertCustomerFromKycRequest, tenantId: string): Promise<StandardResponse<CustomerResponse>>;
|
|
57
|
-
/**
|
|
58
|
-
* POST /private/customers/ensure-by-phone?tenantId= — devuelve el cliente de ese celular o lo da
|
|
59
|
-
* de alta solo con el celular (ya verificado por OTP). Idempotente: dos llamadas con el mismo
|
|
60
|
-
* número devuelven el mismo cliente. `created=true` solo cuando esta llamada lo dio de alta.
|
|
61
|
-
*
|
|
62
|
-
* @throws `422 CUSTOMER_INACTIVE` si el número es de un cliente dado de baja.
|
|
63
|
-
* @throws `400 VALIDATION_ERROR` si el celular no trae 10 dígitos o falta la tienda.
|
|
64
|
-
*/
|
|
65
|
-
ensureCustomerByPhone(payload: EnsureCustomerByPhoneRequest, tenantId: string): Promise<StandardResponse<EnsureCustomerByPhoneResponse>>;
|
|
66
57
|
/**
|
|
67
58
|
* PUT /private/customers/{customerId}/account-result?tenantId= — aterriza el resultado terminal de
|
|
68
59
|
* la apertura de cuenta async (D35). Solo acepta OPEN/FAILED (nunca el intermedio OPENING). OPEN
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { IHttpRequest } from "@fiado/http-client";
|
|
2
2
|
import { StandardResponse } from "@fiado/gateway-adapter";
|
|
3
|
-
import { RetailerValidationDto, StoreValidationDto, RetailUserValidationDto, CollectorValidationDto, PrivateSellerListResponse, PrivateGoalListResponse, GoalTargetTypeEnum, RetailUserStatusEnum } from "@fiado/type-kit/bin/retailOrg/index.js";
|
|
3
|
+
import { RetailerValidationDto, StoreValidationDto, RetailUserValidationDto, CollectorValidationDto, PrivateSellerListResponse, PrivateGoalListResponse, GoalTargetTypeEnum, RetailUserStatusEnum, PrivateRetailUserWalletResponse } from "@fiado/type-kit/bin/retailOrg/index.js";
|
|
4
4
|
import type { ApplyRetailUserEventRequest, ApplyRetailUserEventResponse, ApplyStoreEventRequest, ApplyStoreEventResponse } from "@fiado/type-kit/bin/retailIntegration/index.js";
|
|
5
5
|
import { IRetailOrgBusinessApi, RetailerRosterStatusFilter, StoreRosterStatusFilter } from "./interfaces/IRetailOrgBusinessApi.js";
|
|
6
6
|
/**
|
|
@@ -52,6 +52,8 @@ export default class RetailOrgBusinessApi implements IRetailOrgBusinessApi {
|
|
|
52
52
|
listSellers(retailerId: string, tenantId: string, callerService: string, status?: RetailUserStatusEnum, includePhone?: boolean): Promise<StandardResponse<PrivateSellerListResponse>>;
|
|
53
53
|
/** Metas del periodo de una cadena. Contrato → `IRetailOrgBusinessApi.listGoals`. */
|
|
54
54
|
listGoals(retailerId: string, tenantId: string, periodId: string, targetType?: GoalTargetTypeEnum): Promise<StandardResponse<PrivateGoalListResponse>>;
|
|
55
|
+
/** Wallet PCF del vendedor para el motor. Contrato → `IRetailOrgBusinessApi.getRetailUserWallet`. */
|
|
56
|
+
getRetailUserWallet(retailerId: string, retailUserId: string, tenantId: string): Promise<StandardResponse<PrivateRetailUserWalletResponse>>;
|
|
55
57
|
privateApplyStoreEvent(request: ApplyStoreEventRequest): Promise<StandardResponse<ApplyStoreEventResponse>>;
|
|
56
58
|
privateApplyRetailUserEvent(request: ApplyRetailUserEventRequest): Promise<StandardResponse<ApplyRetailUserEventResponse>>;
|
|
57
59
|
private applyRetailEvent;
|
|
@@ -110,6 +110,14 @@ let RetailOrgBusinessApi = class RetailOrgBusinessApi {
|
|
|
110
110
|
const path = `/private/retailers/${encodeURIComponent(retailerId)}/goals`;
|
|
111
111
|
return await this.httpRequest.get(`${this.baseUrl}${path}?${query.toString()}`);
|
|
112
112
|
}
|
|
113
|
+
/** Wallet PCF del vendedor para el motor. Contrato → `IRetailOrgBusinessApi.getRetailUserWallet`. */
|
|
114
|
+
async getRetailUserWallet(retailerId, retailUserId, tenantId) {
|
|
115
|
+
// La URL del SSM termina en "/"; se quita para no duplicarla.
|
|
116
|
+
const base = this.baseUrl.replace(/\/+$/, "");
|
|
117
|
+
const path = `/private/retailers/${encodeURIComponent(retailerId)}/users/${encodeURIComponent(retailUserId)}/wallet`;
|
|
118
|
+
const query = new URLSearchParams({ tenantId });
|
|
119
|
+
return await this.httpRequest.get(`${base}${path}?${query.toString()}`);
|
|
120
|
+
}
|
|
113
121
|
async privateApplyStoreEvent(request) {
|
|
114
122
|
return await this.applyRetailEvent("/private/integration/store-events", request);
|
|
115
123
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { StandardResponse } from "@fiado/gateway-adapter";
|
|
2
|
-
import { RetailerValidationDto, StoreValidationDto, RetailUserValidationDto, CollectorValidationDto, PrivateSellerListResponse, PrivateGoalListResponse, GoalTargetTypeEnum, RetailUserStatusEnum, RetailerStatusEnum, StoreStatusEnum } from "@fiado/type-kit/bin/retailOrg/index.js";
|
|
2
|
+
import { RetailerValidationDto, StoreValidationDto, RetailUserValidationDto, CollectorValidationDto, PrivateSellerListResponse, PrivateGoalListResponse, GoalTargetTypeEnum, RetailUserStatusEnum, RetailerStatusEnum, StoreStatusEnum, PrivateRetailUserWalletResponse } from "@fiado/type-kit/bin/retailOrg/index.js";
|
|
3
3
|
import type { ApplyRetailUserEventRequest, ApplyRetailUserEventResponse, ApplyStoreEventRequest, ApplyStoreEventResponse } from "@fiado/type-kit/bin/retailIntegration/index.js";
|
|
4
4
|
/**
|
|
5
5
|
* Filtro de `listStoresByRetailer`. `"ALL"` no es un estado de tienda: es la ausencia de filtro, y
|
|
@@ -228,6 +228,15 @@ export interface IRetailOrgBusinessApi {
|
|
|
228
228
|
* @throws `400 VALIDATION_ERROR` con un periodo o tipo inválido · `400 UNKNOWN_TENANT` sin tenant.
|
|
229
229
|
*/
|
|
230
230
|
listGoals(retailerId: string, tenantId: string, periodId: string, targetType?: GoalTargetTypeEnum): Promise<StandardResponse<PrivateGoalListResponse>>;
|
|
231
|
+
/**
|
|
232
|
+
* `GET /private/retailers/{retailerId}/users/{retailUserId}/wallet` — la wallet PCF del vendedor
|
|
233
|
+
* para el motor de comisiones. `directoryId` y `pcfAccountId` vienen en `null` si no tiene; la
|
|
234
|
+
* CLABE no viaja.
|
|
235
|
+
*
|
|
236
|
+
* @throws `404 RETAIL_USER_NOT_FOUND` si el vendedor no existe o es de otra cadena ·
|
|
237
|
+
* `400 UNKNOWN_TENANT` sin `tenantId`.
|
|
238
|
+
*/
|
|
239
|
+
getRetailUserWallet(retailerId: string, retailUserId: string, tenantId: string): Promise<StandardResponse<PrivateRetailUserWalletResponse>>;
|
|
231
240
|
/** `POST /private/integration/store-events?tenantId=` — aplica un evento de tienda del retailer. */
|
|
232
241
|
privateApplyStoreEvent(request: ApplyStoreEventRequest): Promise<StandardResponse<ApplyStoreEventResponse>>;
|
|
233
242
|
/** `POST /private/integration/retail-user-events?tenantId=` — aplica un evento de usuario del retailer. */
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fiado/api-invoker",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.136.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.14.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.551.0",
|
|
38
38
|
"dotenv": "^16.4.7"
|
|
39
39
|
},
|
|
40
40
|
"peerDependencies": {
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { inject, injectable } from "inversify";
|
|
2
2
|
import type { IHttpRequest } from "@fiado/http-client";
|
|
3
3
|
import type { StandardResponse } from "@fiado/gateway-adapter";
|
|
4
|
-
import type {
|
|
4
|
+
import type {
|
|
5
|
+
PrivateLatestClosedPayoutResponse,
|
|
6
|
+
PrivateTriggerSellerPaymentResponse,
|
|
7
|
+
} from "@fiado/type-kit/bin/retailCommission/index.js";
|
|
5
8
|
import type { IRetailCommissionBusinessApi } from "./interfaces/IRetailCommissionBusinessApi.js";
|
|
6
9
|
|
|
7
10
|
/** Publisher HTTP de `retail-commission-business`. Contrato → `IRetailCommissionBusinessApi`. */
|
|
@@ -22,4 +25,14 @@ export class RetailCommissionBusinessApi implements IRetailCommissionBusinessApi
|
|
|
22
25
|
const query = new URLSearchParams({ tenantId });
|
|
23
26
|
return await this.httpRequest.get(`${this.baseUrl}${path}?${query.toString()}`);
|
|
24
27
|
}
|
|
28
|
+
|
|
29
|
+
async triggerSellerPayment(
|
|
30
|
+
retailerId: string,
|
|
31
|
+
sellerId: string,
|
|
32
|
+
tenantId: string,
|
|
33
|
+
): Promise<StandardResponse<PrivateTriggerSellerPaymentResponse>> {
|
|
34
|
+
const path = `/private/retailers/${encodeURIComponent(retailerId)}/sellers/${encodeURIComponent(sellerId)}/payments/trigger`;
|
|
35
|
+
const query = new URLSearchParams({ tenantId });
|
|
36
|
+
return await this.httpRequest.post(`${this.baseUrl}${path}?${query.toString()}`, {});
|
|
37
|
+
}
|
|
25
38
|
}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import type { StandardResponse } from "@fiado/gateway-adapter";
|
|
2
|
-
import type {
|
|
2
|
+
import type {
|
|
3
|
+
PrivateLatestClosedPayoutResponse,
|
|
4
|
+
PrivateTriggerSellerPaymentResponse,
|
|
5
|
+
} from "@fiado/type-kit/bin/retailCommission/index.js";
|
|
3
6
|
|
|
4
7
|
/**
|
|
5
8
|
* Publisher de los endpoints privados de `retail-commission-business` (motor de comisiones de
|
|
@@ -17,4 +20,15 @@ export interface IRetailCommissionBusinessApi {
|
|
|
17
20
|
retailerId: string,
|
|
18
21
|
tenantId: string,
|
|
19
22
|
): Promise<StandardResponse<PrivateLatestClosedPayoutResponse>>;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* `POST /private/retailers/{retailerId}/sellers/{sellerId}/payments/trigger` — pide al motor
|
|
26
|
+
* intentar pagar el saldo pendiente del vendedor. Lo usa retail-org al vincular una wallet.
|
|
27
|
+
* Va con cuerpo vacío (`{}`) y responde 202 `{ enqueued }`; rechaza si el motor responde con error.
|
|
28
|
+
*/
|
|
29
|
+
triggerSellerPayment(
|
|
30
|
+
retailerId: string,
|
|
31
|
+
sellerId: string,
|
|
32
|
+
tenantId: string,
|
|
33
|
+
): Promise<StandardResponse<PrivateTriggerSellerPaymentResponse>>;
|
|
20
34
|
}
|
|
@@ -3,8 +3,6 @@ import type { IHttpRequest } from "@fiado/http-client";
|
|
|
3
3
|
import { StandardResponse } from "@fiado/gateway-adapter";
|
|
4
4
|
import {
|
|
5
5
|
UpsertCustomerFromKycRequest,
|
|
6
|
-
EnsureCustomerByPhoneRequest,
|
|
7
|
-
EnsureCustomerByPhoneResponse,
|
|
8
6
|
AccountResultRequest,
|
|
9
7
|
CustomerResponse,
|
|
10
8
|
PromotionBonusEntryResponse,
|
|
@@ -47,14 +45,6 @@ export default class RetailCustomerBusinessApi implements IRetailCustomerBusines
|
|
|
47
45
|
return await this.httpRequest.post(url, payload);
|
|
48
46
|
}
|
|
49
47
|
|
|
50
|
-
async ensureCustomerByPhone(
|
|
51
|
-
payload: EnsureCustomerByPhoneRequest,
|
|
52
|
-
tenantId: string,
|
|
53
|
-
): Promise<StandardResponse<EnsureCustomerByPhoneResponse>> {
|
|
54
|
-
const url = `${this.baseUrl}/private/customers/ensure-by-phone?tenantId=${encodeURIComponent(tenantId)}`;
|
|
55
|
-
return await this.httpRequest.post(url, payload);
|
|
56
|
-
}
|
|
57
|
-
|
|
58
48
|
async setAccountResult(
|
|
59
49
|
customerId: string,
|
|
60
50
|
payload: AccountResultRequest,
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { StandardResponse } from "@fiado/gateway-adapter";
|
|
2
2
|
import {
|
|
3
3
|
UpsertCustomerFromKycRequest,
|
|
4
|
-
EnsureCustomerByPhoneRequest,
|
|
5
|
-
EnsureCustomerByPhoneResponse,
|
|
6
4
|
AccountResultRequest,
|
|
7
5
|
CustomerResponse,
|
|
8
6
|
PromotionBonusEntryResponse,
|
|
@@ -71,19 +69,6 @@ export interface IRetailCustomerBusinessApi {
|
|
|
71
69
|
tenantId: string,
|
|
72
70
|
): Promise<StandardResponse<CustomerResponse>>;
|
|
73
71
|
|
|
74
|
-
/**
|
|
75
|
-
* POST /private/customers/ensure-by-phone?tenantId= — devuelve el cliente de ese celular o lo da
|
|
76
|
-
* de alta solo con el celular (ya verificado por OTP). Idempotente: dos llamadas con el mismo
|
|
77
|
-
* número devuelven el mismo cliente. `created=true` solo cuando esta llamada lo dio de alta.
|
|
78
|
-
*
|
|
79
|
-
* @throws `422 CUSTOMER_INACTIVE` si el número es de un cliente dado de baja.
|
|
80
|
-
* @throws `400 VALIDATION_ERROR` si el celular no trae 10 dígitos o falta la tienda.
|
|
81
|
-
*/
|
|
82
|
-
ensureCustomerByPhone(
|
|
83
|
-
payload: EnsureCustomerByPhoneRequest,
|
|
84
|
-
tenantId: string,
|
|
85
|
-
): Promise<StandardResponse<EnsureCustomerByPhoneResponse>>;
|
|
86
|
-
|
|
87
72
|
/**
|
|
88
73
|
* PUT /private/customers/{customerId}/account-result?tenantId= — aterriza el resultado terminal de
|
|
89
74
|
* la apertura de cuenta async (D35). Solo acepta OPEN/FAILED (nunca el intermedio OPENING). OPEN
|
|
@@ -10,6 +10,7 @@ import {
|
|
|
10
10
|
PrivateGoalListResponse,
|
|
11
11
|
GoalTargetTypeEnum,
|
|
12
12
|
RetailUserStatusEnum,
|
|
13
|
+
PrivateRetailUserWalletResponse,
|
|
13
14
|
} from "@fiado/type-kit/bin/retailOrg/index.js";
|
|
14
15
|
import type {
|
|
15
16
|
ApplyRetailEventRequest,
|
|
@@ -167,6 +168,19 @@ export default class RetailOrgBusinessApi implements IRetailOrgBusinessApi {
|
|
|
167
168
|
return await this.httpRequest.get(`${this.baseUrl}${path}?${query.toString()}`);
|
|
168
169
|
}
|
|
169
170
|
|
|
171
|
+
/** Wallet PCF del vendedor para el motor. Contrato → `IRetailOrgBusinessApi.getRetailUserWallet`. */
|
|
172
|
+
async getRetailUserWallet(
|
|
173
|
+
retailerId: string,
|
|
174
|
+
retailUserId: string,
|
|
175
|
+
tenantId: string,
|
|
176
|
+
): Promise<StandardResponse<PrivateRetailUserWalletResponse>> {
|
|
177
|
+
// La URL del SSM termina en "/"; se quita para no duplicarla.
|
|
178
|
+
const base = this.baseUrl.replace(/\/+$/, "");
|
|
179
|
+
const path = `/private/retailers/${encodeURIComponent(retailerId)}/users/${encodeURIComponent(retailUserId)}/wallet`;
|
|
180
|
+
const query = new URLSearchParams({ tenantId });
|
|
181
|
+
return await this.httpRequest.get(`${base}${path}?${query.toString()}`);
|
|
182
|
+
}
|
|
183
|
+
|
|
170
184
|
async privateApplyStoreEvent(request: ApplyStoreEventRequest): Promise<StandardResponse<ApplyStoreEventResponse>> {
|
|
171
185
|
return await this.applyRetailEvent("/private/integration/store-events", request);
|
|
172
186
|
}
|
|
@@ -10,6 +10,7 @@ import {
|
|
|
10
10
|
RetailUserStatusEnum,
|
|
11
11
|
RetailerStatusEnum,
|
|
12
12
|
StoreStatusEnum,
|
|
13
|
+
PrivateRetailUserWalletResponse,
|
|
13
14
|
} from "@fiado/type-kit/bin/retailOrg/index.js";
|
|
14
15
|
import type {
|
|
15
16
|
ApplyRetailUserEventRequest,
|
|
@@ -295,6 +296,20 @@ export interface IRetailOrgBusinessApi {
|
|
|
295
296
|
targetType?: GoalTargetTypeEnum,
|
|
296
297
|
): Promise<StandardResponse<PrivateGoalListResponse>>;
|
|
297
298
|
|
|
299
|
+
/**
|
|
300
|
+
* `GET /private/retailers/{retailerId}/users/{retailUserId}/wallet` — la wallet PCF del vendedor
|
|
301
|
+
* para el motor de comisiones. `directoryId` y `pcfAccountId` vienen en `null` si no tiene; la
|
|
302
|
+
* CLABE no viaja.
|
|
303
|
+
*
|
|
304
|
+
* @throws `404 RETAIL_USER_NOT_FOUND` si el vendedor no existe o es de otra cadena ·
|
|
305
|
+
* `400 UNKNOWN_TENANT` sin `tenantId`.
|
|
306
|
+
*/
|
|
307
|
+
getRetailUserWallet(
|
|
308
|
+
retailerId: string,
|
|
309
|
+
retailUserId: string,
|
|
310
|
+
tenantId: string,
|
|
311
|
+
): Promise<StandardResponse<PrivateRetailUserWalletResponse>>;
|
|
312
|
+
|
|
298
313
|
/** `POST /private/integration/store-events?tenantId=` — aplica un evento de tienda del retailer. */
|
|
299
314
|
privateApplyStoreEvent(request: ApplyStoreEventRequest): Promise<StandardResponse<ApplyStoreEventResponse>>;
|
|
300
315
|
|