UNPKG

@sitecore/sc-contenthub-webclient-sdk

Version:

Sitecore Content Hub WebClient SDK.

139 lines 6.72 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.SettingsClient = void 0; const response_handler_1 = require("../clients/response-handler"); const constants_1 = require("../constants"); const filters_1 = require("../contracts/querying/filters"); const query_1 = require("../contracts/querying/query"); const invalid_operation_error_1 = require("../errors/invalid-operation-error"); const guard_1 = __importDefault(require("../guard")); class SettingsClient { constructor(client) { guard_1.default.notNull(client); this._client = client; } getCategoryIdAsync(name) { return __awaiter(this, void 0, void 0, function* () { guard_1.default.stringNotNullOrEmpty(name); // Build query const query = new query_1.Query(); query.filter = new filters_1.CompositeQueryFilter({ combineMethod: filters_1.CompositeFilterOperator.And, children: [ new filters_1.DefinitionQueryFilter({ name: constants_1.DEFINITIONS["SettingsCategory"].definitionName, operator: filters_1.ComparisonOperator.Equals, }), new filters_1.PropertyQueryFilter({ operator: filters_1.ComparisonOperator.Contains, dataType: filters_1.FilterDataType.String, property: constants_1.DEFINITIONS["SettingsCategory"].name, value: name, }), ], }); // Get the category const result = yield this._client.querying.queryIdsAsync(query); let id = null; if (!result.items || !result.items.length) { return null; } else if (result.items.length === 1) { id = result.items[0]; return id; } else { throw new invalid_operation_error_1.InvalidOperationError("Can't have more than one result, must be unique"); } }); } getSettingAsync(category_1, name_1) { return __awaiter(this, arguments, void 0, function* (category, name, loadConfiguration = null) { var _a; guard_1.default.stringNotNullOrEmpty(category); guard_1.default.stringNotNullOrEmpty(name); // Get the category id const categoryId = yield this.getCategoryIdAsync(category); if (categoryId == null) { return null; } // Build query const query = new query_1.Query(); query.filter = new filters_1.CompositeQueryFilter({ combineMethod: filters_1.CompositeFilterOperator.And, children: [ new filters_1.DefinitionQueryFilter({ name: constants_1.DEFINITIONS["Setting"].definitionName, operator: filters_1.ComparisonOperator.Equals, }), new filters_1.PropertyQueryFilter({ operator: filters_1.ComparisonOperator.Contains, dataType: filters_1.FilterDataType.String, property: constants_1.DEFINITIONS["Setting"].name, value: name, }), new filters_1.RelationQueryFilter({ relation: constants_1.DEFINITIONS["Setting"].settingCategoryToSettings, parentId: categoryId, }), ], }); // Get the setting const result = yield this._client.querying.queryAsync(query, loadConfiguration); return (_a = result.items[0]) !== null && _a !== void 0 ? _a : null; }); } getSettingValueAndSchemaAsync(category, name) { return __awaiter(this, void 0, void 0, function* () { guard_1.default.stringNotNullOrEmpty(category); guard_1.default.stringNotNullOrEmpty(name); const link = yield this._client.linkHelper.settingByNameLink(category, name); // Get the setting const result = yield this._client.raw.getAsync(link.href); response_handler_1.ResponseHandler.handleErrors(result); return result.content; }); } getSettingsForCategoryAsync(category_1) { return __awaiter(this, arguments, void 0, function* (category, loadConfiguration = null) { guard_1.default.stringNotNullOrEmpty(category); // Get the category id const categoryId = yield this.getCategoryIdAsync(category); if (categoryId == null) { throw new invalid_operation_error_1.InvalidOperationError("categoryId was not found"); } // Build query const query = new query_1.Query(); query.filter = new filters_1.CompositeQueryFilter({ combineMethod: filters_1.CompositeFilterOperator.And, children: [ new filters_1.DefinitionQueryFilter({ name: constants_1.DEFINITIONS["Setting"].definitionName, operator: filters_1.ComparisonOperator.Equals, }), new filters_1.RelationQueryFilter({ relation: constants_1.DEFINITIONS["Setting"].settingCategoryToSettings, parentId: categoryId, }), ], }); // Get the settings const result = yield this._client.querying.queryAsync(query, loadConfiguration); return result.items; }); } } exports.SettingsClient = SettingsClient; //# sourceMappingURL=settings-client.js.map