X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=dakweb%2Fqueries%2Fsource.py;h=36344b766f1a0a14fd03f91b82bdee51b55ed212;hb=d768d3d67c0b90cc63c768a845cf8650cfe4c7ab;hp=298ee9dd03bc8eac30acdfe47fb7283d06656a58;hpb=d2f97cd3ef8b537c676dcc474ae1bd0ea3f9399c;p=dak.git diff --git a/dakweb/queries/source.py b/dakweb/queries/source.py old mode 100644 new mode 100755 index 298ee9dd..36344b76 --- a/dakweb/queries/source.py +++ b/dakweb/queries/source.py @@ -10,9 +10,11 @@ from dakweb.webregister import QueryRegister @bottle.route('/dsc_in_suite//') def dsc_in_suite(suite=None, source=None): """ - Find all dsc files for a given source package name in a given suite. + dsc_in_suite(suite, source) + + returns: list of dictionaries - suite and source must be supplied + Find all dsc files for a given source package name in a given suite. """ if suite is None: return bottle.HTTPError(503, 'Suite not specified.') @@ -33,7 +35,61 @@ def dsc_in_suite(suite=None, source=None): 'filesize': p.poolfile.filesize, 'sha256sum': p.poolfile.sha256sum}) + s.close() + return json.dumps(ret) QueryRegister().register_path('/dsc_in_suite', dsc_in_suite) + +@bottle.route('/sources_in_suite/') +def sources_in_suite(suite=None): + """ + sources_in_suite(suite) + + returns: list of dictionaries + + Returns all source packages and their versions in a given suite. + """ + + if suite is None: + return bottle.HTTPError(503, 'Suite not specified.') + + s = DBConn().session() + q = s.query(DBSource).join(Suite, DBSource.suites) + q = q.filter(or_(Suite.suite_name == suite, Suite.codename == suite)) + ret = [] + for p in q: + ret.append({'source': p.source, + 'version': p.version}) + + s.close() + + return json.dumps(ret) + +QueryRegister().register_path('/sources_in_suite', sources_in_suite) + + +@bottle.route('/all_sources') +def sources_in_suite(): + """ + all_sources() + + returns: list of dictionaries + + Returns all source packages and their versions known to the archive + (this includes NEW). + """ + + s = DBConn().session() + q = s.query(DBSource) + ret = [] + for p in q: + ret.append({'source': p.source, + 'version': p.version}) + + s.close() + + return json.dumps(ret) + +QueryRegister().register_path('/all_sources', all_sources)