@sap-cloud-sdk/odata-common
Version:
SAP Cloud SDK for JavaScript common functions of OData client generator and OpenAPI clint generator.
43 lines (42 loc) • 2.22 kB
TypeScript
import { OrderLink } from '../order';
import { FilterLink } from '../filter';
import { Link } from './link';
import type { EntityBase } from '../entity-base';
import type { Order, Orderable } from '../order';
import type { Filterable } from '../filter';
import type { DeSerializers } from '../de-serializers';
import type { EntityApi, EntityType } from '../entity-api';
/**
* Represents a link from one entity to one other linked entity (as opposed to a list of linked entities). In OData v2 a `OneToOneLink` can be used to filter and order a selection on an entity based on filters and orders on a linked entity.
* @typeParam EntityT - Type of the entity to be linked from
* @typeParam LinkedEntityT - Type of the entity to be linked to.
*/
export declare class OneToOneLink<EntityT extends EntityBase, DeSerializersT extends DeSerializers, LinkedEntityApiT extends EntityApi<EntityBase, DeSerializersT>> extends Link<EntityT, DeSerializersT, LinkedEntityApiT> {
/**
* List of criteria of the linked entity to order the given entity by with descending priority.
*/
orderBys: Order<EntityType<LinkedEntityApiT>>[];
/**
* Filterables to apply to the given entity based on the linked entity.
*/
filters: Filterable<EntityType<LinkedEntityApiT>, DeSerializersT>;
clone(): this;
/**
* Create order statements for the OData request based on the linked entity. The given statements have descending priority.
* @example
* ```
* Entity.requestBuilder()
* .getAll()
* .orderBy(Entity.TO_LINKED_ENTITY.orderBy(asc(LinkedEntity.PROPERTY1), desc(LinkedEntity.PROPERTY2)));
* ```
* @param orderBy - Criteria to order by.
* @returns Newly created order link.
*/
orderBy(...orderBy: Orderable<EntityType<LinkedEntityApiT>>[]): OrderLink<EntityT, LinkedEntityApiT>;
/**
* Create filter statements to be applied to the OData request based on the linked entity values.
* @param filters - Filters based on the linked entity.
* @returns Newly created {@link FilterLink}.
*/
filter(...filters: Filterable<EntityType<LinkedEntityApiT>, DeSerializersT>[]): FilterLink<EntityT, DeSerializersT, LinkedEntityApiT>;
}