-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathWorkItemRelationDefinitions.ts
More file actions
52 lines (46 loc) · 1.9 KB
/
Copy pathWorkItemRelationDefinitions.ts
File metadata and controls
52 lines (46 loc) · 1.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
import { BaseResource } from "./BaseResource";
import { Configuration } from "../Configuration";
import {
CreateWorkItemRelationDefinition,
ListWorkItemRelationDefinitionsParams,
UpdateWorkItemRelationDefinition,
WorkItemRelationDefinition,
} from "../models/WorkItemRelationDefinition";
/**
* WorkItemRelationDefinitions API resource
* Manages work item relation definitions at the workspace level
*/
export class WorkItemRelationDefinitions extends BaseResource {
constructor(config: Configuration) {
super(config);
}
async list(
workspaceSlug: string,
params?: ListWorkItemRelationDefinitionsParams
): Promise<WorkItemRelationDefinition[]> {
const query: Record<string, string> = {};
if (params?.is_default !== undefined) query["is_default"] = String(params.is_default);
if (params?.is_active !== undefined) query["is_active"] = String(params.is_active);
const data = await this.get<WorkItemRelationDefinition[] | { results: WorkItemRelationDefinition[] }>(
`/workspaces/${workspaceSlug}/work-item-relation-definitions/`,
Object.keys(query).length ? query : undefined
);
return Array.isArray(data) ? data : data.results;
}
async create(workspaceSlug: string, data: CreateWorkItemRelationDefinition): Promise<WorkItemRelationDefinition> {
return this.post<WorkItemRelationDefinition>(`/workspaces/${workspaceSlug}/work-item-relation-definitions/`, data);
}
async update(
workspaceSlug: string,
definitionId: string,
data: UpdateWorkItemRelationDefinition
): Promise<WorkItemRelationDefinition> {
return this.patch<WorkItemRelationDefinition>(
`/workspaces/${workspaceSlug}/work-item-relation-definitions/${definitionId}/`,
data
);
}
async del(workspaceSlug: string, definitionId: string): Promise<void> {
return this.httpDelete(`/workspaces/${workspaceSlug}/work-item-relation-definitions/${definitionId}/`);
}
}