mirror of
https://github.com/aljazceru/CTFd.git
synced 2025-12-19 06:54:20 +01:00
Add example for API pagination
This commit is contained in:
@@ -33,16 +33,31 @@ class UserList(Resource):
|
|||||||
@check_account_visibility
|
@check_account_visibility
|
||||||
def get(self):
|
def get(self):
|
||||||
if is_admin() and request.args.get("view") == "admin":
|
if is_admin() and request.args.get("view") == "admin":
|
||||||
users = Users.query.filter_by()
|
users = Users.query.filter_by().paginate(max_per_page=50)
|
||||||
else:
|
else:
|
||||||
users = Users.query.filter_by(banned=False, hidden=False)
|
users = Users.query.filter_by(banned=False, hidden=False).paginate(
|
||||||
|
max_per_page=50
|
||||||
|
)
|
||||||
|
|
||||||
response = UserSchema(view="user", many=True).dump(users)
|
response = UserSchema(view="user", many=True).dump(users.items)
|
||||||
|
|
||||||
if response.errors:
|
if response.errors:
|
||||||
return {"success": False, "errors": response.errors}, 400
|
return {"success": False, "errors": response.errors}, 400
|
||||||
|
|
||||||
return {"success": True, "data": response.data}
|
return {
|
||||||
|
"meta": {
|
||||||
|
"pagination": {
|
||||||
|
"page": users.page,
|
||||||
|
"next": users.next_num,
|
||||||
|
"prev": users.prev_num,
|
||||||
|
"pages": users.pages,
|
||||||
|
"per_page": users.per_page,
|
||||||
|
"total": users.total,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"success": True,
|
||||||
|
"data": response.data,
|
||||||
|
}
|
||||||
|
|
||||||
@users_namespace.doc(
|
@users_namespace.doc(
|
||||||
params={
|
params={
|
||||||
|
|||||||
Reference in New Issue
Block a user