Skip to content

Commit b8561e5

Browse files
authored
Merge pull request #51 from ctrl-hub/add-team-member-patching
add team member and operation assignee patching
2 parents 11f2677 + caacbba commit b8561e5

File tree

11 files changed

+76
-29
lines changed

11 files changed

+76
-29
lines changed

dist/Client.d.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ export declare class Client {
4545
roles(): RolesService;
4646
schemes(): SchemesService;
4747
workOrders(schemeId: string): WorkOrdersService;
48-
operations(schemeId: string, workOrderId: string): OperationsService;
48+
operations(schemeId: string, workOrderId: string, operationId?: string): OperationsService;
4949
operationTemplates(): OperationTemplatesService;
5050
serviceAccountKeys(): ServiceAccountKeysService;
5151
customerAccounts(customerAccountId?: string): CustomerAccountsService;
@@ -55,7 +55,7 @@ export declare class Client {
5555
formCategories(): FormCategoriesService;
5656
forms(): FormsService;
5757
appointments(): AppointmentsService;
58-
teams(): TeamsService;
58+
teams(teamId?: string): TeamsService;
5959
submissions(): SubmissionsService;
6060
permissions(): PermissionsService;
6161
groups(groupId?: string): GroupsService;

dist/Client.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,8 @@ export class Client {
7878
workOrders(schemeId) {
7979
return new WorkOrdersService(this, schemeId);
8080
}
81-
operations(schemeId, workOrderId) {
82-
return new OperationsService(this, schemeId, workOrderId);
81+
operations(schemeId, workOrderId, operationId) {
82+
return new OperationsService(this, schemeId, workOrderId, operationId);
8383
}
8484
operationTemplates() {
8585
return new OperationTemplatesService(this);
@@ -108,8 +108,8 @@ export class Client {
108108
appointments() {
109109
return new AppointmentsService(this);
110110
}
111-
teams() {
112-
return new TeamsService(this);
111+
teams(teamId) {
112+
return new TeamsService(this, teamId);
113113
}
114114
submissions() {
115115
return new SubmissionsService(this);

dist/index.js

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1807,8 +1807,13 @@ class CustomerInteractionsService extends BaseService {
18071807

18081808
// src/services/TeamsService.ts
18091809
class TeamsService extends BaseService {
1810-
constructor(client) {
1811-
super(client, "/v3/orgs/:orgId/people/teams");
1810+
constructor(client, teamId) {
1811+
super(client, teamId ? `/v3/orgs/:orgId/people/teams/${teamId}` : "/v3/orgs/:orgId/people/teams");
1812+
}
1813+
async patchMembers(users) {
1814+
const jsonApiSerializer = new JsonApiSerializer(this.hydrator.getModelMap());
1815+
const payload = jsonApiSerializer.buildRelationshipPayload(new User, users);
1816+
return await this.client.makePatchRequest(`${this.endpoint}/relationships/members`, payload);
18121817
}
18131818
}
18141819

@@ -1828,8 +1833,13 @@ class WorkOrdersService extends BaseService {
18281833

18291834
// src/services/OperationsService.ts
18301835
class OperationsService extends BaseService {
1831-
constructor(client, schemeId, workOrderId) {
1832-
super(client, `/v3/orgs/:orgId/governance/schemes/${schemeId}/work-orders/${workOrderId}/operations`);
1836+
constructor(client, schemeId, workOrderId, operationId) {
1837+
super(client, operationId ? `/v3/orgs/:orgId/governance/schemes/${schemeId}/work-orders/${workOrderId}/operations/${operationId}` : `/v3/orgs/:orgId/governance/schemes/${schemeId}/work-orders/${workOrderId}/operations`);
1838+
}
1839+
async patchAssignees(users) {
1840+
const jsonApiSerializer = new JsonApiSerializer(this.hydrator.getModelMap());
1841+
const payload = jsonApiSerializer.buildRelationshipPayload(new User, users);
1842+
return await this.client.makePatchRequest(`${this.endpoint}/relationships/assignees`, payload);
18331843
}
18341844
}
18351845

@@ -1922,8 +1932,8 @@ class Client {
19221932
workOrders(schemeId) {
19231933
return new WorkOrdersService(this, schemeId);
19241934
}
1925-
operations(schemeId, workOrderId) {
1926-
return new OperationsService(this, schemeId, workOrderId);
1935+
operations(schemeId, workOrderId, operationId) {
1936+
return new OperationsService(this, schemeId, workOrderId, operationId);
19271937
}
19281938
operationTemplates() {
19291939
return new OperationTemplatesService(this);
@@ -1952,8 +1962,8 @@ class Client {
19521962
appointments() {
19531963
return new AppointmentsService(this);
19541964
}
1955-
teams() {
1956-
return new TeamsService(this);
1965+
teams(teamId) {
1966+
return new TeamsService(this, teamId);
19571967
}
19581968
submissions() {
19591969
return new SubmissionsService(this);
@@ -2122,6 +2132,9 @@ class ClientConfig {
21222132
}
21232133
// src/models/Organisation.ts
21242134
class Organisation extends BaseModel {
2135+
constructor() {
2136+
super(...arguments);
2137+
}
21252138
type = "organisations";
21262139
static relationships = [];
21272140
}

dist/services/OperationsService.d.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import { Client } from "../Client";
22
import { BaseService } from "./BaseService";
33
import type { Operation } from "../models/Operation";
4+
import { User } from "../models/User";
45
export declare class OperationsService extends BaseService<Operation> {
5-
constructor(client: Client, schemeId: string, workOrderId: string);
6+
constructor(client: Client, schemeId: string, workOrderId: string, operationId?: string);
7+
patchAssignees(users: Array<User>): Promise<any>;
68
}

dist/services/OperationsService.js

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,14 @@
11
import { Client } from "../Client";
22
import { BaseService } from "./BaseService";
3+
import { User } from "../models/User";
4+
import { JsonApiSerializer } from "../utils/JsonSerializer";
35
export class OperationsService extends BaseService {
4-
constructor(client, schemeId, workOrderId) {
5-
super(client, `/v3/orgs/:orgId/governance/schemes/${schemeId}/work-orders/${workOrderId}/operations`);
6+
constructor(client, schemeId, workOrderId, operationId) {
7+
super(client, operationId ? `/v3/orgs/:orgId/governance/schemes/${schemeId}/work-orders/${workOrderId}/operations/${operationId}` : `/v3/orgs/:orgId/governance/schemes/${schemeId}/work-orders/${workOrderId}/operations`);
8+
}
9+
async patchAssignees(users) {
10+
const jsonApiSerializer = new JsonApiSerializer(this.hydrator.getModelMap());
11+
const payload = jsonApiSerializer.buildRelationshipPayload(new User, users);
12+
return await this.client.makePatchRequest(`${this.endpoint}/relationships/assignees`, payload);
613
}
714
}

dist/services/TeamsService.d.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import { Client } from '../Client';
22
import { BaseService } from './BaseService';
33
import { Team } from '../models/Team';
4+
import { User } from '../models/User';
45
export declare class TeamsService extends BaseService<Team> {
5-
constructor(client: Client);
6+
constructor(client: Client, teamId?: string);
7+
patchMembers(users: Array<User>): Promise<any>;
68
}

dist/services/TeamsService.js

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,15 @@
11
import { Client } from '../Client';
22
import { BaseService } from './BaseService';
33
import { Team } from '../models/Team';
4+
import { User } from '../models/User';
5+
import { JsonApiSerializer } from '../utils/JsonSerializer';
46
export class TeamsService extends BaseService {
5-
constructor(client) {
6-
super(client, '/v3/orgs/:orgId/people/teams');
7+
constructor(client, teamId) {
8+
super(client, teamId ? `/v3/orgs/:orgId/people/teams/${teamId}` : '/v3/orgs/:orgId/people/teams');
9+
}
10+
async patchMembers(users) {
11+
const jsonApiSerializer = new JsonApiSerializer(this.hydrator.getModelMap());
12+
const payload = jsonApiSerializer.buildRelationshipPayload(new User, users);
13+
return await this.client.makePatchRequest(`${this.endpoint}/relationships/members`, payload);
714
}
815
}

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

src/Client.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -93,8 +93,8 @@ export class Client {
9393
return new WorkOrdersService(this, schemeId);
9494
}
9595

96-
public operations(schemeId: string, workOrderId: string): OperationsService {
97-
return new OperationsService(this, schemeId, workOrderId);
96+
public operations(schemeId: string, workOrderId: string, operationId?: string): OperationsService {
97+
return new OperationsService(this, schemeId, workOrderId, operationId);
9898
}
9999

100100
public operationTemplates(): OperationTemplatesService {
@@ -133,8 +133,8 @@ export class Client {
133133
return new AppointmentsService(this);
134134
}
135135

136-
public teams(): TeamsService {
137-
return new TeamsService(this);
136+
public teams(teamId?: string): TeamsService {
137+
return new TeamsService(this, teamId);
138138
}
139139

140140
public submissions(): SubmissionsService {

src/services/OperationsService.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,17 @@
11
import { Client } from "Client";
22
import { BaseService } from "./BaseService";
33
import type { Operation } from "@models/Operation";
4+
import { User } from "@models/User";
5+
import { JsonApiSerializer } from "@utils/JsonSerializer";
46

57
export class OperationsService extends BaseService<Operation> {
6-
constructor(client: Client, schemeId: string, workOrderId: string) {
7-
super(client, `/v3/orgs/:orgId/governance/schemes/${schemeId}/work-orders/${workOrderId}/operations`);
8+
constructor(client: Client, schemeId: string, workOrderId: string, operationId?: string) {
9+
super(client, operationId ? `/v3/orgs/:orgId/governance/schemes/${schemeId}/work-orders/${workOrderId}/operations/${operationId}` : `/v3/orgs/:orgId/governance/schemes/${schemeId}/work-orders/${workOrderId}/operations`);
10+
}
11+
12+
public async patchAssignees(users: Array<User>) {
13+
const jsonApiSerializer = new JsonApiSerializer(this.hydrator.getModelMap());
14+
const payload = jsonApiSerializer.buildRelationshipPayload(new User, users);
15+
return await this.client.makePatchRequest(`${this.endpoint}/relationships/assignees`, payload);
816
}
917
}

0 commit comments

Comments
 (0)