Skip to content

Commit

Permalink
Incremental improvements
Browse files Browse the repository at this point in the history
  • Loading branch information
MrRefactoring committed Mar 2, 2025
1 parent 2e90ecd commit 0ec375e
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 22 deletions.
5 changes: 4 additions & 1 deletion src/version2/issuePriorities.ts
Original file line number Diff line number Diff line change
Expand Up @@ -194,7 +194,10 @@ export class IssuePriorities {
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:**
* Permission to access Jira.
*/
async getPriority<T = Models.Priority>(parameters: Parameters.GetPriority | string, callback: Callback<T>): Promise<void>;
async getPriority<T = Models.Priority>(
parameters: Parameters.GetPriority | string,
callback: Callback<T>,
): Promise<void>;
/**
* Returns an issue priority.
*
Expand Down
1 change: 1 addition & 0 deletions src/version3/jqlFunctionsApps.ts
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ export class JqlFunctionsApps {
startAt: parameters?.startAt,
maxResults: parameters?.maxResults,
orderBy: parameters?.orderBy,
filter: parameters?.filter,
},
};

Expand Down
55 changes: 34 additions & 21 deletions src/version3/status.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import { RequestConfig } from '../requestConfig';

export class Status {
constructor(private client: Client) {}

/**
* Returns a list of the statuses specified by one or more status IDs.
*
Expand All @@ -15,7 +16,7 @@ export class Status {
* - _Administer Jira_ [project permission.](https://confluence.atlassian.com/x/yodKLg)
*/
async getStatusesById<T = Models.JiraStatus[]>(
parameters: Parameters.GetStatusesById,
parameters: Parameters.GetStatusesById | string,
callback: Callback<T>,
): Promise<void>;
/**
Expand All @@ -26,22 +27,28 @@ export class Status {
* - _Administer projects_ [project permission.](https://confluence.atlassian.com/x/yodKLg)
* - _Administer Jira_ [project permission.](https://confluence.atlassian.com/x/yodKLg)
*/
async getStatusesById<T = Models.JiraStatus[]>(parameters: Parameters.GetStatusesById, callback?: never): Promise<T>;
async getStatusesById<T = Models.JiraStatus[]>(
parameters: Parameters.GetStatusesById,
parameters: Parameters.GetStatusesById | string,
callback?: never,
): Promise<T>;
async getStatusesById<T = Models.JiraStatus[]>(
parameters: Parameters.GetStatusesById | string,
callback?: Callback<T>,
): Promise<void | T> {
const id = typeof parameters === 'string' ? parameters : parameters.id;

const config: RequestConfig = {
url: '/rest/api/3/statuses',
method: 'GET',
params: {
expand: parameters.expand,
id: parameters.id,
id,
expand: typeof parameters !== 'string' ? parameters.expand : undefined,
},
};

return this.client.sendRequest(config, callback);
}

/**
* Creates statuses for a global or project scope.
*
Expand All @@ -51,7 +58,7 @@ export class Status {
* - _Administer Jira_ [project permission.](https://confluence.atlassian.com/x/yodKLg)
*/
async createStatuses<T = Models.JiraStatus[]>(
parameters: Parameters.CreateStatuses | undefined,
parameters: Parameters.CreateStatuses,
callback: Callback<T>,
): Promise<void>;
/**
Expand All @@ -62,22 +69,23 @@ export class Status {
* - _Administer projects_ [project permission.](https://confluence.atlassian.com/x/yodKLg)
* - _Administer Jira_ [project permission.](https://confluence.atlassian.com/x/yodKLg)
*/
async createStatuses<T = Models.JiraStatus[]>(parameters?: Parameters.CreateStatuses, callback?: never): Promise<T>;
async createStatuses<T = Models.JiraStatus[]>(parameters: Parameters.CreateStatuses, callback?: never): Promise<T>;
async createStatuses<T = Models.JiraStatus[]>(
parameters?: Parameters.CreateStatuses,
parameters: Parameters.CreateStatuses,
callback?: Callback<T>,
): Promise<void | T> {
const config: RequestConfig = {
url: '/rest/api/3/statuses',
method: 'POST',
data: {
scope: parameters?.scope,
statuses: parameters?.statuses,
scope: parameters.scope,
statuses: parameters.statuses,
},
};

return this.client.sendRequest(config, callback);
}

/**
* Updates statuses by ID.
*
Expand All @@ -86,10 +94,7 @@ export class Status {
* - _Administer projects_ [project permission.](https://confluence.atlassian.com/x/yodKLg)
* - _Administer Jira_ [project permission.](https://confluence.atlassian.com/x/yodKLg)
*/
async updateStatuses<T = void>(
parameters: Parameters.UpdateStatuses | undefined,
callback: Callback<T>,
): Promise<void>;
async updateStatuses<T = void>(parameters: Parameters.UpdateStatuses, callback: Callback<T>): Promise<void>;
/**
* Updates statuses by ID.
*
Expand All @@ -98,18 +103,19 @@ export class Status {
* - _Administer projects_ [project permission.](https://confluence.atlassian.com/x/yodKLg)
* - _Administer Jira_ [project permission.](https://confluence.atlassian.com/x/yodKLg)
*/
async updateStatuses<T = void>(parameters?: Parameters.UpdateStatuses, callback?: never): Promise<T>;
async updateStatuses<T = void>(parameters?: Parameters.UpdateStatuses, callback?: Callback<T>): Promise<void | T> {
async updateStatuses<T = void>(parameters: Parameters.UpdateStatuses, callback?: never): Promise<T>;
async updateStatuses<T = void>(parameters: Parameters.UpdateStatuses, callback?: Callback<T>): Promise<void | T> {
const config: RequestConfig = {
url: '/rest/api/3/statuses',
method: 'PUT',
data: {
statuses: parameters?.statuses,
statuses: parameters.statuses,
},
};

return this.client.sendRequest(config, callback);
}

/**
* Deletes statuses by ID.
*
Expand All @@ -118,7 +124,10 @@ export class Status {
* - _Administer projects_ [project permission.](https://confluence.atlassian.com/x/yodKLg)
* - _Administer Jira_ [project permission.](https://confluence.atlassian.com/x/yodKLg)
*/
async deleteStatusesById<T = void>(parameters: Parameters.DeleteStatusesById, callback: Callback<T>): Promise<void>;
async deleteStatusesById<T = void>(
parameters: Parameters.DeleteStatusesById | string,
callback: Callback<T>,
): Promise<void>;
/**
* Deletes statuses by ID.
*
Expand All @@ -127,21 +136,24 @@ export class Status {
* - _Administer projects_ [project permission.](https://confluence.atlassian.com/x/yodKLg)
* - _Administer Jira_ [project permission.](https://confluence.atlassian.com/x/yodKLg)
*/
async deleteStatusesById<T = void>(parameters: Parameters.DeleteStatusesById, callback?: never): Promise<T>;
async deleteStatusesById<T = void>(parameters: Parameters.DeleteStatusesById | string, callback?: never): Promise<T>;
async deleteStatusesById<T = void>(
parameters: Parameters.DeleteStatusesById,
parameters: Parameters.DeleteStatusesById | string,
callback?: Callback<T>,
): Promise<void | T> {
const id = typeof parameters === 'string' ? parameters : parameters.id;

const config: RequestConfig = {
url: '/rest/api/3/statuses',
method: 'DELETE',
params: {
id: parameters.id,
id,
},
};

return this.client.sendRequest(config, callback);
}

/**
* Returns a [paginated](https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/#pagination) list of
* statuses that match a search on name or project.
Expand Down Expand Up @@ -181,6 +193,7 @@ export class Status {

return this.client.sendRequest(config, callback);
}

/** Returns a page of issue types in a project using a given status. */
async getProjectIssueTypeUsagesForStatus<T = Models.StatusProjectIssueTypeUsage>(
parameters: Parameters.GetProjectIssueTypeUsagesForStatus,
Expand Down

0 comments on commit 0ec375e

Please sign in to comment.