Include repository metadata when browsing repositories in a category.

This commit is contained in:
Dave Bouvier
2016-03-01 14:38:24 -05:00
parent 3ec58fd1da
commit b15a7ff06d
2 changed files with 13 additions and 2 deletions
@@ -81,7 +81,8 @@ class CategoriesController( BaseAPIController ):
category_dict[ 'url' ] = web.url_for( controller='categories',
action='show',
id=trans.security.encode_id( category.id ) )
category_dict[ 'repositories' ] = suc.get_repositories_by_category( self.app, category.id )
repositories = suc.get_repositories_by_category( self.app, category.id )
category_dict[ 'repositories' ] = repositories
return category_dict
@expose_api_anonymous_and_sessionless
+11 -1
View File
@@ -497,7 +497,17 @@ def get_repo_info_tuple_contents( repo_info_tuple ):
def get_repositories_by_category( app, category_id ):
sa_session = app.model.context.current
resultset = sa_session.query( app.model.Category ).get( category_id )
return [ repo.repository.to_dict( value_mapper={ 'id': app.security.encode_id, 'user_id': app.security.encode_id } ) for repo in resultset.repositories ]
repositories = []
default_value_mapper = { 'id': app.security.encode_id, 'user_id': app.security.encode_id }
for row in resultset.repositories:
repository_dict = row.repository.to_dict( value_mapper=default_value_mapper )
repository_dict[ 'metadata' ] = {}
for changeset, changehash in row.repository.installable_revisions( app ):
encoded_id = app.security.encode_id( row.repository.id )
metadata = get_repository_metadata_by_changeset_revision( app, encoded_id, changehash )
repository_dict[ 'metadata' ][ '%s:%s' % ( changeset, changehash ) ] = metadata.to_dict( value_mapper=default_value_mapper )
repositories.append( repository_dict )
return repositories
def get_repository_and_repository_dependencies_from_repo_info_dict( app, repo_info_dict ):