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.