v2: add pagination decorator
This commit is contained in:
parent
5b630ebdb0
commit
3f722f880e
6 changed files with 77 additions and 79 deletions
|
@ -1,30 +1,24 @@
|
|||
from flask import jsonify, url_for
|
||||
from flask import jsonify
|
||||
|
||||
from endpoints.v2 import v2_bp
|
||||
from auth.registry_jwt_auth import process_registry_jwt_auth, get_granted_entity
|
||||
from endpoints.decorators import anon_protect
|
||||
from data import model
|
||||
from endpoints.v2.v2util import add_pagination
|
||||
from endpoints.v2 import v2_bp, _paginate
|
||||
|
||||
@v2_bp.route('/_catalog', methods=['GET'])
|
||||
@process_registry_jwt_auth()
|
||||
@anon_protect
|
||||
def catalog_search():
|
||||
url = url_for('v2.catalog_search')
|
||||
|
||||
@_paginate()
|
||||
def catalog_search(limit, offset, pagination_callback):
|
||||
username = None
|
||||
entity = get_granted_entity()
|
||||
if entity:
|
||||
username = entity.user.username
|
||||
|
||||
query = model.repository.get_visible_repositories(username, include_public=(username is None))
|
||||
link, query = add_pagination(query, url)
|
||||
|
||||
visible_repositories = v2.get_visible_repositories(username, limit, offset)
|
||||
response = jsonify({
|
||||
'repositories': ['%s/%s' % (repo.namespace_user.username, repo.name) for repo in query],
|
||||
'repositories': ['%s/%s' % (repo.namespace_name, repo.name)
|
||||
for repo in visible_repositories],
|
||||
})
|
||||
|
||||
if link is not None:
|
||||
response.headers['Link'] = link
|
||||
|
||||
pagination_callback(len(visible_repositories), response)
|
||||
return response
|
||||
|
|
Reference in a new issue