[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