Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def get_paginated_list_filter(klass, url, start, limit, query):
- start = int(start)
- limit = int(limit)
- results = klass
- obj = {}
- if start == 1:
- obj['previous'] = ''
- else:
- start_copy = max(1, start - limit)
- limit_copy = limit
- obj['previous'] = url + '?query=%s&start=%d&limit=%d' % (query, start_copy, limit)
- # make next url
- if start + limit < 1:
- obj['next'] = ''
- else:
- start_copy = start + limit
- obj['next'] = url + '?query=%s&start=%d&limit=%d' % (query, start_copy, limit)
- obj['results'] = results[(start - 1):(start - 1 + limit)]
- return obj
- class UserFilter(Resource):
- def get(self):
- parser = reqparse.RequestParser()
- parser.add_argument('username', help='This field cannot be blank', required=True)
- data = parser.parse_args()
- current_users = UserModel.serialize_list(UserModel.query.filter(
- UserModel.username.like('%' + data['username'] + '%')).all())
- return jsonify(get_paginated_list_filter(
- current_users,
- 'filter',
- start=request.args.get('start', 1),
- limit=request.args.get('limit', 20),
- query=data['username']
- ))
- {
- "next": "filter?query=test&start=21&limit=10",
- "previous": "filter?query=test&start=1&limit=10",
- "results": [
- {
- "id": 25,
- "password": "$pbkdf2-sha256$29000$7b0XwnjvXct5T6m1NgbgnA$yhP3hg.IE76kLIQSHCtO4ghS6Wt2zbcpEygimkL1XK8",
- "username": "Testowy7"
- },
- {
- "id": 26,
- "password": "$pbkdf2-sha256$29000$xPh/D2FMaW0NQYgxRqjVOg$QG3Z1X8oWVgZ.M8A/yWY2fWo/HRB.NAN2xwWqv9fUMA",
- "username": "Testowy8"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement