star status shown in normal repo listings

This commit is contained in:
Jimmy Zelinskie 2014-12-30 15:07:14 -05:00
parent 17751eced9
commit 8464b54ad9
5 changed files with 27 additions and 12 deletions

View file

@ -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):