-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpage_manager.py
More file actions
33 lines (27 loc) · 1.16 KB
/
page_manager.py
File metadata and controls
33 lines (27 loc) · 1.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
from math import ceil
from api import DOMAIN_NAME
class PagesManager():
"""Класс позволяющий мониторить данные о странице возврата результата запроса."""
def __init__(self) -> None:
pass
def generate_json_data(res,route_name,is_generate_data = True) -> dict:
offset = (res.page-1) * res.per_page
return {
"links": {
"first": f"{DOMAIN_NAME}/{route_name}?page=1",
"last": f"{DOMAIN_NAME}/{route_name}?page={res.pages}",
"prev": f"{DOMAIN_NAME}/{route_name}?page={res.prev_num if res.has_prev else res.page}",
"next": f"{DOMAIN_NAME}/{route_name}?page={res.next_num if res.has_next else res.page}"
},
"current_page": res.page,
"from": offset,
"last_page": res.pages,
"path": f"{DOMAIN_NAME}/{route_name}",
"per_page": res.per_page,
"to": offset+len(res.items),
"total": res.total,
"data": [
_.json_view() for _ in res.items
] if is_generate_data else []
}
pass