star status shown in normal repo listings
This commit is contained in:
parent
17751eced9
commit
8464b54ad9
5 changed files with 27 additions and 12 deletions
|
@ -112,6 +112,8 @@ class RepositoryList(ApiResource):
|
|||
username = None
|
||||
if get_authenticated_user() and args['private']:
|
||||
username = get_authenticated_user().username
|
||||
starred_repos = model.get_user_starred_repositories(get_authenticated_user())
|
||||
star_lookup = set([repo.id for repo in starred_repos])
|
||||
|
||||
response = {}
|
||||
|
||||
|
@ -124,6 +126,16 @@ class RepositoryList(ApiResource):
|
|||
repo_query = model.get_visible_repositories(username, limit=args['limit'], page=args['page'],
|
||||
include_public=args['public'], sort=args['sort'],
|
||||
namespace=args['namespace'])
|
||||
def repo_view(repo_obj):
|
||||
repo = {
|
||||
'namespace': repo_obj.namespace_user.username,
|
||||
'name': repo_obj.name,
|
||||
'description': repo_obj.description,
|
||||
'is_public': repo_obj.visibility.name == 'public',
|
||||
}
|
||||
if get_authenticated_user():
|
||||
repo['is_starred'] = repo_obj.id in star_lookup
|
||||
return repo
|
||||
|
||||
response['repositories'] = [repo_view(repo) for repo in repo_query
|
||||
if (repo.visibility.name == 'public' or
|
||||
|
@ -133,15 +145,6 @@ class RepositoryList(ApiResource):
|
|||
return response
|
||||
|
||||
|
||||
def repo_view(repo_obj):
|
||||
return {
|
||||
'namespace': repo_obj.namespace_user.username,
|
||||
'name': repo_obj.name,
|
||||
'description': repo_obj.description,
|
||||
'is_public': repo_obj.visibility.name == 'public',
|
||||
}
|
||||
|
||||
|
||||
@resource('/v1/repository/<repopath:repository>')
|
||||
@path_param('repository', 'The full path of the repository. e.g. namespace/name')
|
||||
class Repository(RepositoryParamResource):
|
||||
|
|
Reference in a new issue