Skip to content

Commit 925cefc

Browse files
Endpoints (#73)
* eslint rules upgrade * new endpoints * eslint fixes * format fixes part 1 * format fixes part 2 * deprecation notice * new api added to index * import sorting in index.ts * README updated * README updated
1 parent c6b4e3f commit 925cefc

13 files changed

+310
-3
lines changed

README.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,27 @@ Can't find what you need in the readme? Check out our documentation here: https:
111111

112112
## Changelog
113113

114+
### 1.6.0
115+
116+
- FEATURE: New API `IssueTypeScreenSchemes` added
117+
- FEATURE: New API `ProjectEmail` added
118+
---
119+
- FEATURE: Method `bulkGetGroups` added to `Groups`
120+
- FEATURE: Method `restoreDeletedProject` added to `Projects`
121+
- FEATURE: Method `createIssueTypeScheme` added to `IssueTypeSchemes`
122+
- FEATURE: Method `deleteIssueTypeScheme` added to `IssueTypeSchemes`
123+
- FEATURE: Method `updateIssueTypeScheme` added to `IssueTypeSchemes`
124+
- FEATURE: Method `addIssueTypesToIssueTypeScheme` added to `IssueTypeSchemes`
125+
- FEATURE: Method `deleteIssueTypeFromIssueTypeScheme` added to `IssueTypeSchemes`
126+
---
127+
- FEATURE: Property `id` added to `IssueFieldConfigurations.getAllFieldConfigurations`
128+
- FEATURE: Property `sortByOpsBarAndStatus` added to `Issues.getTransitions`
129+
- FEATURE: Property `accountId` added to `Permissions.getBulkPermissions`
130+
---
131+
- DEPRECATION: Method `getIssueTypeScreenSchemes` are deprecated in `Screens`
132+
- DEPRECATION: Method `getIssueTypeScreenSchemeItems` are deprecated in `Screens`
133+
- DEPRECATION: Method `getIssueTypeScreenSchemesForProjects` are deprecated in `Screens`
134+
---
114135
### 1.5.0
115136

116137
- FEATURE: Method `getAllFieldConfigurationSchemes` added to `IssueFieldConfigurations`

src/api/dynamicModules.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ export class DynamicModules {
1616
public async registerModules(
1717
params: {
1818
[key: string]: any;
19+
modules: Array<any>;
1920
},
2021
callback?: Callback,
2122
): Promise<any> {

src/api/groups.ts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,27 @@ export class Groups {
5858
return this.client.sendRequest(request, callback);
5959
}
6060

61+
public async bulkGetGroups(
62+
params: {
63+
startAt?: number;
64+
maxResults?: number;
65+
groupId: Array<string>;
66+
},
67+
callback?: Callback,
68+
): Promise<any> {
69+
const request: AxiosRequestConfig = {
70+
url: '/rest/api/2/group/bulk',
71+
method: 'GET',
72+
params: {
73+
startAt: params.startAt,
74+
maxResults: params.maxResults,
75+
groupId: params.groupId && params.groupId.join(','),
76+
},
77+
};
78+
79+
return this.client.sendRequest(request, callback);
80+
}
81+
6182
public async getUsersFromGroup(
6283
params: {
6384
groupname: string;

src/api/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ export * from './issueSecurityLevel';
3737
export * from './issueSecuritySchemes';
3838
export * from './issueTypeProperties';
3939
export * from './issueTypeSchemes';
40+
export * from './issueTypeScreenSchemes';
4041
export * from './issueTypes';
4142
export * from './issueVotes';
4243
export * from './issueWatchers';
@@ -52,6 +53,7 @@ export * from './permissionSchemes';
5253
export * from './projectAvatars';
5354
export * from './projectCategories';
5455
export * from './projectComponents';
56+
export * from './projectEmail';
5557
export * from './projectKeyAndNameValidation';
5658
export * from './projectPermissionSchemes';
5759
export * from './projectProperties';

src/api/issueFieldConfigurations.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ export class IssueFieldConfigurations {
88
params?: {
99
startAt?: number;
1010
maxResults?: number;
11+
id?: Array<number>;
1112
isDefault?: boolean;
1213
},
1314
callback?: Callback,
@@ -20,6 +21,7 @@ export class IssueFieldConfigurations {
2021
params: {
2122
startAt: params.startAt,
2223
maxResults: params.maxResults,
24+
id: params.id && params.id.join(','),
2325
isDefault: params.isDefault,
2426
},
2527
};

src/api/issueTypeSchemes.ts

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,29 @@ export class IssueTypeSchemes {
2727
return this.client.sendRequest(request, callback);
2828
}
2929

30+
public async createIssueTypeScheme(
31+
params: {
32+
name: string;
33+
description?: string;
34+
defaultIssueTypeId?: string;
35+
issueTypeIds: Array<string>;
36+
},
37+
callback?: Callback,
38+
): Promise<any> {
39+
const request: AxiosRequestConfig = {
40+
url: '/rest/api/2/issuetypescheme',
41+
method: 'POST',
42+
data: {
43+
name: params.name,
44+
description: params.description,
45+
defaultIssueTypeId: params.defaultIssueTypeId,
46+
issueTypeIds: params.issueTypeIds,
47+
},
48+
};
49+
50+
return this.client.sendRequest(request, callback);
51+
}
52+
3053
public async getIssueTypeSchemeItems(
3154
params?: {
3255
startAt?: number;
@@ -92,4 +115,73 @@ export class IssueTypeSchemes {
92115

93116
return this.client.sendRequest(request, callback);
94117
}
118+
119+
public async updateIssueTypeScheme(
120+
params: {
121+
issueTypeSchemeId: number;
122+
name?: string;
123+
description?: string;
124+
defaultIssueTypeId?: string;
125+
},
126+
callback?: Callback,
127+
): Promise<any> {
128+
const request: AxiosRequestConfig = {
129+
url: `/rest/api/2/issuetypescheme/${params.issueTypeSchemeId}`,
130+
method: 'PUT',
131+
data: {
132+
name: params.name,
133+
description: params.description,
134+
defaultIssueTypeId: params.defaultIssueTypeId,
135+
},
136+
};
137+
138+
return this.client.sendRequest(request, callback);
139+
}
140+
141+
public async deleteIssueTypeScheme(
142+
params: {
143+
issueTypeSchemeId: number;
144+
},
145+
callback?: Callback,
146+
): Promise<any> {
147+
const request: AxiosRequestConfig = {
148+
url: `/rest/api/2/issuetypescheme/${params.issueTypeSchemeId}`,
149+
method: 'DELETE',
150+
};
151+
152+
return this.client.sendRequest(request, callback);
153+
}
154+
155+
public async addIssueTypesToIssueTypeScheme(
156+
params: {
157+
issueTypeSchemeId: number;
158+
issueTypeIds: Array<string>;
159+
},
160+
callback?: Callback,
161+
): Promise<any> {
162+
const request: AxiosRequestConfig = {
163+
url: `/rest/api/2/issuetypescheme/${params.issueTypeSchemeId}/issuetype`,
164+
method: 'PUT',
165+
data: {
166+
issueTypeIds: params.issueTypeIds,
167+
},
168+
};
169+
170+
return this.client.sendRequest(request, callback);
171+
}
172+
173+
public async deleteIssueTypeFromIssueTypeScheme(
174+
params: {
175+
issueTypeSchemeId: number;
176+
issueTypeId: number;
177+
},
178+
callback?: Callback,
179+
): Promise<any> {
180+
const request: AxiosRequestConfig = {
181+
url: `/rest/api/2/issuetypescheme/${params.issueTypeSchemeId}/issuetype/${params.issueTypeId}`,
182+
method: 'DELETE',
183+
};
184+
185+
return this.client.sendRequest(request, callback);
186+
}
95187
}

src/api/issueTypeScreenSchemes.ts

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
import { AxiosRequestConfig } from 'axios';
2+
import { Sender } from '../sender';
3+
import { Callback } from '../callback';
4+
export class IssueTypeScreenSchemes {
5+
constructor(private readonly client: Sender) {}
6+
7+
public async getIssueTypeScreenSchemes(
8+
params?: {
9+
startAt?: number;
10+
maxResults?: number;
11+
id?: Array<number>;
12+
},
13+
callback?: Callback,
14+
): Promise<any> {
15+
params = params || {};
16+
17+
const request: AxiosRequestConfig = {
18+
url: '/rest/api/2/issuetypescreenscheme',
19+
method: 'GET',
20+
params: {
21+
startAt: params.startAt,
22+
maxResults: params.maxResults,
23+
id: params.id && params.id.join(','),
24+
},
25+
};
26+
27+
return this.client.sendRequest(request, callback);
28+
}
29+
30+
public async getIssueTypeScreenSchemeItems(
31+
params?: {
32+
startAt?: number;
33+
maxResults?: number;
34+
issueTypeScreenSchemeId?: Array<number>;
35+
},
36+
callback?: Callback,
37+
): Promise<any> {
38+
params = params || {};
39+
40+
const request: AxiosRequestConfig = {
41+
url: '/rest/api/2/issuetypescreenscheme/mapping',
42+
method: 'GET',
43+
params: {
44+
startAt: params.startAt,
45+
maxResults: params.maxResults,
46+
issueTypeScreenSchemeId:
47+
params.issueTypeScreenSchemeId &&
48+
params.issueTypeScreenSchemeId.join(','),
49+
},
50+
};
51+
52+
return this.client.sendRequest(request, callback);
53+
}
54+
55+
public async getIssueTypeScreenSchemesForProjects(
56+
params?: {
57+
startAt?: number;
58+
maxResults?: number;
59+
projectId?: Array<number>;
60+
},
61+
callback?: Callback,
62+
): Promise<any> {
63+
params = params || {};
64+
65+
const request: AxiosRequestConfig = {
66+
url: '/rest/api/2/issuetypescreenscheme/project',
67+
method: 'GET',
68+
params: {
69+
startAt: params.startAt,
70+
maxResults: params.maxResults,
71+
projectId: params.projectId && params.projectId.join(','),
72+
},
73+
};
74+
75+
return this.client.sendRequest(request, callback);
76+
}
77+
78+
public async assignIssueTypeScreenSchemeToProject(
79+
params?: {
80+
issueTypeScreenSchemeId?: string;
81+
projectId?: string;
82+
},
83+
callback?: Callback,
84+
): Promise<any> {
85+
params = params || {};
86+
87+
const request: AxiosRequestConfig = {
88+
url: '/rest/api/2/issuetypescreenscheme/project',
89+
method: 'PUT',
90+
data: {
91+
issueTypeScreenSchemeId: params.issueTypeScreenSchemeId,
92+
projectId: params.projectId,
93+
},
94+
};
95+
96+
return this.client.sendRequest(request, callback);
97+
}
98+
}

src/api/issues.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -267,6 +267,7 @@ export class Issues {
267267
transitionId?: string;
268268
skipRemoteOnlyCondition?: boolean;
269269
includeUnavailableTransitions?: boolean;
270+
sortByOpsBarAndStatus?: boolean;
270271
},
271272
callback?: Callback,
272273
): Promise<any> {
@@ -278,6 +279,7 @@ export class Issues {
278279
transitionId: params.transitionId,
279280
skipRemoteOnlyCondition: params.skipRemoteOnlyCondition,
280281
includeUnavailableTransitions: params.includeUnavailableTransitions,
282+
sortByOpsBarAndStatus: params.sortByOpsBarAndStatus,
281283
},
282284
};
283285

src/api/permissions.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ export class Permissions {
4848
params?: {
4949
projectPermissions?: Array<any>;
5050
globalPermissions?: Array<string>;
51+
accountId?: string;
5152
},
5253
callback?: Callback,
5354
): Promise<any> {
@@ -59,6 +60,7 @@ export class Permissions {
5960
data: {
6061
projectPermissions: params.projectPermissions,
6162
globalPermissions: params.globalPermissions,
63+
accountId: params.accountId,
6264
},
6365
};
6466

src/api/projectEmail.ts

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
import { AxiosRequestConfig } from 'axios';
2+
import { Sender } from '../sender';
3+
import { Callback } from '../callback';
4+
export class ProjectEmail {
5+
constructor(private readonly client: Sender) {}
6+
7+
public async getProjectsSenderEmail(
8+
params: {
9+
projectId: number;
10+
},
11+
callback?: Callback,
12+
): Promise<any> {
13+
const request: AxiosRequestConfig = {
14+
url: `/rest/api/2/project/${params.projectId}/email`,
15+
method: 'GET',
16+
};
17+
18+
return this.client.sendRequest(request, callback);
19+
}
20+
21+
public async setProjectsSenderEmail(
22+
params: {
23+
projectId: number;
24+
emailAddress?: string;
25+
},
26+
callback?: Callback,
27+
): Promise<any> {
28+
const request: AxiosRequestConfig = {
29+
url: `/rest/api/2/project/${params.projectId}/email`,
30+
method: 'PUT',
31+
data: {
32+
emailAddress: params.emailAddress,
33+
},
34+
};
35+
36+
return this.client.sendRequest(request, callback);
37+
}
38+
}

0 commit comments

Comments
 (0)