|
9 | 9 | from collections.abc import Sequence |
10 | 10 | from typing import Any, ClassVar, Generic, TypeAlias, TypeVar |
11 | 11 |
|
12 | | -from fastapi_pagination.limit_offset import LimitOffsetParams |
13 | | -from fastapi_pagination.links.limit_offset import ( |
14 | | - LimitOffsetPage as _FastApiLimitOffsetPage, |
15 | | -) |
| 12 | +from fastapi_pagination.customization import CustomizedPage, UseParamsFields |
| 13 | +from fastapi_pagination.limit_offset import LimitOffsetPage as _LimitOffsetPage |
| 14 | +from fastapi_pagination.limit_offset import LimitOffsetParams as _LimitOffsetParams |
16 | 15 | from models_library.rest_pagination import ( |
17 | 16 | DEFAULT_NUMBER_OF_ITEMS_PER_PAGE, |
18 | 17 | MAXIMUM_NUMBER_OF_ITEMS_PER_PAGE, |
|
23 | 22 |
|
24 | 23 | T = TypeVar("T") |
25 | 24 |
|
26 | | -# NOTE: same pagination limits and defaults as web-server |
27 | | -Page = _FastApiLimitOffsetPage.with_custom_options( |
28 | | - limit=Field( |
29 | | - DEFAULT_NUMBER_OF_ITEMS_PER_PAGE, ge=1, le=MAXIMUM_NUMBER_OF_ITEMS_PER_PAGE |
30 | | - ) |
31 | | -) |
| 25 | + |
| 26 | +# NOTE: same pagination limits and defaults as web-server, |
| 27 | +# otherwise it is more difficult to sync |
| 28 | +Page = CustomizedPage[ |
| 29 | + _LimitOffsetPage[T], |
| 30 | + UseParamsFields( |
| 31 | + limit=Field( |
| 32 | + DEFAULT_NUMBER_OF_ITEMS_PER_PAGE, ge=1, le=MAXIMUM_NUMBER_OF_ITEMS_PER_PAGE |
| 33 | + ) |
| 34 | + ), |
| 35 | +] |
32 | 36 | # NOTE: Renamed to make shorter clients name models |
33 | 37 | Page.__name__ = "Page" |
34 | 38 |
|
35 | | -PaginationParams: TypeAlias = LimitOffsetParams |
| 39 | +PaginationParams: TypeAlias = _LimitOffsetParams |
36 | 40 |
|
37 | 41 |
|
38 | 42 | class OnePage(GenericModel, Generic[T]): |
|
0 commit comments