stash-connector
Version:
Module to handle and work with Atlassian Stash projects and repositories throug REST API. Admin your repositories and projects in Stash easy. This project is not an Atlassian official project but use the Atlassian Stash REST API
330 lines • 15.2 kB
JavaScript
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __generator = (this && this.__generator) || function (thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (_) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.UsersEndpoint = exports.UserSettingsEndpoint = exports.UserAvatarEndpoint = void 0;
var types_1 = require("../types");
/**
* Class to manage and expose all endpoits and operations below '/rest/api/1.0/users/{userSlug}/avatar.png'
*/
var UserAvatarEndpoint = /** @class */ (function (_super) {
__extends(UserAvatarEndpoint, _super);
function UserAvatarEndpoint(auth, userSlug) {
return _super.call(this, auth, '/' + userSlug + '/avatar.png') || this;
}
/**
* Update the avatar for the user with the supplied slug
* @param {any} avatar The desired size of the image
* @returns {Promise<void>} If not throw errors, operation finish susccesfully
*/
UserAvatarEndpoint.prototype.update = function (avatar) {
return __awaiter(this, void 0, void 0, function () {
var request, result, error_1;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
request = this.doPost().withBody(avatar);
_a.label = 1;
case 1:
_a.trys.push([1, 3, , 4]);
return [4 /*yield*/, request.execute()];
case 2:
result = _a.sent();
return [2 /*return*/, result.data];
case 3:
error_1 = _a.sent();
throw error_1;
case 4: return [2 /*return*/];
}
});
});
};
/**
* Delete the avatar associated to a user
* @returns {Promise<DeleteAvatarOutput>} Return the deleted avatar path (href) data
*/
UserAvatarEndpoint.prototype.delete = function () {
return __awaiter(this, void 0, void 0, function () {
var request, result, error_2;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
request = this.doDelete();
_a.label = 1;
case 1:
_a.trys.push([1, 3, , 4]);
return [4 /*yield*/, request.execute()];
case 2:
result = _a.sent();
return [2 /*return*/, result.data];
case 3:
error_2 = _a.sent();
throw error_2;
case 4: return [2 /*return*/];
}
});
});
};
return UserAvatarEndpoint;
}(types_1.EndpointService));
exports.UserAvatarEndpoint = UserAvatarEndpoint;
/**
* Class to manage and expose all endpoits and operations below '/rest/api/1.0/users/{userSlug}/settings'
*/
var UserSettingsEndpoint = /** @class */ (function (_super) {
__extends(UserSettingsEndpoint, _super);
function UserSettingsEndpoint(auth, userSlug) {
return _super.call(this, auth, '/' + userSlug + '/settings') || this;
}
/**
* Retrieve a map of user setting key values for a specific user identified by the user slug
* @returns {Promise<{ [key: string]: any }>} Promise with user settings data
*/
UserSettingsEndpoint.prototype.get = function () {
return __awaiter(this, void 0, void 0, function () {
var request, result, error_3;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
request = this.doGet();
_a.label = 1;
case 1:
_a.trys.push([1, 3, , 4]);
return [4 /*yield*/, request.execute()];
case 2:
result = _a.sent();
return [2 /*return*/, result.data];
case 3:
error_3 = _a.sent();
throw error_3;
case 4: return [2 /*return*/];
}
});
});
};
/**
* Update the entries of a map of user setting key/values for a specific user identified by the user slug
* @param {{ [key: string]: any }} userSettings The desired size of the image
* @returns {Promise<void>} If not throw errors, operation finish susccesfully
*/
UserSettingsEndpoint.prototype.update = function (userSettings) {
return __awaiter(this, void 0, void 0, function () {
var request, result, error_4;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
request = this.doPost().withBody(userSettings);
_a.label = 1;
case 1:
_a.trys.push([1, 3, , 4]);
return [4 /*yield*/, request.execute()];
case 2:
result = _a.sent();
return [2 /*return*/, result.data];
case 3:
error_4 = _a.sent();
throw error_4;
case 4: return [2 /*return*/];
}
});
});
};
return UserSettingsEndpoint;
}(types_1.EndpointService));
exports.UserSettingsEndpoint = UserSettingsEndpoint;
/**
* Class to manage and expose all endpoits and operations below '/rest/api/1.0/users/*'
*/
var UsersEndpoint = /** @class */ (function (_super) {
__extends(UsersEndpoint, _super);
function UsersEndpoint(auth) {
var _this = _super.call(this, auth, '/users') || this;
/**
* Contains all operations related with user avatar
* All paths and operations from '/rest/api/1.0/users/{userSlug}/avatar.png'.
* @param {string} userSlug User slug
* @returns {UserAvatarEndpoint} Get all operations about the user avatar
*/
_this.avatar = function (userSlug) {
return new UserAvatarEndpoint(_this.auth, userSlug);
};
/**
* Contains all operations related with user settings
* All paths and operations from '/rest/api/1.0/users/{userSlug}/settings'.
* @param {string} userSlug User slug
* @returns {UserSettingsEndpoint} Get all operations about the user settings
*/
_this.settings = function (userSlug) {
return new UserSettingsEndpoint(_this.auth, userSlug);
};
return _this;
}
/**
* Retrieve a page of users, optionally run through provided filters
* @param {string} [filter] Return only users, whose username, name or email address contain the filter value
* @param {PageOptions} [pageOptions] Page options to paginate results (or obtain more results per page)
* @returns {Promise<Page<User>>} Promise with the requested page data
*/
UsersEndpoint.prototype.list = function (filter, pageOptions) {
return __awaiter(this, void 0, void 0, function () {
var request, result, error_5;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
request = this.doGet({
pageOptions: pageOptions,
});
_a.label = 1;
case 1:
_a.trys.push([1, 3, , 4]);
if (filter) {
request.addQueryParam('filter', filter);
}
return [4 /*yield*/, request.execute()];
case 2:
result = _a.sent();
return [2 /*return*/, result.data];
case 3:
error_5 = _a.sent();
throw error_5;
case 4: return [2 /*return*/];
}
});
});
};
/**
* Retrieve the user matching the supplied userSlug
* @param {string} userSlug User slug to get user data
* @returns {Promise<User>} Promise with the requested user data
*/
UsersEndpoint.prototype.get = function (userSlug) {
return __awaiter(this, void 0, void 0, function () {
var request, result, error_6;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
request = this.doGet({
param: userSlug
});
_a.label = 1;
case 1:
_a.trys.push([1, 3, , 4]);
return [4 /*yield*/, request.execute()];
case 2:
result = _a.sent();
return [2 /*return*/, result.data];
case 3:
error_6 = _a.sent();
throw error_6;
case 4: return [2 /*return*/];
}
});
});
};
/**
* Update the currently authenticated user's details. Note that the name attribute is ignored, the update will always be applied to the currently authenticated user.
* @param {User} userInput User input data to update
* @returns {Promise<User>} Promise with the updated user data
*/
UsersEndpoint.prototype.update = function (userInput) {
return __awaiter(this, void 0, void 0, function () {
var request, result, error_7;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
request = this.doPut().asJson().withBody(userInput);
_a.label = 1;
case 1:
_a.trys.push([1, 3, , 4]);
return [4 /*yield*/, request.execute()];
case 2:
result = _a.sent();
return [2 /*return*/, result.data];
case 3:
error_7 = _a.sent();
throw error_7;
case 4: return [2 /*return*/];
}
});
});
};
/**
* Update the currently authenticated user's password
* @param {ChangePasswordInput} changePasswordInput Change password input to update it
* @returns {Promise<void>} If not throw errors, operation finish successfully
*/
UsersEndpoint.prototype.changePassword = function (changePasswordInput) {
return __awaiter(this, void 0, void 0, function () {
var request, result, error_8;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
request = this.doPut({
param: 'credentials'
}).asJson().withBody(changePasswordInput);
_a.label = 1;
case 1:
_a.trys.push([1, 3, , 4]);
return [4 /*yield*/, request.execute()];
case 2:
result = _a.sent();
return [2 /*return*/];
case 3:
error_8 = _a.sent();
throw error_8;
case 4: return [2 /*return*/];
}
});
});
};
return UsersEndpoint;
}(types_1.EndpointService));
exports.UsersEndpoint = UsersEndpoint;
//# sourceMappingURL=users.js.map