Skip to content

Commit

Permalink
Check and apply changes in Version3Client to Version2Client (#359)
Browse files Browse the repository at this point in the history
* fix: build error

* chore: update unit test

* fix: missing failFast in SearchAndReconcileRequest

* fix: improvement to updateComment

Forgot to clone the same improvement as addComment.

* feat: v2 IssueBulkOperations

* fix: apply the same improvement to v2 prioritySchemes

* chore: remove unused import

* fix: apply the same improvement as v3

`ProjectKeyAndNameValidation.getValidProjectName` from `unknown` to `string` for improved type safety and usability.

* fix: Apply the same fix as v3

Improvement: Added the avatarId parameter to the IssuePriorities.createPriority method. This parameter will replace iconUrl starting March 16, 2025. The iconUrl parameter is now marked as deprecated.

* fix: apply the same fix as v3

Improvement: Added the avatarId parameter to the IssuePriorities.updatePriority method. This parameter will replace iconUrl starting March 16, 2025. The iconUrl parameter is now marked as deprecated.

* fix: apply the same fix as v3

Fix: Improved the Avatars.storeAvatar method

* fix: apply the same fix as v3

Fix: Improved the IssueTypes.createIssueTypeAvatar method

* fix: apply the same deprecation notes as v3

* fix: align v3 naming to v2

issueSearch and jiraExpression with enhanced search

* Update readme.md

1. moved API token like to API token section
2. added description and link to PAT
3. moved Basic auth to bottom as it's the least preferred way to auth

* fix: rollback changes on v2

Copied v3 feat to v2 by mistake

* Update src/version2/parameters/getAvailableTransitions.ts

add number support to issue ids or keys

Co-authored-by: Vladislav Tupikin <[email protected]>

* Update src/version2/parameters/getBulkEditableFields.ts

add number support to issueIdsOrKeys

Co-authored-by: Vladislav Tupikin <[email protected]>

* fix: startAt and maxResults should be number

* fix: wrong link to v3 in version 2

* fix: incorrect version in anchor

* fix: revert changes on adding v3 only model

* Update src/version3/parameters/searchWorkflows.ts

Co-authored-by: Vladislav Tupikin <[email protected]>

* Update src/version3/parameters/searchWorkflows.ts

Co-authored-by: Vladislav Tupikin <[email protected]>

* chore: revert changes on README.md

move it to another PR

* fix: update *DTO in v3

---------

Co-authored-by: Vladislav Tupikin <[email protected]>
  • Loading branch information
nessgor and MrRefactoring authored Feb 20, 2025
1 parent 58b9ea0 commit 6c234d1
Show file tree
Hide file tree
Showing 127 changed files with 1,048 additions and 629 deletions.
7 changes: 6 additions & 1 deletion src/version2/avatars.ts
Original file line number Diff line number Diff line change
Expand Up @@ -160,11 +160,16 @@ export class Avatars {
const config: RequestConfig = {
url: `/rest/api/2/universal_avatar/type/${parameters.type}/owner/${parameters.entityId}`,
method: 'POST',
headers: {
'X-Atlassian-Token': 'no-check',
'Content-Type': parameters.mimeType,
},
params: {
x: parameters.x,
y: parameters.y,
size: parameters.size,
size: parameters.size ?? 0,
},
data: parameters.avatar,
};

return this.client.sendRequest(config, callback);
Expand Down
1 change: 0 additions & 1 deletion src/version2/dashboards.ts
Original file line number Diff line number Diff line change
Expand Up @@ -197,7 +197,6 @@ export class Dashboards {
params: {
dashboardName: parameters?.dashboardName,
accountId: parameters?.accountId,
owner: parameters?.owner,
groupname: parameters?.groupname,
groupId: parameters?.groupId,
projectId: parameters?.projectId,
Expand Down
9 changes: 7 additions & 2 deletions src/version2/filters.ts
Original file line number Diff line number Diff line change
Expand Up @@ -227,7 +227,6 @@ export class Filters {
params: {
filterName: parameters?.filterName,
accountId: parameters?.accountId,
owner: parameters?.owner,
groupname: parameters?.groupname,
groupId: parameters?.groupId,
projectId: parameters?.projectId,
Expand Down Expand Up @@ -312,7 +311,13 @@ export class Filters {
expand: parameters.expand,
overrideSharePermissions: parameters.overrideSharePermissions,
},
data: parameters.body,
data: {
name: parameters.name,
description: parameters.description,
jql: parameters.jql,
favourite: parameters.favourite,
sharePermissions: parameters.sharePermissions,
},
};

return this.client.sendRequest(config, callback);
Expand Down
4 changes: 1 addition & 3 deletions src/version2/groups.ts
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,7 @@ export class Groups {
url: '/rest/api/2/group/user',
method: 'POST',
params: {
groupname: parameters?.groupname,
groupname: parameters?.groupName,
groupId: parameters?.groupId,
},
data: {
Expand Down Expand Up @@ -276,13 +276,11 @@ export class Groups {
url: '/rest/api/2/groups/picker',
method: 'GET',
params: {
accountId: parameters?.accountId,
query: parameters?.query,
exclude: parameters?.exclude,
excludeId: parameters?.excludeId,
maxResults: parameters?.maxResults,
caseInsensitive: parameters?.caseInsensitive,
userName: parameters?.userName,
},
};

Expand Down
4 changes: 4 additions & 0 deletions src/version2/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -90,3 +90,7 @@ export * from './workflowStatuses';
export * from './workflowTransitionProperties';
export * from './workflowTransitionRules';
export * from './workflows';

export * from './client';
export * as Version2Models from './models';
export * as Version2Parameters from './parameters';
20 changes: 12 additions & 8 deletions src/version2/issueComments.ts
Original file line number Diff line number Diff line change
Expand Up @@ -147,18 +147,18 @@ export class IssueComments {
expand: parameters.expand,
},
data: {
author: parameters.author,
body: parameters.body,
created: parameters.created,
self: parameters.self,
id: parameters.id,
jsdAuthorCanSeeRequest: parameters.jsdAuthorCanSeeRequest,
jsdPublic: parameters.jsdPublic,
properties: parameters.properties,
author: parameters.author,
body: parameters.comment,
renderedBody: parameters.renderedBody,
self: parameters.self,
updateAuthor: parameters.updateAuthor,
created: parameters.created,
updated: parameters.updated,
visibility: parameters.visibility,
jsdPublic: parameters.jsdPublic,
jsdAuthorCanSeeRequest: parameters.jsdAuthorCanSeeRequest,
properties: parameters.properties,
},
};

Expand Down Expand Up @@ -251,7 +251,11 @@ export class IssueComments {
overrideEditableFlag: parameters.overrideEditableFlag,
expand: parameters.expand,
},
data: parameters.body,
data: {
body: parameters.comment,
visibility: parameters.visibility,
properties: parameters.properties,
},
};

return this.client.sendRequest(config, callback);
Expand Down
12 changes: 6 additions & 6 deletions src/version2/issuePriorities.ts
Original file line number Diff line number Diff line change
Expand Up @@ -52,18 +52,18 @@ export class IssuePriorities {
*/
async createPriority<T = Models.PriorityId>(parameters?: Parameters.CreatePriority, callback?: never): Promise<T>;
async createPriority<T = Models.PriorityId>(
parameters?: Parameters.CreatePriority,
parameters: Parameters.CreatePriority,
callback?: Callback<T>,
): Promise<void | T> {
const config: RequestConfig = {
url: '/rest/api/2/priority',
method: 'POST',
data: {
avatarId: parameters?.avatarId,
description: parameters?.description,
iconUrl: parameters?.iconUrl,
name: parameters?.name,
statusColor: parameters?.statusColor,
avatarId: parameters.avatarId,
description: parameters.description,
iconUrl: parameters.iconUrl,
name: parameters.name,
statusColor: parameters.statusColor,
},
};

Expand Down
119 changes: 57 additions & 62 deletions src/version2/issueSearch.ts
Original file line number Diff line number Diff line change
Expand Up @@ -74,10 +74,7 @@ export class IssueSearch {
* - If [issue-level security](https://confluence.atlassian.com/x/J4lKLg) is configured, issue-level security permission
* to view the issue.
*/
async matchIssues<T = Models.IssueMatches>(
parameters: Parameters.MatchIssues | undefined,
callback: Callback<T>,
): Promise<void>;
async matchIssues<T = Models.IssueMatches>(parameters: Parameters.MatchIssues, callback: Callback<T>): Promise<void>;
/**
* Checks whether one or more issues would be returned by one or more JQL queries.
*
Expand All @@ -89,17 +86,17 @@ export class IssueSearch {
* - If [issue-level security](https://confluence.atlassian.com/x/J4lKLg) is configured, issue-level security permission
* to view the issue.
*/
async matchIssues<T = Models.IssueMatches>(parameters?: Parameters.MatchIssues, callback?: never): Promise<T>;
async matchIssues<T = Models.IssueMatches>(parameters: Parameters.MatchIssues, callback?: never): Promise<T>;
async matchIssues<T = Models.IssueMatches>(
parameters?: Parameters.MatchIssues,
parameters: Parameters.MatchIssues,
callback?: Callback<T>,
): Promise<void | T> {
const config: RequestConfig = {
url: '/rest/api/2/jql/match',
method: 'POST',
data: {
issueIds: parameters?.issueIds,
jqls: parameters?.jqls,
issueIds: parameters.issueIds,
jqls: parameters.jqls,
},
};

Expand All @@ -122,7 +119,7 @@ export class IssueSearch {
* to view the issue.
*/
async searchForIssuesUsingJql<T = Models.SearchResults>(
parameters: Parameters.SearchForIssuesUsingJql | undefined,
parameters: Parameters.SearchForIssuesUsingJql,
callback: Callback<T>,
): Promise<void>;
/**
Expand All @@ -142,26 +139,26 @@ export class IssueSearch {
* to view the issue.
*/
async searchForIssuesUsingJql<T = Models.SearchResults>(
parameters?: Parameters.SearchForIssuesUsingJql,
parameters: Parameters.SearchForIssuesUsingJql,
callback?: never,
): Promise<T>;
async searchForIssuesUsingJql<T = Models.SearchResults>(
parameters?: Parameters.SearchForIssuesUsingJql,
parameters: Parameters.SearchForIssuesUsingJql,
callback?: Callback<T>,
): Promise<void | T> {
const config: RequestConfig = {
url: '/rest/api/2/search',
method: 'GET',
params: {
jql: parameters?.jql,
startAt: parameters?.startAt,
maxResults: parameters?.maxResults,
validateQuery: parameters?.validateQuery,
fields: parameters?.fields,
expand: parameters?.expand,
properties: parameters?.properties,
fieldsByKeys: parameters?.fieldsByKeys,
failFast: parameters?.failFast,
jql: parameters.jql,
startAt: parameters.startAt,
maxResults: parameters.maxResults,
validateQuery: parameters.validateQuery,
fields: parameters.fields,
expand: parameters.expand,
properties: parameters.properties,
fieldsByKeys: parameters.fieldsByKeys,
failFast: parameters.failFast,
},
};

Expand Down Expand Up @@ -242,10 +239,7 @@ export class IssueSearch {
* - If [issue-level security](https://confluence.atlassian.com/x/J4lKLg) is configured, issue-level security permission
* to view the issue.
*/
async countIssues<T = Models.JQLCount>(
parameters: Parameters.CountIssues | undefined,
callback: Callback<T>,
): Promise<void>;
async countIssues<T = Models.JQLCount>(parameters: Parameters.CountIssues, callback: Callback<T>): Promise<void>;
/**
* Provide an estimated count of the issues that match the [JQL](https://confluence.atlassian.com/x/egORLQ). Recent
* updates might not be immediately visible in the returned output. This endpoint requires JQL to be bounded.
Expand All @@ -260,16 +254,16 @@ export class IssueSearch {
* - If [issue-level security](https://confluence.atlassian.com/x/J4lKLg) is configured, issue-level security permission
* to view the issue.
*/
async countIssues<T = Models.JQLCount>(parameters?: Parameters.CountIssues, callback?: never): Promise<T>;
async countIssues<T = Models.JQLCount>(parameters: Parameters.CountIssues, callback?: never): Promise<T>;
async countIssues<T = Models.JQLCount>(
parameters?: Parameters.CountIssues,
parameters: Parameters.CountIssues,
callback?: Callback<T>,
): Promise<void | T> {
const config: RequestConfig = {
url: '/rest/api/2/search/approximate-count',
method: 'POST',
data: {
jql: parameters?.jql,
jql: parameters.jql,
},
};

Expand All @@ -294,7 +288,7 @@ export class IssueSearch {
* to view the issue.
*/
async searchForIssuesIds<T = Models.IdSearchResults>(
parameters: Parameters.SearchForIssuesIds | undefined,
parameters: Parameters.SearchForIssuesIds,
callback: Callback<T>,
): Promise<void>;
/**
Expand All @@ -316,20 +310,20 @@ export class IssueSearch {
* to view the issue.
*/
async searchForIssuesIds<T = Models.IdSearchResults>(
parameters?: Parameters.SearchForIssuesIds,
parameters: Parameters.SearchForIssuesIds,
callback?: never,
): Promise<T>;
async searchForIssuesIds<T = Models.IdSearchResults>(
parameters?: Parameters.SearchForIssuesIds,
parameters: Parameters.SearchForIssuesIds,
callback?: Callback<T>,
): Promise<void | T> {
const config: RequestConfig = {
url: '/rest/api/2/search/id',
method: 'POST',
data: {
jql: parameters?.jql,
maxResults: parameters?.maxResults,
nextPageToken: parameters?.nextPageToken,
jql: parameters.jql,
maxResults: parameters.maxResults,
nextPageToken: parameters.nextPageToken,
},
};

Expand All @@ -353,8 +347,8 @@ export class IssueSearch {
* - If [issue-level security](https://confluence.atlassian.com/x/J4lKLg) is configured, issue-level security permission
* to view the issue.
*/
async searchAndReconsileIssuesUsingJql<T = Models.SearchAndReconcileResults>(
parameters: Parameters.SearchAndReconsileIssuesUsingJql | undefined,
async searchForIssuesUsingJqlEnhancedSearch<T = Models.SearchAndReconcileResults>(
parameters: Parameters.SearchForIssuesUsingJqlEnhancedSearch | undefined,
callback: Callback<T>,
): Promise<void>;
/**
Expand All @@ -375,27 +369,27 @@ export class IssueSearch {
* - If [issue-level security](https://confluence.atlassian.com/x/J4lKLg) is configured, issue-level security permission
* to view the issue.
*/
async searchAndReconsileIssuesUsingJql<T = Models.SearchAndReconcileResults>(
parameters?: Parameters.SearchAndReconsileIssuesUsingJql,
async searchForIssuesUsingJqlEnhancedSearch<T = Models.SearchAndReconcileResults>(
parameters: Parameters.SearchForIssuesUsingJqlEnhancedSearch,
callback?: never,
): Promise<T>;
async searchAndReconsileIssuesUsingJql<T = Models.SearchAndReconcileResults>(
parameters?: Parameters.SearchAndReconsileIssuesUsingJql,
async searchForIssuesUsingJqlEnhancedSearch<T = Models.SearchAndReconcileResults>(
parameters: Parameters.SearchForIssuesUsingJqlEnhancedSearch,
callback?: Callback<T>,
): Promise<void | T> {
const config: RequestConfig = {
url: '/rest/api/2/search/jql',
method: 'GET',
params: {
jql: parameters?.jql,
nextPageToken: parameters?.nextPageToken,
maxResults: parameters?.maxResults,
fields: parameters?.fields,
expand: parameters?.expand,
properties: parameters?.properties,
fieldsByKeys: parameters?.fieldsByKeys,
failFast: parameters?.failFast,
reconcileIssues: parameters?.reconcileIssues,
jql: parameters.jql,
nextPageToken: parameters.nextPageToken,
maxResults: parameters.maxResults,
fields: parameters.fields,
expand: parameters.expand,
properties: parameters.properties,
fieldsByKeys: parameters.fieldsByKeys,
failFast: parameters.failFast,
reconcileIssues: parameters.reconcileIssues,
},
};

Expand All @@ -416,8 +410,8 @@ export class IssueSearch {
* - If [issue-level security](https://confluence.atlassian.com/x/J4lKLg) is configured, issue-level security permission
* to view the issue.
*/
async searchAndReconsileIssuesUsingJqlPost<T = Models.SearchAndReconcileResults>(
parameters: Parameters.SearchAndReconsileIssuesUsingJqlPost | undefined,
async searchForIssuesUsingJqlEnhancedSearchPost<T = Models.SearchAndReconcileResults>(
parameters: Parameters.SearchForIssuesUsingJqlEnhancedSearchPost,
callback: Callback<T>,
): Promise<void>;
/**
Expand All @@ -435,26 +429,27 @@ export class IssueSearch {
* - If [issue-level security](https://confluence.atlassian.com/x/J4lKLg) is configured, issue-level security permission
* to view the issue.
*/
async searchAndReconsileIssuesUsingJqlPost<T = Models.SearchAndReconcileResults>(
parameters?: Parameters.SearchAndReconsileIssuesUsingJqlPost,
async searchForIssuesUsingJqlEnhancedSearchPost<T = Models.SearchAndReconcileResults>(
parameters: Parameters.SearchForIssuesUsingJqlEnhancedSearchPost,
callback?: never,
): Promise<T>;
async searchAndReconsileIssuesUsingJqlPost<T = Models.SearchAndReconcileResults>(
parameters?: Parameters.SearchAndReconsileIssuesUsingJqlPost,
async searchForIssuesUsingJqlEnhancedSearchPost<T = Models.SearchAndReconcileResults>(
parameters: Parameters.SearchForIssuesUsingJqlEnhancedSearchPost,
callback?: Callback<T>,
): Promise<void | T> {
const config: RequestConfig = {
url: '/rest/api/2/search/jql',
method: 'POST',
data: {
expand: parameters?.expand,
fields: parameters?.fields,
fieldsByKeys: parameters?.fieldsByKeys,
jql: parameters?.jql,
maxResults: parameters?.maxResults,
nextPageToken: parameters?.nextPageToken,
properties: parameters?.properties,
reconcileIssues: parameters?.reconcileIssues,
jql: parameters.jql,
nextPageToken: parameters.nextPageToken,
maxResults: parameters.maxResults,
fields: parameters.fields,
expand: parameters.expand,
properties: parameters.properties,
fieldsByKeys: parameters.fieldsByKeys,
failFast: parameters.failFast,
reconcileIssues: parameters.reconcileIssues,
},
};

Expand Down
Loading

0 comments on commit 6c234d1

Please sign in to comment.