Skip to content

Commit fe4177a

Browse files
committed
Revert "Merge pull request #87 from uriyyo/bugfix/default-page-number"
This reverts commit 819fef6, reversing changes made to 806f625.
1 parent 87e7ad1 commit fe4177a

File tree

5 files changed

+19
-19
lines changed

5 files changed

+19
-19
lines changed

fastapi_pagination/default.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,13 @@
1212

1313

1414
class Params(BaseModel, AbstractParams):
15-
page: int = Query(1, gt=0, description="Page number")
15+
page: int = Query(0, ge=0, description="Page number")
1616
size: int = Query(50, gt=0, le=100, description="Page size")
1717

1818
def to_raw_params(self) -> RawParams:
1919
return RawParams(
2020
limit=self.size,
21-
offset=self.size * (self.page - 1),
21+
offset=self.size * self.page,
2222
)
2323

2424

fastapi_pagination/links/default.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,10 @@ def __root_validator__(cls, value: Any) -> Any:
2020
page, size, total = [value[k] for k in ("page", "size", "total")]
2121

2222
value["links"] = create_links(
23-
first={"page": 1},
24-
last={"page": ceil(total / size) + 1},
25-
next={"page": page + 1} if page * size < total else None,
26-
prev={"page": page - 1} if 1 <= page - 1 else None,
23+
first={"page": 0},
24+
last={"page": ceil(total / size)},
25+
next={"page": page + 1} if (page + 1) * size < total else None,
26+
prev={"page": page - 1} if 0 <= page - 1 else None,
2727
)
2828

2929
return value

tests/base.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@ class Config:
2020

2121

2222
_default_params = [
23-
*[Params(page=i) for i in range(1, 10)],
23+
*[Params(page=i) for i in range(10)],
2424
*[Params(size=i) for i in range(1, 100, 10)],
25-
*[Params(page=i, size=j) for i in range(1, 10) for j in range(1, 50, 10)],
25+
*[Params(page=i, size=j) for i in range(10) for j in range(1, 50, 10)],
2626
]
2727
_limit_offset_params = [
2828
*[LimitOffsetParams(offset=i) for i in range(10)],

tests/test_bases.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,10 @@ def test_custom_page_invalid_values():
3535
)
3636
def test_custom_page(cls):
3737
page_cls = cls.with_custom_options()
38-
assert page_cls.__params_type__().dict() == {"size": 50, "page": 1}
38+
assert page_cls.__params_type__().dict() == {"size": 50, "page": 0}
3939

4040
page_cls = cls.with_custom_options(size=100)
41-
assert page_cls.__params_type__().dict() == {"size": 100, "page": 1}
41+
assert page_cls.__params_type__().dict() == {"size": 100, "page": 0}
4242

4343
page_cls = cls.with_custom_options(size=100, page=100)
4444
assert page_cls.__params_type__().dict() == {"size": 100, "page": 100}

tests/test_links.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -24,23 +24,23 @@ async def route():
2424
(
2525
"/default",
2626
None,
27-
"/default?page=2",
2827
"/default?page=1",
29-
"/default?page=5",
28+
"/default?page=0",
29+
"/default?page=4",
3030
),
3131
(
32-
"/default?page=2",
33-
"/default?page=1",
34-
"/default?page=3",
3532
"/default?page=1",
36-
"/default?page=5",
33+
"/default?page=0",
34+
"/default?page=2",
35+
"/default?page=0",
36+
"/default?page=4",
3737
),
3838
(
39-
"/default?page=5",
4039
"/default?page=4",
40+
"/default?page=3",
4141
None,
42-
"/default?page=1",
43-
"/default?page=5",
42+
"/default?page=0",
43+
"/default?page=4",
4444
),
4545
(
4646
"/limit-offset",

0 commit comments

Comments
 (0)