@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 +17 -0
- package/dist/index.d.cts +5 -1
- package/dist/index.d.mts +5 -1
- package/dist/index.mjs +16 -1
- package/package.json +3 -3
- package/src/index.ts +1 -0
- package/src/vehicleService.test.ts +63 -0
- package/src/vehicleService.ts +33 -0
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
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.
|
|
36
|
-
"@vulog/aima-core": "1.2.
|
|
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
|
@@ -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
|
+
};
|