Mercurial > kraina_muminkow
comparison 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 |
comparison
equal
deleted
inserted
replaced
17:57a48d2aee18 | 18:8dabb7e7f039 |
---|---|
1 #!/usr/bin/python | 1 #!/usr/bin/python |
2 # -*- coding: utf-8 -*- | 2 # -*- coding: utf-8 -*- |
3 | 3 |
4 from flask import jsonify, Module, abort, request | 4 from flask import jsonify, Module, abort, request |
5 from flask import render_template | |
5 from mfrontend import db, utils, exceptions, decorators | 6 from mfrontend import db, utils, exceptions, decorators |
6 api = Module(__name__) | 7 api = Module(__name__) |
7 | 8 |
8 @api.route('/getjob/<apikey>/') | 9 @api.route('/getjob/') |
9 def get_jobs(): | 10 @decorators.login_required |
11 def get_jobs_json(): | |
10 """ Funkcja pobiera informacje o wszystkich zadaniach | 12 """ Funkcja pobiera informacje o wszystkich zadaniach |
11 i zwraca je w formacie JSON. | 13 i zwraca je w formacie JSON. |
12 """ | 14 """ |
13 if apikey != db.config.get('Basic', 'ApiKey'): | |
14 abort(403) | |
15 return jsonify(jobs = db.get_jobs(None, None, None)) | 15 return jsonify(jobs = db.get_jobs(None, None, None)) |
16 | 16 |
17 @api.route('/getnextjob/<apikey>/') | 17 @api.route('/getnextjob/<apikey>/') |
18 def get_first_waiting_job(apikey): | 18 def get_first_waiting_job_template(apikey): |
19 """ Zwraca w formacie JSON informacje o pierwszym | 19 """ Zwraca w formacie JSON informacje o pierwszym |
20 czekającym zadaniu. | 20 czekającym zadaniu. |
21 | 21 |
22 :param apikey: Klucz API. | 22 :param apikey: Klucz API. |
23 :returns: Dane o zadaniu w formacie JSON. | 23 :returns: Dane o zadaniu w formacie JSON. |
24 """ | 24 """ |
25 if apikey != db.config.get('Basic', 'ApiKey'): | 25 if apikey != db.config.get('Basic', 'ApiKey'): |
26 abort(403) | 26 abort(403) |
27 return jsonify(job = db.get_waiting_job()) | 27 return render_template('joblist.csv', |
28 jobs = [ db.get_waiting_job() ] ) | |
29 | |
30 @api.route('/getjob/<int:jobid>/') | |
31 @decorators.login_required | |
32 def get_job_json(jobid): | |
33 """ Zwraca w formacie JSON informacje o podanym zadaniu. | |
34 | |
35 :param jobid: Identyfikator żądanego zadania. | |
36 :returns: Informacje o zadaniu w formacie JSON | |
37 """ | |
38 # w innym przypadku zwracamy informacje o zadaniu | |
39 return jsonify(job = db.get_job_by_id(jobid)) | |
28 | 40 |
29 @api.route('/getjob/<apikey>/<int:jobid>/') | 41 @api.route('/getjob/<apikey>/<int:jobid>/') |
30 def get_job(apikey, jobid): | 42 def get_job_template(apikey, jobid): |
31 """ Zwraca w formacie JSON informacje o podanym zadaniu. | 43 """ Funkcja zwraca informacje o zadaniu o podanym numerze |
32 | 44 jobid. |
33 :param jobid: Identyfikator żądanego zadania. | 45 |
34 :param apikey: Klucz API | 46 :param apikey: Klucz API taki, jak ustawiony w config.ini |
47 :param jobid: Numer identyfikacyjny zadania | |
48 :returns: Dane o zadaniu wyrenderowane przy pomocy | |
49 szablonu joblist.csv | |
35 """ | 50 """ |
36 # jeśli klucz API jest niepoprawny, przerywamy | 51 if apikey != db.config.get('Basic', 'ApiKey'): |
37 if apikey != db.config.get('Basic','ApiKey'): | |
38 abort(403) | 52 abort(403) |
39 # w innym przypadku zwracamy informacje o zadaniu | 53 return render_template('joblist.csv', |
40 return jsonify(job = db.get_job_by_id(jobid)) | 54 jobs = [ db.get_job_by_id(jobid) ] ) |
41 | 55 |
42 @api.route('/modify/<apikey>/<int:jobid>/', methods=['POST']) | 56 @api.route('/modify/<apikey>/<int:jobid>/', methods=['POST']) |
43 def modify_job(apikey, jobid): | 57 def modify_job(apikey, jobid): |
44 """ Funkcja pozwalająca na modyfikację wybranego | 58 """ Funkcja pozwalająca na modyfikację wybranego |
45 zadania. | 59 zadania. |