Skip to content

Commit 27ede89

Browse files
New endpoints added (#137)
* New endpoints added * lib version changed in baseClient
1 parent 8c1b61e commit 27ede89

File tree

71 files changed

+1730
-806
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

71 files changed

+1730
-806
lines changed

CHANGELOG.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
# Jira.js changelog
22

3-
### 2.3.1
3+
### 2.4.0
44

5+
- Some properties to some endpoints added :D
6+
- [IssueCustomFieldConfigurationApps](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-issue-custom-field-configuration--apps-/#api-group-issue-custom-field-configuration--apps-) group added
57
- [#136](https://github.com/MrRefactoring/jira.js/pull/136) Fixed all URLs for Cloud Agile endpoint. Thanks [John Brunton](https://github.com/jbrunton)!
68
- Internal code styles improved
79

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -266,6 +266,7 @@ Available groups:
266266
- [issues](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-issues/#api-group-issues)
267267
- [issueAttachments](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-issue-attachments/#api-group-issue-attachments)
268268
- [issueComments](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-issue-comments/#api-group-issue-comments)
269+
- [issueCustomFieldConfigurationApps](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-issue-custom-field-configuration--apps-/#api-group-issue-custom-field-configuration--apps-)
269270
- [issueCommentProperties](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-issue-comment-properties/#api-group-issue-comment-properties)
270271
- [issueFields](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-issue-fields/#api-group-issue-fields)
271272
- [issueFieldConfigurations](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-issue-field-configurations/#api-group-issue-field-configurations)
@@ -346,6 +347,7 @@ Available groups:
346347
- [issues](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-issues/#api-group-issues)
347348
- [issueAttachments](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-issue-attachments/#api-group-issue-attachments)
348349
- [issueComments](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-issue-comments/#api-group-issue-comments)
350+
- [issueCustomFieldConfigurationApps](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-issue-custom-field-configuration--apps-/#api-group-issue-custom-field-configuration--apps-)
349351
- [issueCommentProperties](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-issue-comment-properties/#api-group-issue-comment-properties)
350352
- [issueFields](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-issue-fields/#api-group-issue-fields)
351353
- [issueFieldConfigurations](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-issue-field-configurations/#api-group-issue-field-configurations)

package-lock.json

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "jira.js",
3-
"version": "2.3.0",
3+
"version": "2.4.0",
44
"description": "jira.js is a powerful Node.JS/Browser module that allows you to interact with the Jira API very easily",
55
"main": "out/index.js",
66
"types": "out/index.d.ts",

src/clients/baseClient.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,8 +84,8 @@ export class BaseClient implements Client {
8484
bodyExists: !!requestConfig.data,
8585
callbackUsed: !!callback,
8686
headersExists: !!requestConfig.headers,
87-
libVersion: '2.3.0',
88-
libVersionHash: 'ae14c21d807ec17e583ca3b6c2097de5',
87+
libVersion: '2.4.0',
88+
libVersionHash: '11e0eed8d3696c0a632f822df385ab3c',
8989
methodName: telemetryData?.methodName || 'sendRequest',
9090
onErrorMiddlewareUsed: !!this.config.middlewares?.onError,
9191
onResponseMiddlewareUsed: !!this.config.middlewares?.onResponse,

src/version2/client/version2Client.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import {
1414
IssueAttachments,
1515
IssueCommentProperties,
1616
IssueComments,
17+
IssueCustomFieldConfigurationApps,
1718
IssueCustomFieldContexts,
1819
IssueCustomFieldOptions,
1920
IssueCustomFieldOptionsApps,
@@ -96,6 +97,7 @@ export class Version2Client extends BaseClient {
9697
issueAttachments = new IssueAttachments(this);
9798
issueCommentProperties = new IssueCommentProperties(this);
9899
issueComments = new IssueComments(this);
100+
issueCustomFieldConfigurationApps = new IssueCustomFieldConfigurationApps(this);
99101
issueCustomFieldContexts = new IssueCustomFieldContexts(this);
100102
issueCustomFieldOptions = new IssueCustomFieldOptions(this);
101103
issueCustomFieldOptionsApps = new IssueCustomFieldOptionsApps(this);

src/version2/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ export * from './instanceInformation';
1212
export * from './issueAttachments';
1313
export * from './issueCommentProperties';
1414
export * from './issueComments';
15+
export * from './issueCustomFieldConfigurationApps';
1516
export * from './issueCustomFieldContexts';
1617
export * from './issueCustomFieldOptions';
1718
export * from './issueCustomFieldOptionsApps';
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
import * as Models from './models';
2+
import * as Parameters from './parameters';
3+
import { Client } from '../clients';
4+
import { Callback } from '../callback';
5+
import { RequestConfig } from '../requestConfig';
6+
7+
export class IssueCustomFieldConfigurationApps {
8+
constructor(private client: Client) {}
9+
10+
/**
11+
* Returns a [paginated](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#pagination) list of configurations for a custom field. The result can be filtered by
12+
* `contextId` or `issueId`, otherwise all configurations are returned. Invalid IDs are ignored.
13+
*
14+
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:** *Administer Jira* [global
15+
* permission](https://confluence.atlassian.com/x/x4dKLg). Jira permissions are not required for the app that created
16+
* the custom field.
17+
*/
18+
async getCustomFieldConfiguration<T = Models.PageContextualConfiguration>(
19+
parameters: Parameters.GetCustomFieldConfiguration,
20+
callback: Callback<T>
21+
): Promise<void>;
22+
/**
23+
* Returns a [paginated](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#pagination) list of configurations for a custom field. The result can be filtered by
24+
* `contextId` or `issueId`, otherwise all configurations are returned. Invalid IDs are ignored.
25+
*
26+
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:** *Administer Jira* [global
27+
* permission](https://confluence.atlassian.com/x/x4dKLg). Jira permissions are not required for the app that created
28+
* the custom field.
29+
*/
30+
async getCustomFieldConfiguration<T = Models.PageContextualConfiguration>(
31+
parameters: Parameters.GetCustomFieldConfiguration,
32+
callback?: never
33+
): Promise<T>;
34+
async getCustomFieldConfiguration<T = Models.PageContextualConfiguration>(
35+
parameters: Parameters.GetCustomFieldConfiguration,
36+
callback?: Callback<T>,
37+
): Promise<void | T> {
38+
const config: RequestConfig = {
39+
url: `/rest/api/2/app/field/${parameters.fieldIdOrKey}/context/configuration`,
40+
method: 'GET',
41+
params: {
42+
contextId: parameters.contextId,
43+
issueId: parameters.issueId,
44+
startAt: parameters.startAt,
45+
maxResults: parameters.maxResults,
46+
},
47+
};
48+
49+
return this.client.sendRequest(config, callback, {
50+
methodName: 'version2.issueCustomFieldConfigurationApps.getCustomFieldConfiguration',
51+
});
52+
}
53+
54+
/**
55+
* Update the configuration for contexts of a custom field.
56+
*
57+
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:** *Administer Jira* [global
58+
* permission](https://confluence.atlassian.com/x/x4dKLg). Jira permissions are not required for the app that created
59+
* the custom field.
60+
*/
61+
async updateCustomFieldConfiguration<T = unknown>(
62+
parameters: Parameters.UpdateCustomFieldConfiguration,
63+
callback: Callback<T>
64+
): Promise<void>;
65+
/**
66+
* Update the configuration for contexts of a custom field.
67+
*
68+
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:** *Administer Jira* [global
69+
* permission](https://confluence.atlassian.com/x/x4dKLg). Jira permissions are not required for the app that created
70+
* the custom field.
71+
*/
72+
async updateCustomFieldConfiguration<T = unknown>(
73+
parameters: Parameters.UpdateCustomFieldConfiguration,
74+
callback?: never
75+
): Promise<T>;
76+
async updateCustomFieldConfiguration<T = unknown>(
77+
parameters: Parameters.UpdateCustomFieldConfiguration,
78+
callback?: Callback<T>,
79+
): Promise<void | T> {
80+
const config: RequestConfig = {
81+
url: `/rest/api/2/app/field/${parameters.fieldIdOrKey}/context/configuration`,
82+
method: 'PUT',
83+
data: {
84+
configurations: parameters.configurations,
85+
},
86+
};
87+
88+
return this.client.sendRequest(config, callback, {
89+
methodName: 'version2.issueCustomFieldConfigurationApps.updateCustomFieldConfiguration',
90+
});
91+
}
92+
}

src/version2/issueTypes.ts

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,48 @@ export class IssueTypes {
8181
return this.client.sendRequest(config, callback, { methodName: 'version2.issueTypes.createIssueType' });
8282
}
8383

84+
/**
85+
* Returns issue types for a project.
86+
*
87+
* This operation can be accessed anonymously.
88+
*
89+
* **[Permissions](#permissions) required:** *Browse projects* [project
90+
* permission](https://confluence.atlassian.com/x/yodKLg) in the relevant project or *Administer Jira* [global
91+
* permission](https://confluence.atlassian.com/x/x4dKLg).
92+
*/
93+
async getIssueTypesForProject<T = Array<Models.IssueTypeDetails>>(
94+
parameters: Parameters.GetIssueTypesForProject,
95+
callback: Callback<T>
96+
): Promise<void>;
97+
/**
98+
* Returns issue types for a project.
99+
*
100+
* This operation can be accessed anonymously.
101+
*
102+
* **[Permissions](#permissions) required:** *Browse projects* [project
103+
* permission](https://confluence.atlassian.com/x/yodKLg) in the relevant project or *Administer Jira* [global
104+
* permission](https://confluence.atlassian.com/x/x4dKLg).
105+
*/
106+
async getIssueTypesForProject<T = Array<Models.IssueTypeDetails>>(
107+
parameters: Parameters.GetIssueTypesForProject,
108+
callback?: never
109+
): Promise<T>;
110+
async getIssueTypesForProject<T = Array<Models.IssueTypeDetails>>(
111+
parameters: Parameters.GetIssueTypesForProject,
112+
callback?: Callback<T>,
113+
): Promise<void | T> {
114+
const config: RequestConfig = {
115+
url: '/rest/api/2/issuetype/project',
116+
method: 'GET',
117+
params: {
118+
projectId: parameters.projectId,
119+
level: parameters.level,
120+
},
121+
};
122+
123+
return this.client.sendRequest(config, callback, { methodName: 'version2.issueTypes.getIssueTypesForProject' });
124+
}
125+
84126
/**
85127
* Returns an issue type.
86128
*
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
/** Details of the contextual configuration for a custom field. */
2+
export interface ContextualConfiguration {
3+
/** The ID of the context the configuration is associated with. */
4+
contextId: number;
5+
/** The configuration associated with the context. */
6+
configuration?: {};
7+
}

0 commit comments

Comments
 (0)