Mercurial > kraina_muminkow
diff frontend/mfrontend/views/api.py @ 18:8dabb7e7f039
API zdefiniowane przez szablon
author | Michał Rudowicz <michal.rudowicz@fl9.eu> |
---|---|
date | Mon, 04 Apr 2011 10:44:09 +0200 |
parents | df32c1d01b8d |
children |
line wrap: on
line diff
--- a/frontend/mfrontend/views/api.py Sun Apr 03 14:07:19 2011 +0200 +++ b/frontend/mfrontend/views/api.py Mon Apr 04 10:44:09 2011 +0200 @@ -2,20 +2,20 @@ # -*- coding: utf-8 -*- from flask import jsonify, Module, abort, request +from flask import render_template from mfrontend import db, utils, exceptions, decorators api = Module(__name__) -@api.route('/getjob/<apikey>/') -def get_jobs(): +@api.route('/getjob/') +@decorators.login_required +def get_jobs_json(): """ Funkcja pobiera informacje o wszystkich zadaniach i zwraca je w formacie JSON. """ - if apikey != db.config.get('Basic', 'ApiKey'): - abort(403) return jsonify(jobs = db.get_jobs(None, None, None)) @api.route('/getnextjob/<apikey>/') -def get_first_waiting_job(apikey): +def get_first_waiting_job_template(apikey): """ Zwraca w formacie JSON informacje o pierwszym czekającym zadaniu. @@ -24,21 +24,35 @@ """ if apikey != db.config.get('Basic', 'ApiKey'): abort(403) - return jsonify(job = db.get_waiting_job()) + return render_template('joblist.csv', + jobs = [ db.get_waiting_job() ] ) -@api.route('/getjob/<apikey>/<int:jobid>/') -def get_job(apikey, jobid): +@api.route('/getjob/<int:jobid>/') +@decorators.login_required +def get_job_json(jobid): """ Zwraca w formacie JSON informacje o podanym zadaniu. - :param jobid: Identyfikator żądanego zadania. - :param apikey: Klucz API + :param jobid: Identyfikator żądanego zadania. + :returns: Informacje o zadaniu w formacie JSON """ - # jeśli klucz API jest niepoprawny, przerywamy - if apikey != db.config.get('Basic','ApiKey'): - abort(403) # w innym przypadku zwracamy informacje o zadaniu return jsonify(job = db.get_job_by_id(jobid)) +@api.route('/getjob/<apikey>/<int:jobid>/') +def get_job_template(apikey, jobid): + """ Funkcja zwraca informacje o zadaniu o podanym numerze + jobid. + + :param apikey: Klucz API taki, jak ustawiony w config.ini + :param jobid: Numer identyfikacyjny zadania + :returns: Dane o zadaniu wyrenderowane przy pomocy + szablonu joblist.csv + """ + if apikey != db.config.get('Basic', 'ApiKey'): + abort(403) + return render_template('joblist.csv', + jobs = [ db.get_job_by_id(jobid) ] ) + @api.route('/modify/<apikey>/<int:jobid>/', methods=['POST']) def modify_job(apikey, jobid): """ Funkcja pozwalająca na modyfikację wybranego