[copr] master: Make the list function use better serializing, too (a994260)
bkabrda at fedoraproject.org
bkabrda at fedoraproject.org
Mon Jan 28 09:30:46 UTC 2013
Repository : http://git.fedorahosted.org/cgit/copr.git
On branch : master
>---------------------------------------------------------------
commit a9942603b2a550d31dfc68b7c93785700ba97e88
Author: Bohuslav Kabrda <bkabrda at redhat.com>
Date: Mon Jan 28 10:28:20 2013 +0100
Make the list function use better serializing, too
- Also try to take username from URL if not present in GET params
>---------------------------------------------------------------
coprs_frontend/coprs/views/api_ns/api_general.py | 33 ++++++++++------------
1 files changed, 15 insertions(+), 18 deletions(-)
diff --git a/coprs_frontend/coprs/views/api_ns/api_general.py b/coprs_frontend/coprs/views/api_ns/api_general.py
index 4cba67b..f2d270d 100644
--- a/coprs_frontend/coprs/views/api_ns/api_general.py
+++ b/coprs_frontend/coprs/views/api_ns/api_general.py
@@ -90,31 +90,28 @@ def api_new_copr():
@api_ns.route('/owned/')
-def api_list_copr():
+ at api_ns.route('/owned/<username>/')
+def api_coprs_by_owner(username=None):
""" Return the list of coprs owned by the given user.
+ username is taken either from GET params or from the URL itself
+ (in this order).
:arg username: the username of the person one would like to the
coprs of.
"""
- if 'username' in flask.request.args:
- username = flask.request.args['username']
+ username = flask.request.args.get('username', None) or username
+ if 'username':
query = coprs_logic.CoprsLogic.get_multiple(flask.g.user,
- user_relation = 'owned', username = username)
+ user_relation='owned', username=username)
repos = query.all()
- output = '{"output": "ok",\n"repos":[\n'
- for cnt, repo in enumerate(repos):
- output += '{'\
- '"name" : "%s", '\
- '"repos" : "%s", '\
- '"description": "%s", '\
- '"instructions": "%s" '\
- '}\n' % (repo.name, repo.repos, repo.description,
- repo.instructions)
- if cnt < len(repos):
- output += ','
- output += "]}\n"
+ output = {'output': 'ok', 'repos': []}
+ for repo in repos:
+ output['repos'].append({'name': repo.name,
+ 'repos': repo.repos,
+ 'description': repo.description,
+ 'instructions': repo.instructions})
else:
- output = '{"output": "notok", "error": "Invalid request"}'
+ output = {'output': 'notok', 'error': 'Invalid request'}
- return flask.Response(output, mimetype='application/json')
+ return flask.jsonify(output)
More information about the copr-devel
mailing list