@vulog/aima-vehicle 1.2.31 → 1.2.32

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/dist/index.cjs CHANGED
@@ -237,6 +237,22 @@ const createVehicle = async (client, body) => {
237
237
  return client.post(`/boapi/proxy/vehicle/fleets/${client.clientOptions.fleetId}/vehicles`, result.data).then(({ data }) => data);
238
238
  };
239
239
  //#endregion
240
+ //#region src/vehicleService.ts
241
+ const uuidSchema = zod.z.string().trim().min(1).uuid();
242
+ const addServiceForVehicle = async (client, serviceId, vehicleId) => {
243
+ const parsedServiceId = uuidSchema.safeParse(serviceId);
244
+ const parsedVehicleId = uuidSchema.safeParse(vehicleId);
245
+ if (!parsedServiceId.success || !parsedVehicleId.success) throw new TypeError("Invalid args", { cause: [...parsedServiceId.error?.issues ?? [], ...parsedVehicleId.error?.issues ?? []] });
246
+ await client.put(`/boapi/proxy/user/fleets/${client.clientOptions.fleetId}/services/${parsedServiceId.data}/vehicles/${parsedVehicleId.data}`, {});
247
+ };
248
+ const removeServiceForVehicle = async (client, serviceId, vehicleId) => {
249
+ const parsedServiceId = uuidSchema.safeParse(serviceId);
250
+ const parsedVehicleId = uuidSchema.safeParse(vehicleId);
251
+ if (!parsedServiceId.success || !parsedVehicleId.success) throw new TypeError("Invalid args", { cause: [...parsedServiceId.error?.issues ?? [], ...parsedVehicleId.error?.issues ?? []] });
252
+ await client.delete(`/boapi/proxy/user/fleets/${client.clientOptions.fleetId}/services/${parsedServiceId.data}/vehicles/${parsedVehicleId.data}`);
253
+ };
254
+ //#endregion
255
+ exports.addServiceForVehicle = addServiceForVehicle;
240
256
  exports.createVehicle = createVehicle;
241
257
  exports.disableVehicle = disableVehicle;
242
258
  exports.enableVehicle = enableVehicle;
@@ -250,3 +266,4 @@ exports.getVehicleRealTimeById = getVehicleRealTimeById;
250
266
  exports.getVehicles = getVehicles;
251
267
  exports.getVehiclesRealTime = getVehiclesRealTime;
252
268
  exports.pingVehicleById = pingVehicleById;
269
+ exports.removeServiceForVehicle = removeServiceForVehicle;
package/dist/index.d.cts CHANGED
@@ -270,4 +270,8 @@ type CreateVehicleBody = {
270
270
  };
271
271
  declare const createVehicle: (client: Client, body: CreateVehicleBody) => Promise<Vehicle>;
272
272
  //#endregion
273
- export { Assets, CreateVehicleBody, DisableVehicleBody, EnableVehicleBody, Model, ModelVehicle, Options, Vehicle, VehicleRealTime, Zone, createVehicle, disableVehicle, enableVehicle, getModelByIdAssets, getModelVehicles, getModels, getModelsById, getVehicleById, getVehicleByIdAssets, getVehicleRealTimeById, getVehicles, getVehiclesRealTime, pingVehicleById };
273
+ //#region src/vehicleService.d.ts
274
+ declare const addServiceForVehicle: (client: Client, serviceId: string, vehicleId: string) => Promise<void>;
275
+ declare const removeServiceForVehicle: (client: Client, serviceId: string, vehicleId: string) => Promise<void>;
276
+ //#endregion
277
+ export { Assets, CreateVehicleBody, DisableVehicleBody, EnableVehicleBody, Model, ModelVehicle, Options, Vehicle, VehicleRealTime, Zone, addServiceForVehicle, createVehicle, disableVehicle, enableVehicle, getModelByIdAssets, getModelVehicles, getModels, getModelsById, getVehicleById, getVehicleByIdAssets, getVehicleRealTimeById, getVehicles, getVehiclesRealTime, pingVehicleById, removeServiceForVehicle };
package/dist/index.d.mts CHANGED
@@ -270,4 +270,8 @@ type CreateVehicleBody = {
270
270
  };
271
271
  declare const createVehicle: (client: Client, body: CreateVehicleBody) => Promise<Vehicle>;
272
272
  //#endregion
