Skip to content

Commit cb9970a

Browse files
authored
Merge pull request #34 from ctrl-hub/add-exposures
Added equipment exposures api call
2 parents 2c734e9 + 86d513c commit cb9970a

15 files changed

+264
-1
lines changed

dist/Client.d.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import type { InternalResponse } from './types/Response';
1111
import { GroupsService } from './services/GroupService';
1212
import { VehiclesService } from './services/VehiclesService';
1313
import { EquipmentService } from './services/EquipmentService';
14+
import { EquipmentExposureService } from './services/EquipmentExposureService';
1415
import { VehicleManufacturersService } from '@services/VehicleManufacturersService';
1516
import { VehicleModelsService } from '@services/VehicleModelsService';
1617
import { VehicleCategoriesService } from '@services/VehicleCategoriesService';
@@ -57,6 +58,7 @@ export declare class Client {
5758
vehicleCategories(): VehicleCategoriesService;
5859
vehicleModels(): VehicleModelsService;
5960
equipment(): EquipmentService;
61+
equipmentExposures(): EquipmentExposureService;
6062
equipmentManufacturers(): EquipmentManufacturersService;
6163
equipmentModels(): EquipmentModelsService;
6264
equipmentCategories(): EquipmentCategoriesService;

dist/Client.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import { ServiceAccountKeysService } from './services/ServiceAccountKeysService'
1010
import { GroupsService } from './services/GroupService';
1111
import { VehiclesService } from './services/VehiclesService';
1212
import { EquipmentService } from './services/EquipmentService';
13+
import { EquipmentExposureService } from './services/EquipmentExposureService';
1314
import { VehicleManufacturersService } from '@services/VehicleManufacturersService';
1415
import { VehicleModelsService } from '@services/VehicleModelsService';
1516
import { VehicleCategoriesService } from '@services/VehicleCategoriesService';
@@ -124,6 +125,9 @@ export class Client {
124125
equipment() {
125126
return new EquipmentService(this);
126127
}
128+
equipmentExposures() {
129+
return new EquipmentExposureService(this);
130+
}
127131
equipmentManufacturers() {
128132
return new EquipmentManufacturersService(this);
129133
}

dist/index.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ export { Customer } from './models/Customer';
99
export { CustomerInteraction } from './models/CustomerInteraction';
1010
export { Equipment } from './models/Equipment';
1111
export { EquipmentCategory } from './models/EquipmentCategory';
12+
export { EquipmentExposure } from './models/EquipmentExposure';
1213
export { EquipmentModel } from './models/EquipmentModel';
1314
export { EquipmentManufacturer } from './models/EquipmentManufacturer';
1415
export { Form } from './models/Form';

dist/index.js

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,61 @@ class EquipmentCategory extends BaseModel {
214214
}
215215
}
216216

217+
// src/models/EquipmentExposure.ts
218+
class EquipmentExposure extends BaseModel {
219+
type = "equipment-exposures";
220+
start_time;
221+
end_time;
222+
location = {
223+
type: "Point",
224+
coordinates: [0, 0]
225+
};
226+
ppe = {
227+
mask: false,
228+
ear_defenders: false
229+
};
230+
jsonApiMapping() {
231+
return {
232+
attributes: ["end_time", "location", "ppe", "start_time"],
233+
relationships: {
234+
author: "author",
235+
equipment: "equipment"
236+
}
237+
};
238+
}
239+
static relationships = [
240+
{
241+
name: "author",
242+
type: "single",
243+
modelType: "users"
244+
},
245+
{
246+
name: "equipment",
247+
type: "single",
248+
modelType: "equipment"
249+
}
250+
];
251+
constructor(data) {
252+
super(data);
253+
this.start_time = data?.attributes?.start_time?.id ?? data?.start_time ?? "";
254+
this.end_time = data?.attributes?.end_time ?? data?.end_time ?? "";
255+
if (data?.attributes?.location) {
256+
const locationData = data.attributes.location;
257+
this.location = {
258+
type: locationData.type ?? "",
259+
coordinates: locationData.coordinates ?? []
260+
};
261+
}
262+
if (data?.attributes?.ppe) {
263+
const ppeData = data.attributes.ppe;
264+
this.ppe = {
265+
mask: ppeData.ppe?.mask ?? false,
266+
ear_defenders: ppeData.ppe?.ear_defenders ?? false
267+
};
268+
}
269+
}
270+
}
271+
217272
// src/models/EquipmentModel.ts
218273
class EquipmentModel extends BaseModel {
219274
type = "equipment-models";
@@ -984,6 +1039,7 @@ class Hydrator {
9841039
"customer-interactions": CustomerInteraction,
9851040
"equipment-categories": EquipmentCategory,
9861041
"equipment-items": Equipment,
1042+
"equipment-exposures": EquipmentExposure,
9871043
"equipment-models": EquipmentModel,
9881044
"equipment-manufacturers": EquipmentManufacturer,
9891045
forms: Form,
@@ -1442,6 +1498,13 @@ class EquipmentService extends BaseService {
14421498
}
14431499
}
14441500

1501+
// src/services/EquipmentExposureService.ts
1502+
class EquipmentExposureService extends BaseService {
1503+
constructor(client) {
1504+
super(client, "/v3/orgs/:orgId/assets/equipment/exposures");
1505+
}
1506+
}
1507+
14451508
// src/services/VehicleManufacturersService.ts
14461509
class VehicleManufacturersService extends BaseService {
14471510
constructor(client) {
@@ -1699,6 +1762,9 @@ class Client {
16991762
equipment() {
17001763
return new EquipmentService(this);
17011764
}
1765+
equipmentExposures() {
1766+
return new EquipmentExposureService(this);
1767+
}
17021768
equipmentManufacturers() {
17031769
return new EquipmentManufacturersService(this);
17041770
}
@@ -1895,6 +1961,7 @@ export {
18951961
Form,
18961962
EquipmentModel,
18971963
EquipmentManufacturer,
1964+
EquipmentExposure,
18981965
EquipmentCategory,
18991966
Equipment,
19001967
CustomerInteraction,

dist/models/EquipmentExposure.d.ts

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
import type { RelationshipDefinition } from '../types/RelationshipDefinition';
2+
import { BaseModel } from '@models/BaseModel';
3+
import type { JsonApiMapping } from '../types/JsonApiMapping';
4+
type Location = {
5+
type: "Point";
6+
coordinates: [number, number];
7+
};
8+
type PPE = {
9+
mask: boolean;
10+
ear_defenders: boolean;
11+
};
12+
export declare class EquipmentExposure extends BaseModel implements Partial<JsonApiMapping> {
13+
type: string;
14+
start_time: string;
15+
end_time: string;
16+
location: Location;
17+
ppe: PPE;
18+
jsonApiMapping(): {
19+
attributes: string[];
20+
relationships: {
21+
author: string;
22+
equipment: string;
23+
};
24+
};
25+
static relationships: RelationshipDefinition[];
26+
constructor(data?: any);
27+
}
28+
export {};

dist/models/EquipmentExposure.js

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
import { BaseModel } from '@models/BaseModel';
2+
export class EquipmentExposure extends BaseModel {
3+
type = 'equipment-exposures';
4+
start_time; // ISO date string
5+
end_time; // ISO date string
6+
location = {
7+
type: "Point",
8+
coordinates: [0, 0],
9+
};
10+
ppe = {
11+
mask: false,
12+
ear_defenders: false,
13+
};
14+
jsonApiMapping() {
15+
return {
16+
attributes: ['end_time', 'location', 'ppe', 'start_time'],
17+
relationships: {
18+
author: 'author',
19+
equipment: 'equipment',
20+
},
21+
};
22+
}
23+
static relationships = [
24+
{
25+
name: 'author',
26+
type: 'single',
27+
modelType: 'users',
28+
},
29+
{
30+
name: 'equipment',
31+
type: 'single',
32+
modelType: 'equipment',
33+
},
34+
];
35+
constructor(data) {
36+
super(data);
37+
this.start_time = data?.attributes?.start_time?.id ?? data?.start_time ?? '';
38+
this.end_time = data?.attributes?.end_time ?? data?.end_time ?? '';
39+
if (data?.attributes?.location) {
40+
const locationData = data.attributes.location;
41+
this.location = {
42+
type: locationData.type ?? '',
43+
coordinates: locationData.coordinates ?? []
44+
};
45+
}
46+
if (data?.attributes?.ppe) {
47+
const ppeData = data.attributes.ppe;
48+
this.ppe = {
49+
mask: ppeData.ppe?.mask ?? false,
50+
ear_defenders: ppeData.ppe?.ear_defenders ?? false
51+
};
52+
}
53+
}
54+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import { Client } from "Client";
2+
import { BaseService } from "./BaseService";
3+
import { EquipmentExposure } from "@models/EquipmentExposure";
4+
export declare class EquipmentExposureService extends BaseService<EquipmentExposure> {
5+
constructor(client: Client);
6+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import { Client } from "Client";
2+
import { BaseService } from "./BaseService";
3+
import { EquipmentExposure } from "@models/EquipmentExposure";
4+
export class EquipmentExposureService extends BaseService {
5+
constructor(client) {
6+
super(client, "/v3/orgs/:orgId/assets/equipment/exposures");
7+
}
8+
}

dist/utils/Hydrator.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { Equipment } from '@models/Equipment';
22
import { EquipmentCategory } from '@models/EquipmentCategory';
3+
import { EquipmentExposure } from '@models/EquipmentExposure';
34
import { EquipmentModel } from '@models/EquipmentModel';
45
import { Form } from '@models/Form';
56
import { FormCategory } from '@models/FormCategory';
@@ -34,6 +35,7 @@ export class Hydrator {
3435
'customer-interactions': CustomerInteraction,
3536
'equipment-categories': EquipmentCategory,
3637
'equipment-items': Equipment,
38+
'equipment-exposures': EquipmentExposure,
3739
'equipment-models': EquipmentModel,
3840
'equipment-manufacturers': EquipmentManufacturer,
3941
forms: Form,

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"type": "git",
55
"url": "https://github.com/ctrl-hub/sdk.ts"
66
},
7-
"version": "0.1.113",
7+
"version": "0.1.114",
88
"main": "dist/index.js",
99
"types": "dist/index.d.ts",
1010
"type": "module",

0 commit comments

Comments
 (0)