synergia-jira-connector
Version:
Easy to use NodeJS wrapper for the Jira REST API.
243 lines (216 loc) • 9.1 kB
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="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 Sep 22 2015
13:08:43 GMT-0500 (CDT)
</footer>
<script> prettyPrint(); </script>
<script src="scripts/linenumber.js"></script>
</body>
</html>