Advertisement
Guest User

Untitled

a guest
Jul 18th, 2019
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.68 KB | None | 0 0
  1. def get_paginated_list_filter(klass, url, start, limit, query):
  2. start = int(start)
  3. limit = int(limit)
  4. results = klass
  5.  
  6. obj = {}
  7.  
  8. if start == 1:
  9. obj['previous'] = ''
  10. else:
  11. start_copy = max(1, start - limit)
  12. limit_copy = limit
  13. obj['previous'] = url + '?query=%s&start=%d&limit=%d' % (query, start_copy, limit)
  14.  
  15. # make next url
  16. if start + limit < 1:
  17. obj['next'] = ''
  18. else:
  19. start_copy = start + limit
  20. obj['next'] = url + '?query=%s&start=%d&limit=%d' % (query, start_copy, limit)
  21.  
  22. obj['results'] = results[(start - 1):(start - 1 + limit)]
  23.  
  24. return obj
  25.  
  26. class UserFilter(Resource):
  27. def get(self):
  28. parser = reqparse.RequestParser()
  29. parser.add_argument('username', help='This field cannot be blank', required=True)
  30. data = parser.parse_args()
  31. current_users = UserModel.serialize_list(UserModel.query.filter(
  32. UserModel.username.like('%' + data['username'] + '%')).all())
  33. return jsonify(get_paginated_list_filter(
  34. current_users,
  35. 'filter',
  36. start=request.args.get('start', 1),
  37. limit=request.args.get('limit', 20),
  38. query=data['username']
  39. ))
  40.  
  41. {
  42. "next": "filter?query=test&start=21&limit=10",
  43. "previous": "filter?query=test&start=1&limit=10",
  44. "results": [
  45. {
  46. "id": 25,
  47. "password": "$pbkdf2-sha256$29000$7b0XwnjvXct5T6m1NgbgnA$yhP3hg.IE76kLIQSHCtO4ghS6Wt2zbcpEygimkL1XK8",
  48. "username": "Testowy7"
  49. },
  50. {
  51. "id": 26,
  52. "password": "$pbkdf2-sha256$29000$xPh/D2FMaW0NQYgxRqjVOg$QG3Z1X8oWVgZ.M8A/yWY2fWo/HRB.NAN2xwWqv9fUMA",
  53. "username": "Testowy8"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement