comparison frontend/mfrontend/views/api.py @ 13:79cf8ca2a0e5

Dodałem pobieranie informacji o podanym zadaniu oraz pobieranie zadania oczekującego poprzez API
author Michał Rudowicz <michal.rudowicz@fl9.eu>
date Fri, 01 Apr 2011 19:02:08 +0200
parents 69ecfe51d585
children df32c1d01b8d
comparison
equal deleted inserted replaced
12:5b4688e1964c 13:79cf8ca2a0e5
1 #!/usr/bin/python 1 #!/usr/bin/python
2 # -*- coding: utf-8 -*- 2 # -*- coding: utf-8 -*-
3 3
4 from flask import jsonify, Module 4 from flask import jsonify, Module, abort
5 from mfrontend import db, utils, exceptions, decorators 5 from mfrontend import db, utils, exceptions, decorators
6 api = Module(__name__) 6 api = Module(__name__)
7 7
8 @api.route('/getjob/') 8 @api.route('/getjob/<apikey>/')
9 @decorators.login_required
10 def get_jobs(): 9 def get_jobs():
10 if apikey != db.config.get('Basic', 'ApiKey'):
11 abort(403)
11 return jsonify(jobs = db.get_jobs(None, None, None)) 12 return jsonify(jobs = db.get_jobs(None, None, None))
12 13
13 @api.route('/getjob/<int:jobid>/') 14 @api.route('/getnextjob/<apikey>/')
14 @decorators.login_required 15 def get_first_waiting_job(apikey):
15 def get_job(jobid): 16 """ Zwraca w formacie JSON informacje o pierwszym
17 czekającym zadaniu.
18 @param apikey Klucz API.
19 @return Dane o zadaniu w formacie JSON.
20 """
21 if apikey != db.config.get('Basic', 'ApiKey'):
22 abort(403)
23 return jsonify(job = db.get_waiting_job())
24
25 @api.route('/getjob/<apikey>/<int:jobid>/')
26 def get_job(apikey, jobid):
16 """ Zwraca w formacie JSON informacje o podanym zadaniu. 27 """ Zwraca w formacie JSON informacje o podanym zadaniu.
17 Uwaga: użytkownik musi być zalogowany, aby móc pobrać 28 Uwaga: użytkownik musi być zalogowany, aby móc pobrać
18 informację o zadaniu. 29 informację o zadaniu.
19 @param jobid Identyfikator żądanego zadania. 30 @param jobid Identyfikator żądanego zadania.
20 @return Informacje o zadaniu w formacie JSON. 31 @return Informacje o zadaniu w formacie JSON.
21 """ 32 """
22 pass #TODO! 33 # jeśli klucz API jest niepoprawny, przerywamy
34 if apikey != db.config.get('Basic','ApiKey'):
35 abort(403)
36 # w innym przypadku zwracamy informacje o zadaniu
37 return jsonify(job = db.get_job_by_id(jobid))
38