kentico-cloud-delivery
Version:
Official Kentico Cloud Delivery SDK
96 lines • 4.17 kB
JavaScript
"use strict";
var __extends = (this && this.__extends) || (function () {
var 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 function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
exports.__esModule = true;
var models_1 = require("../../models");
var base_query_class_1 = require("../common/base-query.class");
var BaseItemQuery = /** @class */ (function (_super) {
__extends(BaseItemQuery, _super);
function BaseItemQuery(config, queryService) {
var _this = _super.call(this, config, queryService) || this;
_this.config = config;
_this.queryService = queryService;
_this._queryConfig = {};
return _this;
}
/**
* Used to configure query
* @param queryConfig Query configuration
*/
BaseItemQuery.prototype.queryConfig = function (queryConfig) {
this._queryConfig = queryConfig;
return this;
};
/**
* Gets headers used by this query
*/
BaseItemQuery.prototype.getHeaders = function () {
return this.queryService.getHeaders(this._queryConfig);
};
// shared parameters
/**
* Language codename
* @param languageCodename Codename of the language
*/
BaseItemQuery.prototype.languageParameter = function (languageCodename) {
this.parameters.push(new models_1.Parameters.LanguageParameter(languageCodename));
return this;
};
/**
* Used to limit the number of elements returned by query.
* @param elementCodenames Array of element codenames to fetch
*/
BaseItemQuery.prototype.elementsParameter = function (elementCodenames) {
this.parameters.push(new models_1.Parameters.ElementsParameter(elementCodenames));
return this;
};
/**
* Indicates how deep nested modular content items are resolved.
* @param depth Depth of the query (> 0)
*/
BaseItemQuery.prototype.depthParameter = function (depth) {
this.parameters.push(new models_1.Parameters.DepthParameter(depth));
return this;
};
BaseItemQuery.prototype.getMultipleItemsQueryUrl = function () {
var action = '/items';
// add default language is necessry
this.processDefaultLanguageParameter();
return _super.prototype.resolveUrlInternal.call(this, action);
};
BaseItemQuery.prototype.getSingleItemQueryUrl = function (codename) {
var action = '/items/' + codename;
// add default language is necessry
this.processDefaultLanguageParameter();
return _super.prototype.resolveUrlInternal.call(this, action);
};
BaseItemQuery.prototype.runMultipleItemsQuery = function () {
var url = this.getMultipleItemsQueryUrl();
return this.queryService.getMultipleItems(url, this._queryConfig);
};
BaseItemQuery.prototype.runSingleItemQuery = function (codename) {
var url = this.getSingleItemQueryUrl(codename);
return this.queryService.getSingleItem(url, this._queryConfig);
};
BaseItemQuery.prototype.processDefaultLanguageParameter = function () {
// add default language if none is specified && default language is specified globally
if (this.config.defaultLanguage) {
var languageParameter = this.getParameters().find(function (m) { return m.getParam() === 'language'; });
if (!languageParameter) {
// language parameter was not specified in query, use globally defined language
this.parameters.push(new models_1.Parameters.LanguageParameter(this.config.defaultLanguage));
}
}
};
return BaseItemQuery;
}(base_query_class_1.BaseQuery));
exports.BaseItemQuery = BaseItemQuery;
//# sourceMappingURL=base-item-query.class.js.map