UNPKG

synergia-jira-connector

Version:

Easy to use NodeJS wrapper for the Jira REST API.

244 lines (217 loc) 9.18 kB
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>JSDoc: Source: api/group.js</title> <script src="scripts/prettify/prettify.js"></script> <script src="scripts/prettify/lang-css.js"></script> <!--[if lt IE 9]> <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif]--> <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css"> <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css"> </head> <body> <div id="main"> <h1 class="page-title">Source: api/group.js</h1> <section> <article> <pre class="prettyprint source linenums"><code>"use strict"; module.exports = GroupClient; /** * Used to access Jira REST endpoints in '/rest/api/2/group' * * These are considered experimental according to the Jira Docs, use at your own risk. * * @param {JiraClient} jiraClient * @constructor GroupClient */ function GroupClient(jiraClient) { this.jiraClient = jiraClient; /** * Creates a group by given group parameter Returns REST representation for the requested group. * * @method createGroup * @memberOf GroupClient# * @param opts The request options sent to jira * @param opts.group The group to create. See {@link https://docs.atlassian.com/jira/REST/latest/#d2e2011} * @param callback Called when the group is created */ this.createGroup = function (opts, callback) { var options = { uri: this.jiraClient.buildURL('/group'), method: 'POST', json: true, followAllRedirects: true, body: opts.group }; this.jiraClient.makeRequest(options, callback); }; /** * Returns REST representation for the requested group. Allows to get list of active users belonging to the * specified group and its subgroups if "users" expand option is provided. You can page through users list by using * indexes in expand param. For example to get users from index 10 to index 15 use "users[10:15]" expand value. * This will return 6 users (if there are at least 16 users in this group). Indexes are 0-based and inclusive. * * @method getGroup * @memberOf GroupClient# * @param opts The request options sent to the Jira API * @param opts.groupName A name of requested group. * @param opts.expand Array of fields to expand. Currently only available expand is "users". * @param callback Called when the group is retrieved. */ this.getGroup = function (opts, callback) { var qs = { groupname: opts.groupName }; if (opts.expand) { qs.expand = ''; opts.expand.forEach(function (ex) { qs.expand += ex + ',' }); } var options = { uri: this.jiraClient.buildURL('/group'), method: 'GET', json: true, followAllRedirects: true, qs: qs }; this.jiraClient.makeRequest(options, callback); }; /** * Adds given user to a group. Returns the current state of the group. * * @method addUserToGroup * @memberOf GroupClient# * @param {Object} opts The request options sent to the Jira API * @param {string} opts.groupName A name of requested group. * @param {string} opts.userName The name of the user to add to the group. * @param callback Called when the user has been added to the group. */ this.addUserToGroup = function (opts, callback) { var options = { uri: this.jiraClient.buildURL('/group/user'), method: 'POST', json: true, followAllRedirects: true, qs: { groupname: opts.groupName }, body: { name: opts.userName } }; this.jiraClient.makeRequest(options, callback); }; /** * Removes given user from a group. Returns no content * * @method removeUserFromGroup * @memberOf GroupClient# * @param {Object} opts The request options sent to the Jira API * @param {string} opts.groupName A name of requested group. * @param {string} opts.userName The name of the user to add to the group. * @param callback Called when the user has been added to the group. */ this.removeUserFromGroup = function (opts, callback) { var options = { uri: this.jiraClient.buildURL('/group/user'), method: 'DELETE', json: true, followAllRedirects: true, qs: { groupname: opts.groupName, username: opts.userName } }; this.jiraClient.makeRequest(options, callback, 'User Removed from Group'); }; /** * Deletes a group by given group parameter. Returns no content * * @method deleteGroup * @memberOf GroupClient# * @param {Object} opts The request options sent to the Jira API * @param {string} opts.groupName A group to delete. * @param {string} [opts.swapGroup] A group to transfer visibility restrictions of the group that is being deleted * @param callback Called when the group has been deleted. */ this.deleteGroup = function (opts, callback) { var options = { uri: this.jiraClient.buildURL('/group'), method: 'DELETE', json: true, followAllRedirects: true, qs: { groupname: opts.groupName, swapGroup: opts.swapGroup } }; this.jiraClient.makeRequest(options, callback, 'Group Deleted'); }; }</code></pre> </article> </section> </div> <nav> <h2><a href="index.html">Home</a></h2> <h3>Classes</h3> <ul> <li><a href="ApplicationPropertiesClient.html">ApplicationPropertiesClient</a></li> <li><a href="AttachmentClient.html">AttachmentClient</a></li> <li><a href="AuditingClient.html">AuditingClient</a></li> <li><a href="AvatarClient.html">AvatarClient</a></li> <li><a href="CommentClient.html">CommentClient</a></li> <li><a href="ComponentClient.html">ComponentClient</a></li> <li><a href="CustomFieldOptionClient.html">CustomFieldOptionClient</a></li> <li><a href="DashboardClient.html">DashboardClient</a></li> <li><a href="FieldClient.html">FieldClient</a></li> <li><a href="FilterClient.html">FilterClient</a></li> <li><a href="GroupClient.html">GroupClient</a></li> <li><a href="GroupsClient.html">GroupsClient</a></li> <li><a href="GroupUserPickerClient.html">GroupUserPickerClient</a></li> <li><a href="IssueClient.html">IssueClient</a></li> <li><a href="IssueLinkClient.html">IssueLinkClient</a></li> <li><a href="IssueLinkTypeClient.html">IssueLinkTypeClient</a></li> <li><a href="IssueTypeClient.html">IssueTypeClient</a></li> <li><a href="JiraClient.html">JiraClient</a></li> <li><a href="JqlClient.html">JqlClient</a></li> <li><a href="LicenseRoleClient.html">LicenseRoleClient</a></li> <li><a href="LicenseValidatorClient.html">LicenseValidatorClient</a></li> <li><a href="MyPermissionsClient.html">MyPermissionsClient</a></li> <li><a href="MyPreferencesClient.html">MyPreferencesClient</a></li> <li><a href="MyselfClient.html">MyselfClient</a></li> <li><a href="PasswordClient.html">PasswordClient</a></li> <li><a href="PriorityClient.html">PriorityClient</a></li> <li><a href="ProjectCategoryClient.html">ProjectCategoryClient</a></li> <li><a href="ProjectClient.html">ProjectClient</a></li> <li><a href="ProjectValidateClient.html">ProjectValidateClient</a></li> <li><a href="ReindexClient.html">ReindexClient</a></li> <li><a href="ResolutionClient.html">ResolutionClient</a></li> <li><a href="ScreensClient.html">ScreensClient</a></li> <li><a href="SearchClient.html">SearchClient</a></li> <li><a href="SecurityLevelClient.html">SecurityLevelClient</a></li> <li><a href="ServerInfoClient.html">ServerInfoClient</a></li> <li><a href="SettingsClient.html">SettingsClient</a></li> <li><a href="StatusCategoryClient.html">StatusCategoryClient</a></li> <li><a href="StatusClient.html">StatusClient</a></li> <li><a href="UserClient.html">UserClient</a></li> <li><a href="VersionClient.html">VersionClient</a></li> <li><a href="WorkflowClient.html">WorkflowClient</a></li> <li><a href="WorkflowSchemeClient.html">WorkflowSchemeClient</a></li> </ul> <h3>Namespaces</h3> <ul> <li><a href="OauthUtil.html">OauthUtil</a></li> </ul> </nav> <br class="clear"> <footer> Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.3.0-alpha13</a> on Tue Nov 10 2015 11:10:10 GMT-0600 (CST) </footer> <script> prettyPrint(); </script> <script src="scripts/linenumber.js"></script> </body> </html>