Repository :
http://git.fedorahosted.org/cgit/copr.git
On branch : master
---------------------------------------------------------------
commit 1b3400b84ffb41f40a7ae1b96c150b1e971d7b00
Author: Miroslav Suchý <msuchy(a)redhat.com>
Date: Fri Apr 4 14:46:57 2014 +0200
add /playground/list/ api call
this list all projects which are included in playground fedora repo
---------------------------------------------------------------
frontend/coprs_frontend/coprs/logic/coprs_logic.py | 19 +++++++++++++++----
.../coprs/views/api_ns/api_general.py | 14 ++++++++++++++
2 files changed, 29 insertions(+), 4 deletions(-)
diff --git a/frontend/coprs_frontend/coprs/logic/coprs_logic.py
b/frontend/coprs_frontend/coprs/logic/coprs_logic.py
index 7cab264..73d20c9 100644
--- a/frontend/coprs_frontend/coprs/logic/coprs_logic.py
+++ b/frontend/coprs_frontend/coprs/logic/coprs_logic.py
@@ -17,17 +17,24 @@ class CoprsLogic(object):
"""
@classmethod
+ def get_all(cls):
+ """ Return all coprs without those which are deleted.
"""
+ query = (db.session.query(models.Copr)
+ .join(models.Copr.owner)
+ .options(db.contains_eager(models.Copr.owner))
+ .filter(models.Copr.deleted == False))
+ return query
+
+ @classmethod
def get(cls, user, username, coprname, **kwargs):
with_builds = kwargs.get("with_builds", False)
with_mock_chroots = kwargs.get("with_mock_chroots", False)
- query = (db.session.query(models.Copr)
- .join(models.Copr.owner)
- .options(db.contains_eager(models.Copr.owner))
+ query = (cls.get_all()
.filter(models.Copr.name == coprname)
.filter(models.User.openid_name ==
models.User.openidize_name(username))
- .filter(models.Copr.deleted == False))
+ )
if with_builds:
query = (query.outerjoin(models.Copr.builds)
@@ -92,6 +99,10 @@ class CoprsLogic(object):
return query
@classmethod
+ def get_playground(cls):
+ return cls.get_all().filter(models.Copr.playground == True)
+
+ @classmethod
def get_multiple_fulltext(cls, user, search_string):
query = (models.Copr.query.join(models.User)
.filter(models.Copr.deleted == False)
diff --git a/frontend/coprs_frontend/coprs/views/api_ns/api_general.py
b/frontend/coprs_frontend/coprs/views/api_ns/api_general.py
index d50cc3d..0a5cd9f 100644
--- a/frontend/coprs_frontend/coprs/views/api_ns/api_general.py
+++ b/frontend/coprs_frontend/coprs/views/api_ns/api_general.py
@@ -431,3 +431,17 @@ def api_coprs_search_by_project(project=None):
jsonout = flask.jsonify(output)
jsonout.status_code = httpcode
return jsonout
+
+(a)api_ns.route("/playground/list/")
+def playground_list():
+ """ Return list of coprs which are part of playground
"""
+ query = coprs_logic.CoprsLogic.get_playground()
+ repos = query.all()
+ output = {"output": "ok", "repos": []}
+ for repo in repos:
+ output["repos"].append({"username": repo.owner.name,
+ "coprname": repo.name})
+
+ jsonout = flask.jsonify(output)
+ jsonout.status_code = 200
+ return jsonout