UNPKG

synergia-jira-connector

Version:

Easy to use NodeJS wrapper for the Jira REST API.

121 lines (109 loc) 3.87 kB
"use strict"; module.exports = ComponentClient; /** * Used to access Jira REST endpoints in '/rest/api/2/component' * * @param {JiraClient} jiraClient * @constructor ComponentClient */ function ComponentClient (jiraClient) { this.jiraClient = jiraClient; /** * Create a component via POST. * * @method createComponent * @memberOf ComponentClient# * @param opts The request options sent to the Jira API * @param opts.component See {@link https://docs.atlassian.com/jira/REST/latest/#d2e3871} * @param callback Called when the component has been created. */ this.createComponent = function (opts, callback) { var options = { uri: this.jiraClient.buildURL('/component'), method: 'POST', json: true, followAllRedirects: true, body: opts.component }; this.jiraClient.makeRequest(options, callback); }; /** * Modify a component via PUT. Any fields present in the PUT will override existing values. As a convenience, if a * field is not present, it is silently ignored. If leadUserName is an empty string ("") the component lead will be * removed. * * @method editComponent * @memberOf ComponentClient# * @param opts The request options sent to the Jira API. * @param opts.id The id of the component to edit. * @param opts.component The new data to place in the component. See * {@link https://docs.atlassian.com/jira/REST/latest/#d2e3939} * @param callback Called when the component has beed edited. */ this.editComponent = function (opts, callback) { var options = { uri: this.jiraClient.buildURL('/component/' + opts.id), method: 'PUT', json: true, followAllRedirects: true, body: opts.component }; this.jiraClient.makeRequest(options, callback); }; /** * Get a project component. * * @method getComponent * @memberOf ComponentClient# * @param opts The options sent to the Jira API * @param opts.id The id of the component to edit. * @param callback Called when the component has been retrieved. */ this.getComponent = function (opts, callback) { var options = { uri: this.jiraClient.buildURL('/component/' + opts.id), method: 'GET', json: true, followAllRedirects: true }; this.jiraClient.makeRequest(options, callback); }; /** * Delete a project component. * * @method deleteComponent * @memberOf ComponentClient# * @param opts The options sent to the Jira API * @param opts.id The id of the component to edit. * @param [opts.moveIssuesTo] The new component applied to issues whose 'id' component will be deleted. If this * value is null, then the 'id' component is simply removed from the related isues. * @param callback Called when the component has been deleted. */ this.deleteComponent = function (opts, callback) { var options = { uri: this.jiraClient.buildURL('/component/' + opts.id), method: 'DELETE', json: true, followAllRedirects: true }; this.jiraClient.makeRequest(options, callback, 'Project Component Deleted'); }; /** * Get counts of issues related to this component. * * @method getRelatedIssueCounts * @memberOf ComponentClient# * @param opts The options sent to the Jira API * @param opts.id The id of the component to edit. * @param callback Called when the count has been retrieved. */ this.getRelatedIssueCounts = function (opts, callback) { var options = { uri: this.jiraClient.buildURL('/component/' + opts.id + '/relatedIssueCounts'), method: 'GET', json: true, followAllRedirects: true }; this.jiraClient.makeRequest(options, callback); } }