@sitecore/sc-contenthub-webclient-sdk
Version:
Sitecore Content Hub WebClient SDK.
132 lines • 6.09 kB
JavaScript
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());
});
};
import { ResponseHandler } from "../clients/response-handler";
import { DEFINITIONS } from "../constants";
import { ComparisonOperator, CompositeFilterOperator, CompositeQueryFilter, DefinitionQueryFilter, FilterDataType, PropertyQueryFilter, RelationQueryFilter, } from "../contracts/querying/filters";
import { Query } from "../contracts/querying/query";
import { InvalidOperationError } from "../errors/invalid-operation-error";
import Guard from "../guard";
export class SettingsClient {
constructor(client) {
Guard.notNull(client);
this._client = client;
}
getCategoryIdAsync(name) {
return __awaiter(this, void 0, void 0, function* () {
Guard.stringNotNullOrEmpty(name);
// Build query
const query = new Query();
query.filter = new CompositeQueryFilter({
combineMethod: CompositeFilterOperator.And,
children: [
new DefinitionQueryFilter({
name: DEFINITIONS["SettingsCategory"].definitionName,
operator: ComparisonOperator.Equals,
}),
new PropertyQueryFilter({
operator: ComparisonOperator.Contains,
dataType: FilterDataType.String,
property: 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 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.stringNotNullOrEmpty(category);
Guard.stringNotNullOrEmpty(name);
// Get the category id
const categoryId = yield this.getCategoryIdAsync(category);
if (categoryId == null) {
return null;
}
// Build query
const query = new Query();
query.filter = new CompositeQueryFilter({
combineMethod: CompositeFilterOperator.And,
children: [
new DefinitionQueryFilter({
name: DEFINITIONS["Setting"].definitionName,
operator: ComparisonOperator.Equals,
}),
new PropertyQueryFilter({
operator: ComparisonOperator.Contains,
dataType: FilterDataType.String,
property: DEFINITIONS["Setting"].name,
value: name,
}),
new RelationQueryFilter({
relation: 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.stringNotNullOrEmpty(category);
Guard.stringNotNullOrEmpty(name);
const link = yield this._client.linkHelper.settingByNameLink(category, name);
// Get the setting
const result = yield this._client.raw.getAsync(link.href);
ResponseHandler.handleErrors(result);
return result.content;
});
}
getSettingsForCategoryAsync(category_1) {
return __awaiter(this, arguments, void 0, function* (category, loadConfiguration = null) {
Guard.stringNotNullOrEmpty(category);
// Get the category id
const categoryId = yield this.getCategoryIdAsync(category);
if (categoryId == null) {
throw new InvalidOperationError("categoryId was not found");
}
// Build query
const query = new Query();
query.filter = new CompositeQueryFilter({
combineMethod: CompositeFilterOperator.And,
children: [
new DefinitionQueryFilter({
name: DEFINITIONS["Setting"].definitionName,
operator: ComparisonOperator.Equals,
}),
new RelationQueryFilter({
relation: DEFINITIONS["Setting"].settingCategoryToSettings,
parentId: categoryId,
}),
],
});
// Get the settings
const result = yield this._client.querying.queryAsync(query, loadConfiguration);
return result.items;
});
}
}
//# sourceMappingURL=settings-client.js.map