kentico-cloud-delivery
Version:
Official Kentico Cloud Delivery SDK
122 lines • 5.35 kB
JavaScript
exports.__esModule = true;
var models_1 = require("../models");
var element_mapper_1 = require("./element.mapper");
var item_mapper_1 = require("./item.mapper");
var taxonomy_mapper_1 = require("./taxonomy.mapper");
var type_mapper_1 = require("./type.mapper");
var ResponseMapper = /** @class */ (function () {
function ResponseMapper(config, richTextHtmlParser) {
this.config = config;
this.richTextHtmlParser = richTextHtmlParser;
this.typeMapper = new type_mapper_1.TypeMapper();
this.itemMapper = new item_mapper_1.ItemMapper(config, richTextHtmlParser);
this.taxonomyMapper = new taxonomy_mapper_1.TaxonomyMapper();
this.elementMapper = new element_mapper_1.ElementMapper();
}
/**
* Gets response for getting a single type
* @param response Response data
*/
ResponseMapper.prototype.mapSingleTypeResponse = function (response) {
var cloudResponse = response.data;
// map type
var type = this.typeMapper.mapSingleType(cloudResponse);
return new models_1.TypeResponses.DeliveryTypeResponse(type, this.mapResponseDebug(response));
};
/**
* Gets resposne for getting multiple types
* @param response Response data
* @param options Options
*/
ResponseMapper.prototype.mapMultipleTypeResponse = function (response) {
var cloudResponse = response.data;
// map types
var types = this.typeMapper.mapMultipleTypes(cloudResponse);
// pagination
var pagination = new models_1.Pagination({
skip: cloudResponse.pagination.skip,
count: cloudResponse.pagination.count,
limit: cloudResponse.pagination.limit,
next_page: cloudResponse.pagination.next_page
});
return new models_1.TypeResponses.DeliveryTypeListingResponse(types, pagination, this.mapResponseDebug(response));
};
/**
* Gets response for getting single item
* @param response Response data
* @param queryConfig Query configuration
*/
ResponseMapper.prototype.mapSingleResponse = function (response, queryConfig) {
var cloudResponse = response.data;
// map item
var item = this.itemMapper.mapSingleItem(cloudResponse, queryConfig);
return new models_1.ItemResponses.DeliveryItemResponse(item, this.mapResponseDebug(response));
};
/**
* Gets response for getting multiple items
* @param response Response data
* @param queryConfig Query configuration
*/
ResponseMapper.prototype.mapMultipleResponse = function (response, queryConfig) {
var cloudResponse = response.data;
// map items
var items = this.itemMapper.mapMultipleItems(cloudResponse, queryConfig);
// pagination
var pagination = new models_1.Pagination({
skip: cloudResponse.pagination.skip,
count: cloudResponse.pagination.count,
limit: cloudResponse.pagination.limit,
next_page: cloudResponse.pagination.next_page
});
return new models_1.ItemResponses.DeliveryItemListingResponse(items, pagination, this.mapResponseDebug(response));
};
/**
* Gets response for getting single taxonomy item
* @param response Response data
*/
ResponseMapper.prototype.mapTaxonomyResponse = function (response) {
var cloudResponse = response.data;
// map taxonomy
var taxonomy = this.taxonomyMapper.mapTaxonomy(cloudResponse.system, cloudResponse.terms);
return new models_1.TaxonomyResponses.TaxonomyResponse(taxonomy, this.mapResponseDebug(response));
};
/**
* Gets response for getting multiples taxonomies
* @param response Response data
*/
ResponseMapper.prototype.mapTaxonomiesResponse = function (response) {
var cloudResponse = response.data;
// map taxonomies
var taxonomies = this.taxonomyMapper.mapTaxonomies(cloudResponse.taxonomies);
// pagination
var pagination = new models_1.Pagination({
skip: cloudResponse.pagination.skip,
count: cloudResponse.pagination.count,
limit: cloudResponse.pagination.limit,
next_page: cloudResponse.pagination.next_page
});
return new models_1.TaxonomyResponses.TaxonomiesResponse(taxonomies, pagination, this.mapResponseDebug(response));
};
/**
* Gets response for getting single content type element
* @param response Response data
*/
ResponseMapper.prototype.mapElementResponse = function (response) {
var cloudResponse = response.data;
// map element
var element = this.elementMapper.mapElement(cloudResponse);
return new models_1.ElementResponses.ElementResponse(element, this.mapResponseDebug(response));
};
ResponseMapper.prototype.mapResponseDebug = function (response) {
if (!response) {
throw Error("Cannot map 'debug' model from the response");
}
return {
response: response.response
};
};
return ResponseMapper;
}());
exports.ResponseMapper = ResponseMapper;
//# sourceMappingURL=response.mapper.js.map
;