UNPKG

@sap-cloud-sdk/odata-common

Version:

SAP Cloud SDK for JavaScript common functions of OData client generator and OpenAPI clint generator.

38 lines 1.65 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ODataCountRequestConfig = void 0; const util_1 = require("@sap-cloud-sdk/util"); const odata_request_config_1 = require("./odata-request-config"); const logger = (0, util_1.createLogger)({ package: 'odata-common', messageContext: 'count-request-config' }); /** * OData count request configuration for an entity type. * @typeParam EntityT - Type of the entity to setup a request for */ class ODataCountRequestConfig extends odata_request_config_1.ODataRequestConfig { /** * Creates an instance of ODataGetAllRequestConfig. * @param getAllRequest - Get all request builder to count result for. */ constructor(getAllRequest) { super('get', getAllRequest._entityApi.entityConstructor._defaultBasePath); this.getAllRequest = getAllRequest; } resourcePath() { return `${(0, util_1.removeTrailingSlashes)(this.getAllRequest._entityApi.entityConstructor._entityName)}/$count`; } queryParameters() { const parametersAllowedInCount = ['$apply', '$search', '$filter']; const parameters = this.getAllRequest.requestConfig.queryParameters(); Object.keys(parameters).forEach(key => { if (!parametersAllowedInCount.includes(key)) { logger.warn(`The query parameter ${key} must not be used in a count request and has been ignored.`); } }); return (0, util_1.pick)(parametersAllowedInCount, parameters); } } exports.ODataCountRequestConfig = ODataCountRequestConfig; //# sourceMappingURL=odata-count-request-config.js.map