UNPKG

kentico-cloud-delivery

Version:

Official Kentico Cloud Delivery SDK

89 lines 3.96 kB
"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; }; /** * 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