273
- export { Assets, CreateVehicleBody, DisableVehicleBody, EnableVehicleBody, Model, ModelVehicle, Options, Vehicle, VehicleRealTime, Zone, createVehicle, disableVehicle, enableVehicle, getModelByIdAssets, getModelVehicles, getModels, getModelsById, getVehicleById, getVehicleByIdAssets, getVehicleRealTimeById, getVehicles, getVehiclesRealTime, pingVehicleById };
273
+ //#region src/vehicleService.d.ts
274
+ declare const addServiceForVehicle: (client: Client, serviceId: string, vehicleId: string) => Promise<void>;
275
+ declare const removeServiceForVehicle: (client: Client, serviceId: string, vehicleId: string) => Promise<void>;
276
+ //#endregion
277
+ export { Assets, CreateVehicleBody, DisableVehicleBody, EnableVehicleBody, Model, ModelVehicle, Options, Vehicle, VehicleRealTime, Zone, addServiceForVehicle, createVehicle, disableVehicle, enableVehicle, getModelByIdAssets, getModelVehicles, getModels, getModelsById, getVehicleById, getVehicleByIdAssets, getVehicleRealTimeById, getVehicles, getVehiclesRealTime, pingVehicleById, removeServiceForVehicle };
package/dist/index.mjs CHANGED
@@ -213,4 +213,19 @@ const createVehicle = async (client, body) => {
213
213
  return client.post(`/boapi/proxy/vehicle/fleets/${client.clientOptions.fleetId}/vehicles`, result.data).then(({ data }) => data);
214
214
  };
215
215
  //#endregion
216
- export { createVehicle, disableVehicle, enableVehicle, getModelByIdAssets, getModelVehicles, getModels, getModelsById, getVehicleById, getVehicleByIdAssets, getVehicleRealTimeById, getVehicles, getVehiclesRealTime, pingVehicleById };
216
+ //#region src/vehicleService.ts
217
+ const uuidSchema = z.string().trim().min(1).uuid();
218
+ const addServiceForVehicle = async (client, serviceId, vehicleId) => {
219
+ const parsedServiceId = uuidSchema.safeParse(serviceId);
220
+ const parsedVehicleId = uuidSchema.safeParse(vehicleId);
221
+ if (!parsedServiceId.success || !parsedVehicleId.success) throw new TypeError("Invalid args", { cause: [...parsedServiceId.error?.issues ?? [], ...parsedVehicleId.error?.issues ?? []] });
222
+ await client.put(`/boapi/proxy/user/fleets/${client.clientOptions.fleetId}/services/${parsedServiceId.data}/vehicles/${parsedVehicleId.data}`, {});
223
+ };
224
+ const removeServiceForVehicle = async (client, serviceId, vehicleId) => {
225
+ const parsedServiceId = uuidSchema.safeParse(serviceId);
226
+ const parsedVehicleId = uuidSchema.safeParse(vehicleId);
227
+ if (!parsedServiceId.success || !parsedVehicleId.success) throw new TypeError("Invalid args", { cause: [...parsedServiceId.error?.issues ?? [], ...parsedVehicleId.error?.issues ?? []] });
228
+ await client.delete(`/boapi/proxy/user/fleets/${client.clientOptions.fleetId}/services/${parsedServiceId.data}/vehicles/${parsedVehicleId.data}`);
229
+ };
230
+ //#endregion
231
+ export { addServiceForVehicle, createVehicle, disableVehicle, enableVehicle, getModelByIdAssets, getModelVehicles, getModels, getModelsById, getVehicleById, getVehicleByIdAssets, getVehicleRealTimeById, getVehicles, getVehiclesRealTime, pingVehicleById, removeServiceForVehicle };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@vulog/aima-vehicle",
3
3
  "type": "module",
4
- "version": "1.2.31",
4
+ "version": "1.2.32",
5
5
  "main": "dist/index.cjs",
6
6
  "module": "dist/index.mjs",
7
7
  "types": "dist/index.d.cts",
@@ -32,8 +32,8 @@
32
32
  "author": "Vulog",
33
33
  "license": "MIT",
34
34
  "dependencies": {
35
- "@vulog/aima-client": "1.2.31",
36
- "@vulog/aima-core": "1.2.31"
35
+ "@vulog/aima-client": "1.2.32",
36
+ "@vulog/aima-core": "1.2.32"
37
37
  },
