Skip to content

Commit d927d4e

Browse files
committed
Merge main into branch
2 parents 16e05c2 + e1d541a commit d927d4e

File tree

8 files changed

+78
-7
lines changed

8 files changed

+78
-7
lines changed

dist/index.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1435,6 +1435,17 @@ class JsonApiSerializer {
14351435
console.warn(`No model class found for type: ${model.type}`);
14361436
return { data: [] };
14371437
}
1438+
if (!Array.isArray(relationships)) {
1439+
if (relationships?.id !== undefined) {
1440+
return {
1441+
data: {
1442+
type: model.type,
1443+
id: relationships.id
1444+
}
1445+
};
1446+
}
1447+
return { data: null };
1448+
}
14381449
const data = relationships.filter((relationship) => relationship.id !== undefined).map((relationship) => ({
14391450
type: model.type,
14401451
id: relationship.id
@@ -1660,10 +1671,17 @@ class VehiclesService extends BaseService {
16601671
resp.data = hydrator.hydrateResponse(resp.data, resp.included);
16611672
return resp;
16621673
}
1674+
<<<<<<< HEAD
16631675
async patchEquipment(equipmentItems) {
16641676
const jsonApiSerializer = new JsonApiSerializer(this.hydrator.getModelMap());
16651677
const payload = jsonApiSerializer.buildRelationshipPayload(new Equipment, equipmentItems);
16661678
return await this.client.makePatchRequest(`${this.endpoint}/relationships/equipment`, payload);
1679+
=======
1680+
async patchAssignee(user) {
1681+
const jsonApiSerializer = new JsonApiSerializer(this.hydrator.getModelMap());
1682+
const payload = jsonApiSerializer.buildRelationshipPayload(new User, user);
1683+
return await this.client.makePatchRequest(`${this.endpoint}/relationships/assignee`, payload);
1684+
>>>>>>> main
16671685
}
16681686
}
16691687

dist/services/VehiclesService.d.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,17 @@
11
import { Client } from "../Client";
22
import { BaseService } from "./BaseService";
33
import { Vehicle } from "../models/Vehicle";
4+
import { User } from "../models/User";
45
import type { InternalResponse } from '../types/Response';
56
import type { MotRecord } from "../models/MotRecord";
67
import { Equipment } from "../models/Equipment";
78
export declare class VehiclesService extends BaseService<Vehicle> {
89
constructor(client: Client, vehicleId?: string);
910
enquiry(registration: string): Promise<InternalResponse<any[]>>;
1011
motRecords(vehicleId: string): Promise<InternalResponse<MotRecord[]>>;
12+
<<<<<<< HEAD
1113
patchEquipment(equipmentItems: Array<Equipment>): Promise<any>;
14+
=======
15+
patchAssignee(user: User): Promise<any>;
16+
>>>>>>> main
1217
}

dist/services/VehiclesService.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,14 @@
11
import { Client } from "../Client";
22
import { BaseService } from "./BaseService";
33
import { Vehicle } from "../models/Vehicle";
4+
import { User } from "../models/User";
45
import { Hydrator } from "../utils/Hydrator";
6+
<<<<<<< HEAD
57
import { Equipment } from "../models/Equipment";
68
import { JsonApiSerializer } from "../utils/JsonSerializer";
9+
=======
10+
import { JsonApiSerializer } from '../utils/JsonSerializer';
11+
>>>>>>> main
712
export class VehiclesService extends BaseService {
813
constructor(client, vehicleId) {
914
const endpoint = vehicleId ? `/v3/orgs/:orgId/assets/vehicles/${vehicleId}` : `/v3/orgs/:orgId/assets/vehicles`;
@@ -28,9 +33,16 @@ export class VehiclesService extends BaseService {
2833
resp.data = hydrator.hydrateResponse(resp.data, resp.included);
2934
return resp;
3035
}
36+
<<<<<<< HEAD
3137
async patchEquipment(equipmentItems) {
3238
const jsonApiSerializer = new JsonApiSerializer(this.hydrator.getModelMap());
3339
const payload = jsonApiSerializer.buildRelationshipPayload(new Equipment, equipmentItems);
3440
return await this.client.makePatchRequest(`${this.endpoint}/relationships/equipment`, payload);
41+
=======
42+
async patchAssignee(user) {
43+
const jsonApiSerializer = new JsonApiSerializer(this.hydrator.getModelMap());
44+
const payload = jsonApiSerializer.buildRelationshipPayload(new User, user);
45+
return await this.client.makePatchRequest(`${this.endpoint}/relationships/assignee`, payload);
46+
>>>>>>> main
3547
}
3648
}

dist/utils/JsonSerializer.d.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,13 @@ type JsonApiRelationship = {
77
};
88
};
99
type JsonApiRelationshipsPayload = {
10-
data: Array<{
10+
data: {
11+
type: string;
12+
id: string;
13+
} | Array<{
1114
type: string;
1215
id: string;
13-
}>;
16+
}> | null;
1417
};
1518
type JsonApiPayload = {
1619
data: {
@@ -26,7 +29,7 @@ export declare class JsonApiSerializer {
2629
buildCreatePayload(model: Model & Partial<JsonApiMapping>): JsonApiPayload;
2730
buildUpdatePayload(model: Model & Partial<JsonApiMapping>): JsonApiPayload;
2831
private buildPayload;
29-
buildRelationshipPayload(model: Model, relationships: Array<Model>): JsonApiRelationshipsPayload;
32+
buildRelationshipPayload(model: Model, relationships: Model | Array<Model>): JsonApiRelationshipsPayload;
3033
private buildDefaultPayload;
3134
}
3235
export {};

dist/utils/JsonSerializer.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,17 @@ export class JsonApiSerializer {
7070
console.warn(`No model class found for type: ${model.type}`);
7171
return { data: [] };
7272
}
73+
if (!Array.isArray(relationships)) {
74+
if (relationships?.id !== undefined) {
75+
return {
76+
data: {
77+
type: model.type,
78+
id: relationships.id
79+
}
80+
};
81+
}
82+
return { data: null };
83+
}
7384
const data = relationships
7485
.filter(relationship => relationship.id !== undefined)
7586
.map(relationship => ({

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.128",
7+
"version": "0.1.129",
88
"main": "dist/index.js",
99
"types": "dist/index.d.ts",
1010
"type": "module",

src/services/VehiclesService.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import {Client} from "Client";
22
import {BaseService} from "./BaseService";
33
import {Vehicle} from "../models/Vehicle";
4+
import {User} from "../models/User";
45
import type { InternalResponse } from '../types/Response';
56
import { Hydrator } from "@utils/Hydrator";
67
import type { MotRecord } from "@models/MotRecord";
@@ -44,4 +45,10 @@ export class VehiclesService extends BaseService<Vehicle> {
4445
return await this.client.makePatchRequest(`${this.endpoint}/relationships/equipment`, payload);
4546
}
4647

48+
49+
public async patchAssignee(user: User) {
50+
const jsonApiSerializer = new JsonApiSerializer(this.hydrator.getModelMap());
51+
const payload = jsonApiSerializer.buildRelationshipPayload(new User, user);
52+
return await this.client.makePatchRequest(`${this.endpoint}/relationships/assignee`, payload);
53+
}
4754
}

src/utils/JsonSerializer.ts

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,13 @@ type JsonApiRelationship = {
99
};
1010

1111
type JsonApiRelationshipsPayload = {
12-
data: Array<{
12+
data: {
13+
type: string;
14+
id: string;
15+
} | Array<{
1316
type: string;
1417
id: string;
15-
}>;
18+
}> | null;
1619
};
1720

1821
type JsonApiPayload = {
@@ -107,14 +110,26 @@ export class JsonApiSerializer {
107110
return this.buildDefaultPayload(model, isUpdate);
108111
}
109112

110-
buildRelationshipPayload(model: Model, relationships: Array<Model>): JsonApiRelationshipsPayload {
113+
buildRelationshipPayload(model: Model, relationships: Model | Array<Model>): JsonApiRelationshipsPayload {
111114
const ModelClass = this.modelMap[model.type];
112115

113116
if (!ModelClass) {
114117
console.warn(`No model class found for type: ${model.type}`);
115118
return { data: [] };
116119
}
117120

121+
if (!Array.isArray(relationships)) {
122+
if (relationships?.id !== undefined) {
123+
return {
124+
data: {
125+
type: model.type,
126+
id: relationships.id!
127+
}
128+
};
129+
}
130+
return { data: null };
131+
}
132+
118133
const data = relationships
119134
.filter(relationship => relationship.id !== undefined)
120135
.map(relationship => ({

0 commit comments

Comments
 (0)