comparison frontend/mfrontend/views/api.py @ 14:df32c1d01b8d

Dodałem edycję zadań przez POST, napisałem coś w rodzaju dokumentacji z nudów
author Michał Rudowicz <michal.rudowicz@fl9.eu>
date Fri, 01 Apr 2011 22:58:29 +0200
parents 79cf8ca2a0e5
children 8dabb7e7f039
comparison
equal deleted inserted replaced
13:79cf8ca2a0e5 14:df32c1d01b8d
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 4 from flask import jsonify, Module, abort, request
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/<apikey>/') 8 @api.route('/getjob/<apikey>/')
9 def get_jobs(): 9 def get_jobs():
10 """ Funkcja pobiera informacje o wszystkich zadaniach
11 i zwraca je w formacie JSON.
12 """
10 if apikey != db.config.get('Basic', 'ApiKey'): 13 if apikey != db.config.get('Basic', 'ApiKey'):
11 abort(403) 14 abort(403)
12 return jsonify(jobs = db.get_jobs(None, None, None)) 15 return jsonify(jobs = db.get_jobs(None, None, None))
13 16
14 @api.route('/getnextjob/<apikey>/') 17 @api.route('/getnextjob/<apikey>/')
15 def get_first_waiting_job(apikey): 18 def get_first_waiting_job(apikey):
16 """ Zwraca w formacie JSON informacje o pierwszym 19 """ Zwraca w formacie JSON informacje o pierwszym
17 czekającym zadaniu. 20 czekającym zadaniu.
18 @param apikey Klucz API. 21
19 @return Dane o zadaniu w formacie JSON. 22 :param apikey: Klucz API.
23 :returns: Dane o zadaniu w formacie JSON.
20 """ 24 """
21 if apikey != db.config.get('Basic', 'ApiKey'): 25 if apikey != db.config.get('Basic', 'ApiKey'):
22 abort(403) 26 abort(403)
23 return jsonify(job = db.get_waiting_job()) 27 return jsonify(job = db.get_waiting_job())
24 28
25 @api.route('/getjob/<apikey>/<int:jobid>/') 29 @api.route('/getjob/<apikey>/<int:jobid>/')
26 def get_job(apikey, jobid): 30 def get_job(apikey, jobid):
27 """ Zwraca w formacie JSON informacje o podanym zadaniu. 31 """ Zwraca w formacie JSON informacje o podanym zadaniu.
28 Uwaga: użytkownik musi być zalogowany, aby móc pobrać 32
29 informację o zadaniu. 33 :param jobid: Identyfikator żądanego zadania.
30 @param jobid Identyfikator żądanego zadania. 34 :param apikey: Klucz API
31 @return Informacje o zadaniu w formacie JSON.
32 """ 35 """
33 # jeśli klucz API jest niepoprawny, przerywamy 36 # jeśli klucz API jest niepoprawny, przerywamy
34 if apikey != db.config.get('Basic','ApiKey'): 37 if apikey != db.config.get('Basic','ApiKey'):
35 abort(403) 38 abort(403)
36 # w innym przypadku zwracamy informacje o zadaniu 39 # w innym przypadku zwracamy informacje o zadaniu
37 return jsonify(job = db.get_job_by_id(jobid)) 40 return jsonify(job = db.get_job_by_id(jobid))
38 41
42 @api.route('/modify/<apikey>/<int:jobid>/', methods=['POST'])
43 def modify_job(apikey, jobid):
44 """ Funkcja pozwalająca na modyfikację wybranego
45 zadania.
46
47 :param apikey: Klucz API
48 :param jobid: Identyfikator zadania do zmodyfikowania
49 """
50 if apikey != db.config.get('Basic','ApiKey'):
51 abort(403)
52 db.edit_job(jobid, request.form)
53 return "OK"