@sitecore/sc-contenthub-webclient-sdk
Version:
Sitecore Content Hub WebClient SDK.
91 lines • 5.12 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());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.OptionListClient = void 0;
const ta_json_1 = require("ta-json");
const urijs_1 = __importDefault(require("urijs"));
const guard_1 = __importDefault(require("../guard"));
const option_list_mapper_1 = require("../mappers/option-list-mapper");
const option_list_collection_resource_1 = __importDefault(require("../models/option-lists/option-list-collection-resource"));
const option_list_resource_1 = __importDefault(require("../models/option-lists/option-list-resource"));
const response_handler_1 = require("./response-handler");
class OptionListClient {
constructor(client) {
this._client = client;
this._mapper = new option_list_mapper_1.OptionListMapper(client);
}
getAllNamesAsync(cancelCallback) {
return __awaiter(this, void 0, void 0, function* () {
const link = yield this._client.linkHelper.dataSourcesLinkAsync();
const response = yield this._client.raw.getAsync(link.href, undefined, cancelCallback);
const resource = ta_json_1.TaJson.deserialize(response.content, option_list_collection_resource_1.default);
const names = resource.items.map(item => item.name);
return names;
});
}
getAllDescriptionsAsync(cancelCallback) {
return __awaiter(this, void 0, void 0, function* () {
const link = yield this._client.linkHelper.dataSourcesLinkAsync();
const response = yield this._client.raw.getAsync(link.href, undefined, cancelCallback);
const resource = ta_json_1.TaJson.deserialize(response.content, option_list_collection_resource_1.default);
return resource.items;
});
}
getAsync(name, cancelCallback, cacheSignature) {
return __awaiter(this, void 0, void 0, function* () {
guard_1.default.stringNotNullOrEmpty(name);
const link = yield this._client.linkHelper.dataSourceToLinkAsync(name);
const uri = new urijs_1.default(link.href);
if (!uri.hasQuery("after") && cacheSignature) {
uri.addQuery("after", cacheSignature);
link.href = uri.toString();
}
const response = yield this._client.raw.getAsync(link.href, undefined, cancelCallback);
if (response.statusCode === 404) {
return null;
}
response_handler_1.ResponseHandler.handleErrors(response);
const resource = ta_json_1.TaJson.deserialize(response.content, option_list_resource_1.default);
return this._mapper.mapOptionListAsync(resource);
});
}
createAsync(optionList, cancelCallback) {
return __awaiter(this, void 0, void 0, function* () {
guard_1.default.notNull(optionList, "optionList");
const resource = this._mapper.map(optionList);
const link = yield this._client.linkHelper.dataSourcesLinkAsync();
const response = yield this._client.raw.postAsync(link.href, ta_json_1.TaJson.serialize(resource), undefined, cancelCallback);
response_handler_1.ResponseHandler.handleErrors(response);
});
}
updateAsync(optionList, cancelCallback) {
return __awaiter(this, void 0, void 0, function* () {
guard_1.default.notNull(optionList, "optionList");
const resource = this._mapper.map(optionList);
const link = yield this._client.linkHelper.dataSourceToLinkAsync(optionList.name);
const response = yield this._client.raw.putAsync(link.href, ta_json_1.TaJson.serialize(resource), undefined, cancelCallback);
response_handler_1.ResponseHandler.handleErrors(response);
});
}
deleteAsync(name, cancelCallback) {
return __awaiter(this, void 0, void 0, function* () {
guard_1.default.stringNotNullOrEmpty(name);
const link = yield this._client.linkHelper.dataSourceToLinkAsync(name);
const response = yield this._client.raw.deleteAsync(link.href, undefined, cancelCallback);
response_handler_1.ResponseHandler.handleErrors(response);
});
}
}
exports.OptionListClient = OptionListClient;
//# sourceMappingURL=option-list-client.js.map