38
38
  "peerDependencies": {
39
39
  "zod": "^3.25.76"
package/src/index.ts CHANGED
@@ -10,3 +10,4 @@ export * from './enableVehicle';
10
10
  export * from './disableVehicle';
11
11
  export * from './getModelVehicles';
12
12
  export * from './createVehicle';
13
+ export * from './vehicleService';
@@ -0,0 +1,63 @@
1
+ import { describe, test, vi, expect, beforeEach } from 'vitest';
2
+ import { Client } from '@vulog/aima-client';
3
+ import { addServiceForVehicle, removeServiceForVehicle } from './vehicleService';
4
+
5
+ describe('vehicleService', () => {
6
+ const putMock = vi.fn();
7
+ const deleteMock = vi.fn();
8
+ const client = {
9
+ put: putMock,
10
+ delete: deleteMock,
11
+ clientOptions: {
12
+ fleetId: 'FLEET_ID',
13
+ },
14
+ } as unknown as Client;
15
+
16
+ const serviceId = 'ed539d7d-d815-405b-bc00-71008fb1954c';
17
+ const vehicleId = 'b931b17e-214f-4a73-ad94-77a973435768';
18
+
19
+ beforeEach(() => {
20
+ vi.clearAllMocks();
21
+ });
22
+
23
+ describe('addServiceForVehicle', () => {
24
+ test('should call PUT with correct URL', async () => {
25
+ putMock.mockResolvedValueOnce({ data: undefined });
26
+
27
+ await addServiceForVehicle(client, serviceId, vehicleId);
28
+
29
+ expect(putMock).toHaveBeenCalledWith(
30
+ `/boapi/proxy/user/fleets/FLEET_ID/services/${serviceId}/vehicles/${vehicleId}`,
31
+ {}
32
+ );
33
+ });
34
+
35
+ test('should throw for invalid serviceId', async () => {
36
+ await expect(addServiceForVehicle(client, 'not-a-uuid', vehicleId)).rejects.toThrow(TypeError);
37
+ });
38
+
39
+ test('should throw for invalid vehicleId', async () => {
40
+ await expect(addServiceForVehicle(client, serviceId, 'not-a-uuid')).rejects.toThrow(TypeError);
41
+ });
42
+ });
43
+
44
+ describe('removeServiceForVehicle', () => {
45
+ test('should call DELETE with correct URL', async () => {
46
+ deleteMock.mockResolvedValueOnce({ data: undefined });
47
+
48
+ await removeServiceForVehicle(client, serviceId, vehicleId);
49
+
50
+ expect(deleteMock).toHaveBeenCalledWith(
51
+ `/boapi/proxy/user/fleets/FLEET_ID/services/${serviceId}/vehicles/${vehicleId}`
52
+ );
53
+ });
54
+
55
+ test('should throw for invalid serviceId', async () => {
56
+ await expect(removeServiceForVehicle(client, 'not-a-uuid', vehicleId)).rejects.toThrow(TypeError);
57
+ });
58
+
59
+ test('should throw for invalid vehicleId', async () => {
60
+ await expect(removeServiceForVehicle(client, serviceId, 'not-a-uuid')).rejects.toThrow(TypeError);
61
+ });
62
+ });
63
+ });
@@ -0,0 +1,33 @@
1
+ import { Client } from '@vulog/aima-client';
2
+ import { z } from 'zod';
3
+
4
+ const uuidSchema = z.string().trim().min(1).uuid();
5
+
6
+ export const addServiceForVehicle = async (client: Client, serviceId: string, vehicleId: string): Promise<void> => {
7
+ const parsedServiceId = uuidSchema.safeParse(serviceId);
8
+ const parsedVehicleId = uuidSchema.safeParse(vehicleId);
9
+ if (!parsedServiceId.success || !parsedVehicleId.success) {
10
+ throw new TypeError('Invalid args', {
11
+ cause: [...(parsedServiceId.error?.issues ?? []), ...(parsedVehicleId.error?.issues ?? [])],
12
+ });
13
+ }
14
+
15
+ await client.put<void>(
16
+ `/boapi/proxy/user/fleets/${client.clientOptions.fleetId}/services/${parsedServiceId.data}/vehicles/${parsedVehicleId.data}`,
17
+ {}
18
+ );
19
+ };
20
+
21
+ export const removeServiceForVehicle = async (client: Client, serviceId: string, vehicleId: string): Promise<void> => {
22
+ const parsedServiceId = uuidSchema.safeParse(serviceId);
23
+ const parsedVehicleId = uuidSchema.safeParse(vehicleId);
24
+ if (!parsedServiceId.success || !parsedVehicleId.success) {
25
+ throw new TypeError('Invalid args', {
26
+ cause: [...(parsedServiceId.error?.issues ?? []), ...(parsedVehicleId.error?.issues ?? [])],
27
+ });
28
+ }
29
+
30
+ await client.delete<void>(
31
+ `/boapi/proxy/user/fleets/${client.clientOptions.fleetId}/services/${parsedServiceId.data}/vehicles/${parsedVehicleId.data}`
32
+ );
33
+ };