@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
JavaScript
;
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