UNPKG

@sitecore/sc-contenthub-webclient-sdk

Version:

Sitecore Content Hub WebClient SDK.

318 lines 16.5 kB
"use strict"; 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 __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.UsersClient = void 0; const constants_1 = require("../constants"); const culture_load_option_1 = require("../contracts/querying/culture-load-option"); const entity_load_configuration_1 = require("../contracts/querying/entity-load-configuration"); const filters_1 = require("../contracts/querying/filters"); const property_load_option_1 = require("../contracts/querying/property-load-option"); const query_1 = require("../contracts/querying/query"); const relation_load_option_1 = require("../contracts/querying/relation-load-option"); const guard_1 = __importDefault(require("../guard")); const set_password_request_resource_1 = __importDefault(require("../models/set-password-request-resource")); const type_guards_1 = require("../type-guards"); const response_handler_1 = require("./response-handler"); class UsersClient { constructor(client) { this._client = client; } //#region Get users getUserIdAsync(username) { return __awaiter(this, void 0, void 0, function* () { guard_1.default.stringNotNullOrEmpty(username); const user = yield this.getUserAsync(username, entity_load_configuration_1.EntityLoadConfiguration.Minimal); return user != null ? user.id : null; }); } getUserIdsAsync(usernames) { return __awaiter(this, void 0, void 0, function* () { if (usernames == null) return null; if (usernames.length === 0) return []; guard_1.default.arrayNoneNullOrEmptyString(usernames); const theQuery = new query_1.Query({ filter: new filters_1.CompositeQueryFilter({ combineMethod: filters_1.CompositeFilterOperator.And, children: [ new filters_1.DefinitionQueryFilter({ name: constants_1.DEFINITIONS["User"].definitionName, operator: filters_1.ComparisonOperator.Equals, }), new filters_1.PropertyQueryFilter({ operator: filters_1.ComparisonOperator.Equals, dataType: filters_1.FilterDataType.String, property: constants_1.DEFINITIONS["User"].username, values: usernames, }), ], }), }); const result = yield this._client.querying.queryIdsAsync(theQuery); return result.items; }); } getUsernamesToIdsMapAsync(usernames) { return __awaiter(this, void 0, void 0, function* () { guard_1.default.arrayNoneNullOrEmptyString(usernames); const loadConfiguration = new entity_load_configuration_1.EntityLoadConfiguration(culture_load_option_1.CultureLoadOption.None, new property_load_option_1.PropertyLoadOption(constants_1.DEFINITIONS["User"].username)); const users = yield this.getUsersAsync(usernames, loadConfiguration); const userObject = {}; if (users.length) { users.forEach((user) => { const username = user.getPropertyValue(constants_1.DEFINITIONS["User"].username); userObject[username] = user.id; }); } return userObject; }); } getUsernameAsync(id) { return __awaiter(this, void 0, void 0, function* () { guard_1.default.validId(id); const loadConfiguration = new entity_load_configuration_1.EntityLoadConfiguration(culture_load_option_1.CultureLoadOption.None, new property_load_option_1.PropertyLoadOption(constants_1.DEFINITIONS["User"].username), relation_load_option_1.RelationLoadOption.None); const user = yield this.getUserAsync(id, loadConfiguration); if (user) { const username = user.getPropertyValue(constants_1.DEFINITIONS["User"].username); return username; } else { return null; } }); } getUsernamesAsync(ids) { return __awaiter(this, void 0, void 0, function* () { guard_1.default.validIds(ids); const loadConfiguration = new entity_load_configuration_1.EntityLoadConfiguration(culture_load_option_1.CultureLoadOption.None, new property_load_option_1.PropertyLoadOption(constants_1.DEFINITIONS["User"].username), relation_load_option_1.RelationLoadOption.None); const users = yield this.getUsersAsync(ids, loadConfiguration); const usersObject = {}; if (users && users.length) { users.forEach((user) => { const username = user.getPropertyValue(constants_1.DEFINITIONS["User"].username); usersObject[user.id] = username; }); } return usersObject; }); } getUserAsync(param, loadConfiguration) { return __awaiter(this, void 0, void 0, function* () { guard_1.default.notNullOrUndefined(param); if (typeof param === "string") { guard_1.default.stringNotNullOrEmpty(param); const theQuery = new query_1.Query({ filter: new filters_1.CompositeQueryFilter({ combineMethod: filters_1.CompositeFilterOperator.And, children: [ new filters_1.DefinitionQueryFilter({ name: constants_1.DEFINITIONS["User"].definitionName, operator: filters_1.ComparisonOperator.Equals, }), new filters_1.PropertyQueryFilter({ operator: filters_1.ComparisonOperator.Equals, dataType: filters_1.FilterDataType.String, property: constants_1.DEFINITIONS["User"].username, value: param, }), ], }), take: 1, }); const entity = yield this._client.querying.singleAsync(theQuery, loadConfiguration); return entity; } else { const user = yield this._client.entities.getAsync(param, loadConfiguration); return user; } }); } getUsersAsync(param, loadConfiguration) { return __awaiter(this, void 0, void 0, function* () { guard_1.default.notNullOrUndefined(param); if (param.length === 0) { return []; } else if (type_guards_1.TypeGuards.isNumberArray(param)) { guard_1.default.validIds(param); const users = yield this._client.entities.getManyAsync(param, loadConfiguration); return users; } else { guard_1.default.arrayNoneNullOrEmptyString(param); const theQuery = new query_1.Query({ filter: new filters_1.CompositeQueryFilter({ combineMethod: filters_1.CompositeFilterOperator.And, children: [ new filters_1.DefinitionQueryFilter({ name: constants_1.DEFINITIONS["User"].definitionName, operator: filters_1.ComparisonOperator.Equals, }), new filters_1.PropertyQueryFilter({ operator: filters_1.ComparisonOperator.Equals, dataType: filters_1.FilterDataType.String, property: constants_1.DEFINITIONS["User"].username, values: param, }), ], }), }); const entities = yield this._client.querying.queryAsync(theQuery, loadConfiguration); return entities.items; } }); } //#endregion //#region Get user groups getUserGroupIdAsync(groupName) { return __awaiter(this, void 0, void 0, function* () { guard_1.default.stringNotNullOrEmpty(groupName); const group = yield this.getUserGroupAsync(groupName, entity_load_configuration_1.EntityLoadConfiguration.Minimal); return group != null ? group.id : null; }); } getUserGroupIdsAsync(groupNames) { return __awaiter(this, void 0, void 0, function* () { guard_1.default.arrayNoneNullOrEmptyString(groupNames); const loadConfig = new entity_load_configuration_1.EntityLoadConfiguration(culture_load_option_1.CultureLoadOption.None, new property_load_option_1.PropertyLoadOption(constants_1.DEFINITIONS["UserGroup"].groupName), relation_load_option_1.RelationLoadOption.None); const userGroups = yield this.getUserGroupsAsync(groupNames, loadConfig); const userGroupObject = {}; if (userGroups && userGroups.length) { userGroups.forEach((userGroup) => { const groupName = userGroup.getPropertyValue(constants_1.DEFINITIONS["UserGroup"].groupName); userGroupObject[groupName] = userGroup.id; }); } return userGroupObject; }); } getUserGroupNameAsync(id) { return __awaiter(this, void 0, void 0, function* () { guard_1.default.validId(id); const loadConfig = new entity_load_configuration_1.EntityLoadConfiguration(culture_load_option_1.CultureLoadOption.None, new property_load_option_1.PropertyLoadOption(constants_1.DEFINITIONS["UserGroup"].groupName), relation_load_option_1.RelationLoadOption.None); const userGroup = yield this.getUserGroupAsync(id, loadConfig); if (!userGroup) { return null; } const groupName = userGroup.getPropertyValue(constants_1.DEFINITIONS["UserGroup"].groupName); return groupName; }); } getUserGroupNamesAsync(ids) { return __awaiter(this, void 0, void 0, function* () { guard_1.default.validIds(ids); const loadConfig = new entity_load_configuration_1.EntityLoadConfiguration(culture_load_option_1.CultureLoadOption.None, new property_load_option_1.PropertyLoadOption(constants_1.DEFINITIONS["UserGroup"].groupName), relation_load_option_1.RelationLoadOption.None); const userGroups = yield this.getUserGroupsAsync(ids, loadConfig); const userGroupObject = {}; if (userGroups && userGroups.length) { userGroups.forEach((userGroup) => { const groupName = userGroup.getPropertyValue(constants_1.DEFINITIONS["UserGroup"].groupName); userGroupObject[userGroup.id] = groupName; }); } return userGroupObject; }); } getUserGroupAsync(param, loadConfiguration) { return __awaiter(this, void 0, void 0, function* () { guard_1.default.notNullOrUndefined(param); if (typeof param === "string") { guard_1.default.stringNotNullOrEmpty(param); const theQuery = new query_1.Query({ filter: new filters_1.CompositeQueryFilter({ combineMethod: filters_1.CompositeFilterOperator.And, children: [ new filters_1.DefinitionQueryFilter({ name: constants_1.DEFINITIONS["UserGroup"].definitionName, operator: filters_1.ComparisonOperator.Equals, }), new filters_1.PropertyQueryFilter({ operator: filters_1.ComparisonOperator.Equals, dataType: filters_1.FilterDataType.String, property: constants_1.DEFINITIONS["UserGroup"].groupName, value: param, }), ], }), take: 1, }); const entity = yield this._client.querying.singleAsync(theQuery, loadConfiguration); return entity; } else { guard_1.default.validId(param); const userGroup = this._client.entities.getAsync(param, loadConfiguration); return userGroup; } }); } getUserGroupsAsync(param, loadConfiguration) { return __awaiter(this, void 0, void 0, function* () { guard_1.default.notNullOrUndefined(param); if (param.length === 0) { return []; } else if (type_guards_1.TypeGuards.isNumberArray(param)) { guard_1.default.validIds(param); const userGroups = yield this._client.entities.getManyAsync(param, loadConfiguration); return userGroups; } else { guard_1.default.arrayNoneNullOrEmptyString(param); const theQuery = new query_1.Query({ filter: new filters_1.CompositeQueryFilter({ combineMethod: filters_1.CompositeFilterOperator.And, children: [ new filters_1.DefinitionQueryFilter({ name: constants_1.DEFINITIONS["UserGroup"].definitionName, operator: filters_1.ComparisonOperator.Equals, }), new filters_1.PropertyQueryFilter({ operator: filters_1.ComparisonOperator.Equals, dataType: filters_1.FilterDataType.String, property: constants_1.DEFINITIONS["UserGroup"].groupName, values: param, }), ], }), }); const entities = yield this._client.querying.queryAsync(theQuery, loadConfiguration); return entities.items; } }); } //#endregion //#region Password management setPasswordAsync(id, password) { return __awaiter(this, void 0, void 0, function* () { guard_1.default.validId(id); const link = yield this._client.linkHelper.setUserPasswordToLinkAsync(id); const content = new set_password_request_resource_1.default(password); const response = yield this._client.raw.postAsync(link.href, content); response_handler_1.ResponseHandler.handleErrors(response); }); } resetPasswordAsync(id) { return __awaiter(this, void 0, void 0, function* () { guard_1.default.validId(id); const link = yield this._client.linkHelper.resetPasswordToLinkAsync(id); const response = yield this._client.raw.postAsync(link.href); response_handler_1.ResponseHandler.handleErrors(response); }); } } exports.UsersClient = UsersClient; //# sourceMappingURL=users-client.js.map