Skip to content

Commit ee72c2f

Browse files
stainless-app[bot]stainless-bot
authored andcommitted
feat: update via SDK Studio (#104)
1 parent 994ce19 commit ee72c2f

File tree

1 file changed

+55
-0
lines changed

1 file changed

+55
-0
lines changed

src/cloudflare/pagination.py

+55
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@
1414
"V4PagePaginationArrayResultInfo",
1515
"SyncV4PagePaginationArray",
1616
"AsyncV4PagePaginationArray",
17+
"CursorPaginationResultInfo",
18+
"SyncCursorPagination",
19+
"AsyncCursorPagination",
1720
]
1821

1922
_T = TypeVar("_T")
@@ -137,3 +140,55 @@ def next_page_info(self) -> Optional[PageInfo]:
137140
return None
138141

139142
return PageInfo(params={"page": current_page + 1})
143+
144+
145+
class CursorPaginationResultInfo(BaseModel):
146+
count: Optional[int] = None
147+
148+
cursor: Optional[str] = None
149+
150+
per_page: Optional[int] = None
151+
152+
153+
class SyncCursorPagination(BaseSyncPage[_T], BasePage[_T], Generic[_T]):
154+
result: Optional[object] = None
155+
result_info: Optional[CursorPaginationResultInfo] = None
156+
157+
@override
158+
def _get_page_items(self) -> List[_T]:
159+
data = self.data
160+
if not data:
161+
return []
162+
return data
163+
164+
@override
165+
def next_page_info(self) -> Optional[PageInfo]:
166+
cursor = None
167+
if self.result_info is not None:
168+
cursor = self.result_info.cursor
169+
if not cursor:
170+
return None
171+
172+
return PageInfo(params={"cursor": cursor})
173+
174+
175+
class AsyncCursorPagination(BaseAsyncPage[_T], BasePage[_T], Generic[_T]):
176+
result: Optional[object] = None
177+
result_info: Optional[CursorPaginationResultInfo] = None
178+
179+
@override
180+
def _get_page_items(self) -> List[_T]:
181+
data = self.data
182+
if not data:
183+
return []
184+
return data
185+
186+
@override
187+
def next_page_info(self) -> Optional[PageInfo]:
188+
cursor = None
189+
if self.result_info is not None:
190+
cursor = self.result_info.cursor
191+
if not cursor:
192+
return None
193+
194+
return PageInfo(params={"cursor": cursor})

0 commit comments

Comments
 (0)