mirror of
https://github.com/aljazceru/CTFd.git
synced 2025-12-18 06:24:23 +01:00
Add example for API pagination
This commit is contained in:
@@ -33,16 +33,31 @@ class UserList(Resource):
|
||||
@check_account_visibility
|
||||
def get(self):
|
||||
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:
|
||||
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:
|
||||
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(
|
||||
params={
|
||||
|
||||
Reference in New Issue
Block a user