Skip to main content

Module odata

Module odata 

Source
Expand description

OData integration for SeaORM with security-scoped pagination.

This module provides SeaORM-specific adapters for OData queries:

  • OData filter compilation to SeaORM conditions (legacy FieldMap and new FilterNode)
  • Cursor-based pagination with OData ordering
  • Security-scoped pagination via OPager builder

§Filter DSL

The core filter types (FilterField, FilterNode, FilterOp, FieldKind) are defined in modkit-odata as part of the OData protocol contract. Import them from:

use modkit_odata::filter::{FilterField, FilterNode, FilterOp, FieldKind};

§Modules

  • core: Core OData to SeaORM translation (filters, cursors, ordering) - legacy FieldMap based
  • sea_orm_filter: Type-safe mapping from FilterNode<F> to SeaORM conditions
  • pager: Fluent builder for secure + OData pagination

Re-exports§

pub use sea_orm_filter::FieldToColumn;
pub use sea_orm_filter::LimitCfg;
pub use sea_orm_filter::ODataFieldMapping;
pub use sea_orm_filter::encode_cursor_value;
pub use sea_orm_filter::filter_node_to_condition;
pub use sea_orm_filter::paginate_odata;
pub use sea_orm_filter::parse_cursor_value;

Modules§

pager
Minimal fluent builder for combining Secure ORM scoping with OData pagination.
sea_orm_filter
Generic mapping from type-safe FilterNode to SeaORM Conditions.

Structs§

Field
FieldMap
Page
PageInfo

Enums§

ODataBuildError

Traits§

CursorApplyExt
Extension trait for applying cursor-based pagination
ODataExt
Apply an optional OData filter (via wrapper) to a plain SeaORM Select.
ODataOrderExt
Extension trait for applying ordering (legacy version with ODataBuildError)
ODataOrderPageExt
Extension trait for applying ordering with centralized error handling
ODataQueryExt
Extension trait for applying full OData query (filter + cursor + order)

Functions§

build_cursor_for_model
Build a cursor from a model using the effective order and field map extractors.
build_cursor_predicate
Build a cursor predicate for pagination. This builds the lexicographic OR-chain condition for cursor-based pagination.
ensure_tiebreaker
Ensure a tiebreaker field is present in the order
expr_to_condition
Convert an OData filter expression AST to a SeaORM Condition.
paginate_with_odata
One-shot pagination combiner that handles filter → cursor predicate → order → overfetch/trim → build cursors.

Type Aliases§

ODataBuildResult