@fiado/api-invoker 5.47.0 → 5.48.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.
@@ -1,7 +1,7 @@
1
1
  import type { IHttpRequest } from "@fiado/http-client";
2
2
  import { StandardResponse } from "@fiado/gateway-adapter";
3
- import { DeviceAutoLockScheduleRequest, DeviceAutoLockScheduleResponse, DeviceEnrollInitiateResponse, DeviceEnrollRequest, DeviceEnrollStatusRequest, DeviceEnrollStatusResponse, DeviceLastSeenRequest, DeviceLastSeenResponse, DeviceLockRequest, DeviceLockResponse, DeviceStatusRequest, DeviceStatusResponse, DeviceUnlockRequest, DeviceUnlockResponse } from "@fiado/type-kit/bin/mdm/index.js";
4
- import { DeviceBatchRequest, DeviceBatchResult, IDatacultrConnectorApi } from "./interfaces/IDatacultrConnectorApi.js";
3
+ import { DeviceAutoLockScheduleRequest, DeviceAutoLockScheduleResponse, DeviceEnrollInitiateResponse, DeviceEnrollRequest, DeviceEnrollStatusRequest, DeviceEnrollStatusResponse, DeviceLastSeenRequest, DeviceLastSeenResponse, DeviceLockRequest, DeviceLockResponse, DeviceNotifyRequest, DeviceNotifyResponse, DevicePinUnlockRequest, DevicePinUnlockResponse, DeviceReleaseInitiateResponse, DeviceReleaseRequest, DeviceReleaseStatusRequest, DeviceReleaseStatusResponse, DeviceStatusRequest, DeviceStatusResponse, DeviceUnlockRequest, DeviceUnlockResponse } from "@fiado/type-kit/bin/mdm/index.js";
4
+ import { DeviceBatchRequest, DeviceBatchResult, DeviceSingleResult, IDatacultrConnectorApi } from "./interfaces/IDatacultrConnectorApi.js";
5
5
  /**
6
6
  * Publisher HTTP del lambda `datacultr-connector` (provider MDM de SureKeep). Contrato y semántica
7
7
  * completos → `IDatacultrConnectorApi` (paths sin prefijo `/private`, sin tenant, `StandardResponse`
@@ -25,4 +25,8 @@ export default class DatacultrConnectorApi implements IDatacultrConnectorApi {
25
25
  lockDevices(input: DeviceBatchRequest<DeviceLockRequest>): Promise<StandardResponse<DeviceBatchResult<DeviceLockResponse>>>;
26
26
  unlockDevices(input: DeviceBatchRequest<DeviceUnlockRequest>): Promise<StandardResponse<DeviceBatchResult<DeviceUnlockResponse>>>;
27
27
  autoLockSchedule(input: DeviceBatchRequest<DeviceAutoLockScheduleRequest>): Promise<StandardResponse<DeviceBatchResult<DeviceAutoLockScheduleResponse>>>;
28
+ pinUnlock(input: DevicePinUnlockRequest): Promise<StandardResponse<DeviceSingleResult<DevicePinUnlockResponse>>>;
29
+ notifyDevices(input: DeviceBatchRequest<DeviceNotifyRequest>): Promise<StandardResponse<DeviceBatchResult<DeviceNotifyResponse>>>;
30
+ releaseDevices(input: DeviceBatchRequest<DeviceReleaseRequest>): Promise<StandardResponse<DeviceBatchResult<DeviceReleaseInitiateResponse>>>;
31
+ releaseStatus(input: DeviceBatchRequest<DeviceReleaseStatusRequest>): Promise<StandardResponse<DeviceBatchResult<DeviceReleaseStatusResponse>>>;
28
32
  }
@@ -51,6 +51,18 @@ let DatacultrConnectorApi = class DatacultrConnectorApi {
51
51
  async autoLockSchedule(input) {
52
52
  return await this.httpRequest.post(`${this.baseUrl}/devices/auto-lock-schedule`, input);
53
53
  }
54
+ async pinUnlock(input) {
55
+ return await this.httpRequest.post(`${this.baseUrl}/devices/pin-unlock`, input);
56
+ }
57
+ async notifyDevices(input) {
58
+ return await this.httpRequest.post(`${this.baseUrl}/devices/notify`, input);
59
+ }
60
+ async releaseDevices(input) {
61
+ return await this.httpRequest.post(`${this.baseUrl}/devices/release`, input);
62
+ }
63
+ async releaseStatus(input) {
64
+ return await this.httpRequest.post(`${this.baseUrl}/devices/release/status`, input);
65
+ }
54
66
  };
55
67
  DatacultrConnectorApi = __decorate([
56
68
  injectable(),
@@ -1,5 +1,5 @@
1
1
  import { StandardResponse } from "@fiado/gateway-adapter";
2
- import { DeviceAutoLockScheduleRequest, DeviceAutoLockScheduleResponse, DeviceEnrollInitiateResponse, DeviceEnrollRequest, DeviceEnrollStatusRequest, DeviceEnrollStatusResponse, DeviceLastSeenRequest, DeviceLastSeenResponse, DeviceLockRequest, DeviceLockResponse, DeviceStatusRequest, DeviceStatusResponse, DeviceUnlockRequest, DeviceUnlockResponse } from "@fiado/type-kit/bin/mdm/index.js";
2
+ import { DeviceAutoLockScheduleRequest, DeviceAutoLockScheduleResponse, DeviceEnrollInitiateResponse, DeviceEnrollRequest, DeviceEnrollStatusRequest, DeviceEnrollStatusResponse, DeviceLastSeenRequest, DeviceLastSeenResponse, DeviceLockRequest, DeviceLockResponse, DeviceNotifyRequest, DeviceNotifyResponse, DevicePinUnlockRequest, DevicePinUnlockResponse, DeviceReleaseInitiateResponse, DeviceReleaseRequest, DeviceReleaseStatusRequest, DeviceReleaseStatusResponse, DeviceStatusRequest, DeviceStatusResponse, DeviceUnlockRequest, DeviceUnlockResponse } from "@fiado/type-kit/bin/mdm/index.js";
3
3
  /**
4
4
  * Contrato del publisher HTTP del lambda `datacultr-connector` — el provider MDM que traduce el
5
5
  * contrato agnóstico de dispositivo (`@fiado/type-kit/bin/mdm`) a la API de Datacultr. Su consumidor
@@ -58,6 +58,10 @@ export interface DeviceBatchRequest<TItem> {
58
58
  export interface DeviceBatchResult<TItem> {
59
59
  results: TItem[];
60
60
  }
61
+ /** Sobre de salida de los endpoints de UN solo IMEI. Hoy solo `pinUnlock` no es batch. */
62
+ export interface DeviceSingleResult<TItem> {
63
+ result: TItem;
64
+ }
61
65
  export interface IDatacultrConnectorApi {
62
66
  /**
63
67
  * POST `/devices/enroll` — pre-registra la expectativa de enrolamiento de cada IMEI.
@@ -102,4 +106,30 @@ export interface IDatacultrConnectorApi {
102
106
  * Es la vía real del bloqueo en Datacultr: el inmediato no surte efecto, el programado sí.
103
107
  */
104
108
  autoLockSchedule(input: DeviceBatchRequest<DeviceAutoLockScheduleRequest>): Promise<StandardResponse<DeviceBatchResult<DeviceAutoLockScheduleResponse>>>;
109
+ /**
110
+ * POST `/devices/pin-unlock` — pide a Datacultr el passcode de desbloqueo del equipo.
111
+ *
112
+ * ⚠️ NO ES BATCH, a diferencia del resto del contrato: recibe UN `DevicePinUnlockRequest` y
113
+ * devuelve `{ result }`, no `{ results }`. El destino lo declara así en su `PrivateController`.
114
+ *
115
+ * Es el camino del "desbloqueo especial" del backoffice: el operador le dicta el PIN al cliente
116
+ * que se quedó sin señal. `pin`, `validitySeconds` y `generatedAt` solo vienen con `status`
117
+ * `SUCCESS`; si el proveedor no devolvió passcode, el ítem llega en `ERROR` con su `error.code`.
118
+ */
119
+ pinUnlock(input: DevicePinUnlockRequest): Promise<StandardResponse<DeviceSingleResult<DevicePinUnlockResponse>>>;
120
+ /**
121
+ * POST `/devices/notify` — manda una notificación al equipo de cada IMEI.
122
+ *
123
+ * ⚠️ `notificationCode` es OBLIGATORIO y sale del catálogo de mensajes predefinidos de Datacultr,
124
+ * que hoy NO tenemos. Sin ese catálogo el caller no puede armar un request válido: pedirlo antes
125
+ * de construir encima.
126
+ */
127
+ notifyDevices(input: DeviceBatchRequest<DeviceNotifyRequest>): Promise<StandardResponse<DeviceBatchResult<DeviceNotifyResponse>>>;
128
+ /**
129
+ * POST `/devices/release` — libera definitivamente cada IMEI del MDM (crédito liquidado o
130
+ * cancelado). Es asíncrono: el ítem suele volver en `PENDING` y se confirma con `releaseStatus`.
131
+ */
132
+ releaseDevices(input: DeviceBatchRequest<DeviceReleaseRequest>): Promise<StandardResponse<DeviceBatchResult<DeviceReleaseInitiateResponse>>>;
133
+ /** POST `/devices/release/status` — consulta en qué punto va la liberación de cada IMEI. */
134
+ releaseStatus(input: DeviceBatchRequest<DeviceReleaseStatusRequest>): Promise<StandardResponse<DeviceBatchResult<DeviceReleaseStatusResponse>>>;
105
135
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fiado/api-invoker",
3
- "version": "5.47.0",
3
+ "version": "5.48.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",
@@ -12,6 +12,14 @@ import {
12
12
  DeviceLastSeenResponse,
13
13
  DeviceLockRequest,
14
14
  DeviceLockResponse,
15
+ DeviceNotifyRequest,
16
+ DeviceNotifyResponse,
17
+ DevicePinUnlockRequest,
18
+ DevicePinUnlockResponse,
19
+ DeviceReleaseInitiateResponse,
20
+ DeviceReleaseRequest,
21
+ DeviceReleaseStatusRequest,
22
+ DeviceReleaseStatusResponse,
15
23
  DeviceStatusRequest,
16
24
  DeviceStatusResponse,
17
25
  DeviceUnlockRequest,
@@ -20,6 +28,7 @@ import {
20
28
  import {
21
29
  DeviceBatchRequest,
22
30
  DeviceBatchResult,
31
+ DeviceSingleResult,
23
32
  IDatacultrConnectorApi,
24
33
  } from "./interfaces/IDatacultrConnectorApi.js";
25
34
 
@@ -83,4 +92,28 @@ export default class DatacultrConnectorApi implements IDatacultrConnectorApi {
83
92
  ): Promise<StandardResponse<DeviceBatchResult<DeviceAutoLockScheduleResponse>>> {
84
93
  return await this.httpRequest.post(`${this.baseUrl}/devices/auto-lock-schedule`, input);
85
94
  }
95
+
96
+ async pinUnlock(
97
+ input: DevicePinUnlockRequest,
98
+ ): Promise<StandardResponse<DeviceSingleResult<DevicePinUnlockResponse>>> {
99
+ return await this.httpRequest.post(`${this.baseUrl}/devices/pin-unlock`, input);
100
+ }
101
+
102
+ async notifyDevices(
103
+ input: DeviceBatchRequest<DeviceNotifyRequest>,
104
+ ): Promise<StandardResponse<DeviceBatchResult<DeviceNotifyResponse>>> {
105
+ return await this.httpRequest.post(`${this.baseUrl}/devices/notify`, input);
106
+ }
107
+
108
+ async releaseDevices(
109
+ input: DeviceBatchRequest<DeviceReleaseRequest>,
110
+ ): Promise<StandardResponse<DeviceBatchResult<DeviceReleaseInitiateResponse>>> {
111
+ return await this.httpRequest.post(`${this.baseUrl}/devices/release`, input);
112
+ }
113
+
114
+ async releaseStatus(
115
+ input: DeviceBatchRequest<DeviceReleaseStatusRequest>,
116
+ ): Promise<StandardResponse<DeviceBatchResult<DeviceReleaseStatusResponse>>> {
117
+ return await this.httpRequest.post(`${this.baseUrl}/devices/release/status`, input);
118
+ }
86
119
  }
@@ -10,6 +10,14 @@ import {
10
10
  DeviceLastSeenResponse,
11
11
  DeviceLockRequest,
12
12
  DeviceLockResponse,
13
+ DeviceNotifyRequest,
14
+ DeviceNotifyResponse,
15
+ DevicePinUnlockRequest,
16
+ DevicePinUnlockResponse,
17
+ DeviceReleaseInitiateResponse,
18
+ DeviceReleaseRequest,
19
+ DeviceReleaseStatusRequest,
20
+ DeviceReleaseStatusResponse,
13
21
  DeviceStatusRequest,
14
22
  DeviceStatusResponse,
15
23
  DeviceUnlockRequest,
@@ -77,6 +85,11 @@ export interface DeviceBatchResult<TItem> {
77
85
  results: TItem[];
78
86
  }
79
87
 
88
+ /** Sobre de salida de los endpoints de UN solo IMEI. Hoy solo `pinUnlock` no es batch. */
89
+ export interface DeviceSingleResult<TItem> {
90
+ result: TItem;
91
+ }
92
+
80
93
  export interface IDatacultrConnectorApi {
81
94
  /**
82
95
  * POST `/devices/enroll` — pre-registra la expectativa de enrolamiento de cada IMEI.
@@ -141,4 +154,42 @@ export interface IDatacultrConnectorApi {
141
154
  autoLockSchedule(
142
155
  input: DeviceBatchRequest<DeviceAutoLockScheduleRequest>,
143
156
  ): Promise<StandardResponse<DeviceBatchResult<DeviceAutoLockScheduleResponse>>>;
157
+
158
+ /**
159
+ * POST `/devices/pin-unlock` — pide a Datacultr el passcode de desbloqueo del equipo.
160
+ *
161
+ * ⚠️ NO ES BATCH, a diferencia del resto del contrato: recibe UN `DevicePinUnlockRequest` y
162
+ * devuelve `{ result }`, no `{ results }`. El destino lo declara así en su `PrivateController`.
163
+ *
164
+ * Es el camino del "desbloqueo especial" del backoffice: el operador le dicta el PIN al cliente
165
+ * que se quedó sin señal. `pin`, `validitySeconds` y `generatedAt` solo vienen con `status`
166
+ * `SUCCESS`; si el proveedor no devolvió passcode, el ítem llega en `ERROR` con su `error.code`.
167
+ */
168
+ pinUnlock(
169
+ input: DevicePinUnlockRequest,
170
+ ): Promise<StandardResponse<DeviceSingleResult<DevicePinUnlockResponse>>>;
171
+
172
+ /**
173
+ * POST `/devices/notify` — manda una notificación al equipo de cada IMEI.
174
+ *
175
+ * ⚠️ `notificationCode` es OBLIGATORIO y sale del catálogo de mensajes predefinidos de Datacultr,
176
+ * que hoy NO tenemos. Sin ese catálogo el caller no puede armar un request válido: pedirlo antes
177
+ * de construir encima.
178
+ */
179
+ notifyDevices(
180
+ input: DeviceBatchRequest<DeviceNotifyRequest>,
181
+ ): Promise<StandardResponse<DeviceBatchResult<DeviceNotifyResponse>>>;
182
+
183
+ /**
184
+ * POST `/devices/release` — libera definitivamente cada IMEI del MDM (crédito liquidado o
185
+ * cancelado). Es asíncrono: el ítem suele volver en `PENDING` y se confirma con `releaseStatus`.
186
+ */
187
+ releaseDevices(
188
+ input: DeviceBatchRequest<DeviceReleaseRequest>,
189
+ ): Promise<StandardResponse<DeviceBatchResult<DeviceReleaseInitiateResponse>>>;
190
+
191
+ /** POST `/devices/release/status` — consulta en qué punto va la liberación de cada IMEI. */
192
+ releaseStatus(
193
+ input: DeviceBatchRequest<DeviceReleaseStatusRequest>,
194
+ ): Promise<StandardResponse<DeviceBatchResult<DeviceReleaseStatusResponse>>>;
144
195
  }