@sap-cloud-sdk/odata-common
Version:
SAP Cloud SDK for JavaScript common functions of OData client generator and OpenAPI clint generator.
50 lines (49 loc) • 2.52 kB
TypeScript
import { FilterLink } from '../filter/filter-link';
import { Link } from './link';
import type { EntityBase } from '../entity-base';
import type { Orderable } from '../order';
import type { Filterable } from '../filter';
import type { DeSerializers } from '../de-serializers';
import type { EntityApi, EntityType } from '../entity-api';
/**
* @param filters - filters
* @returns filtered list
* @internal
*/
export declare function toFilterableList<EntityT extends EntityBase, DeSerializersT extends DeSerializers, LinkedEntityApiT extends EntityApi<EntityBase, DeSerializersT>>(filters: Filterable<EntityT, DeSerializersT, LinkedEntityApiT>[]): Filterable<EntityT, DeSerializersT, LinkedEntityApiT>[];
/**
* Represents a one to many relation for OData v4 entities.
* For OData v2 entities the {@link Link} is used to represent one to many relation.
* See {@link Link} for more information.
*/
export declare class OneToManyLink<EntityT extends EntityBase, DeSerializersT extends DeSerializers, LinkedEntityApiT extends EntityApi<EntityBase, DeSerializersT>> extends Link<EntityT, DeSerializersT, LinkedEntityApiT> {
_filters: FilterLink<EntityT, DeSerializersT, LinkedEntityApiT>;
_orderBy: Orderable<EntityType<LinkedEntityApiT>>[];
_top: number;
_skip: number;
clone(): this;
/**
* Create filter statements to be applied to the OData request based on the linked entity values.
* @param expressions - Filters based on the linked entity.
* @returns Newly created `FilterLink`.
*/
filter(...expressions: (Filterable<EntityType<LinkedEntityApiT>, DeSerializersT> | OneToManyLink<EntityType<LinkedEntityApiT>, DeSerializersT, EntityApi<EntityBase, DeSerializersT>>)[]): this;
/**
* Add order-by statements to the request.
* @param orderBy - OrderBy statements to order the response by.
* @returns The request builder itself, to facilitate method chaining.
*/
orderBy(...orderBy: Orderable<EntityType<LinkedEntityApiT>>[]): this;
/**
* Number of returned entities.
* @param top - Maximum number of entities to return in the response. Can be less, if less entities match the request.
* @returns The request builder itself, to facilitate method chaining.
*/
top(top: number): this;
/**
* Skip number of entities.
* @param skip - Number of matching entities to skip. Useful for paging.
* @returns The request builder itself, to facilitate method chaining.
*/
skip(skip: number): this;
}