@kontent-ai/delivery-sdk
Version:
Official Kontent.AI Delivery API SDK
56 lines • 2.06 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.BaseListingQuery = void 0;
const models_1 = require("../../models");
const base_query_class_1 = require("./base-query.class");
class BaseListingQuery extends base_query_class_1.BaseQuery {
constructor(config, queryService) {
super(config, queryService);
this.config = config;
this.queryService = queryService;
}
/**
* Sets continuation token header
*/
withContinuationToken(token) {
var _a;
// remove previous continuation token if there is any
let queryHeaders = (_a = this._queryConfig.customHeaders) !== null && _a !== void 0 ? _a : [];
queryHeaders = queryHeaders.filter((m) => m.header !== models_1.continuationTokenHeaderName);
this._queryConfig.customHeaders = queryHeaders;
this.withHeaders([
{
header: models_1.continuationTokenHeaderName,
value: token
}
]);
return this;
}
/**
* Query to get all items. Uses paging data and may execute multiple HTTP requests depending on number of items
*/
toAllPromise(queryAllConfig) {
return this.queryService.getListAllResponse({
page: 1,
listQueryConfig: queryAllConfig,
allResponseFactory: (items, responses) => {
const response = this.allResponseFactory(items, responses);
return {
data: response,
responses: responses
};
},
getResponse: (nextPageUrl, continuationToken) => {
if (nextPageUrl) {
this.withCustomUrl(nextPageUrl);
}
if (continuationToken) {
this.withContinuationToken(continuationToken);
}
return this.toPromise();
}
});
}
}
exports.BaseListingQuery = BaseListingQuery;
//# sourceMappingURL=base-listing-query.class.js.map