@esm-js/jira.js
Version:
A comprehensive JavaScript/TypeScript library designed for both Node.JS and browsers, facilitating seamless interaction with the Atlassian Jira API.
170 lines (158 loc) • 7.62 kB
text/typescript
import type * as Models from './models';
import type * as Parameters from './parameters';
import type { Client } from '../clients';
import type { Callback } from '../callback';
import type { RequestConfig } from '../requestConfig';
export class TimeTracking {
constructor(private client: Client) {}
/**
* Returns the time tracking provider that is currently selected. Note that if time tracking is disabled, then a
* successful but empty response is returned.
*
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/#permissions) required:**
* _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg).
*/
async getSelectedTimeTrackingImplementation<T = void>(callback: Callback<T>): Promise<void>;
/**
* Returns the time tracking provider that is currently selected. Note that if time tracking is disabled, then a
* successful but empty response is returned.
*
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/#permissions) required:**
* _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg).
*/
async getSelectedTimeTrackingImplementation<T = void>(callback?: never): Promise<T>;
async getSelectedTimeTrackingImplementation<T = void>(callback?: Callback<T>): Promise<void | T> {
const config: RequestConfig = {
url: '/rest/api/3/configuration/timetracking',
method: 'GET',
};
return this.client.sendRequest(config, callback);
}
/**
* Selects a time tracking provider.
*
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/#permissions) required:**
* _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg).
*/
async selectTimeTrackingImplementation<T = void>(
parameters: Parameters.SelectTimeTrackingImplementation | undefined,
callback: Callback<T>,
): Promise<void>;
/**
* Selects a time tracking provider.
*
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/#permissions) required:**
* _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg).
*/
async selectTimeTrackingImplementation<T = void>(
parameters?: Parameters.SelectTimeTrackingImplementation,
callback?: never,
): Promise<T>;
async selectTimeTrackingImplementation<T = void>(
parameters?: Parameters.SelectTimeTrackingImplementation,
callback?: Callback<T>,
): Promise<void | T> {
const config: RequestConfig = {
url: '/rest/api/3/configuration/timetracking',
method: 'PUT',
data: {
key: parameters?.key,
name: parameters?.name,
url: parameters?.url,
},
};
return this.client.sendRequest(config, callback);
}
/**
* Returns all time tracking providers. By default, Jira only has one time tracking provider: _JIRA provided time
* tracking_. However, you can install other time tracking providers via apps from the Atlassian Marketplace. For more
* information on time tracking providers, see the documentation for the [ Time Tracking
* Provider](https://developer.atlassian.com/cloud/jira/platform/modules/time-tracking-provider/) module.
*
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/#permissions) required:**
* _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg).
*/
async getAvailableTimeTrackingImplementations<T = Models.TimeTrackingProvider[]>(
callback: Callback<T>,
): Promise<void>;
/**
* Returns all time tracking providers. By default, Jira only has one time tracking provider: _JIRA provided time
* tracking_. However, you can install other time tracking providers via apps from the Atlassian Marketplace. For more
* information on time tracking providers, see the documentation for the [ Time Tracking
* Provider](https://developer.atlassian.com/cloud/jira/platform/modules/time-tracking-provider/) module.
*
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/#permissions) required:**
* _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg).
*/
async getAvailableTimeTrackingImplementations<T = Models.TimeTrackingProvider[]>(callback?: never): Promise<T>;
async getAvailableTimeTrackingImplementations<T = Models.TimeTrackingProvider[]>(
callback?: Callback<T>,
): Promise<void | T> {
const config: RequestConfig = {
url: '/rest/api/3/configuration/timetracking/list',
method: 'GET',
};
return this.client.sendRequest(config, callback);
}
/**
* Returns the time tracking settings. This includes settings such as the time format, default time unit, and others.
* For more information, see [Configuring time tracking](https://confluence.atlassian.com/x/qoXKM).
*
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/#permissions) required:**
* _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg).
*/
async getSharedTimeTrackingConfiguration<T = Models.TimeTrackingConfiguration>(callback: Callback<T>): Promise<void>;
/**
* Returns the time tracking settings. This includes settings such as the time format, default time unit, and others.
* For more information, see [Configuring time tracking](https://confluence.atlassian.com/x/qoXKM).
*
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/#permissions) required:**
* _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg).
*/
async getSharedTimeTrackingConfiguration<T = Models.TimeTrackingConfiguration>(callback?: never): Promise<T>;
async getSharedTimeTrackingConfiguration<T = Models.TimeTrackingConfiguration>(
callback?: Callback<T>,
): Promise<void | T> {
const config: RequestConfig = {
url: '/rest/api/3/configuration/timetracking/options',
method: 'GET',
};
return this.client.sendRequest(config, callback);
}
/**
* Sets the time tracking settings.
*
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/#permissions) required:**
* _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg).
*/
async setSharedTimeTrackingConfiguration<T = Models.TimeTrackingConfiguration>(
parameters: Parameters.SetSharedTimeTrackingConfiguration,
callback: Callback<T>,
): Promise<void>;
/**
* Sets the time tracking settings.
*
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/#permissions) required:**
* _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg).
*/
async setSharedTimeTrackingConfiguration<T = Models.TimeTrackingConfiguration>(
parameters: Parameters.SetSharedTimeTrackingConfiguration,
callback?: never,
): Promise<T>;
async setSharedTimeTrackingConfiguration<T = Models.TimeTrackingConfiguration>(
parameters: Parameters.SetSharedTimeTrackingConfiguration,
callback?: Callback<T>,
): Promise<void | T> {
const config: RequestConfig = {
url: '/rest/api/3/configuration/timetracking/options',
method: 'PUT',
data: {
defaultUnit: parameters.defaultUnit,
timeFormat: parameters.timeFormat,
workingDaysPerWeek: parameters.workingDaysPerWeek,
workingHoursPerDay: parameters.workingHoursPerDay,
},
};
return this.client.sendRequest(config, callback);
}
}