annotate 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
rev   line source
11
69ecfe51d585 Dodałem prosty prototyp API
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
diff changeset
1 #!/usr/bin/python
69ecfe51d585 Dodałem prosty prototyp API
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
diff changeset
2 # -*- coding: utf-8 -*-
69ecfe51d585 Dodałem prosty prototyp API
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
diff changeset
3
14
df32c1d01b8d Dodałem edycję zadań przez POST, napisałem coś w rodzaju dokumentacji z nudów
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 13
diff changeset
4 from flask import jsonify, Module, abort, request
11
69ecfe51d585 Dodałem prosty prototyp API
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
diff changeset
5 from mfrontend import db, utils, exceptions, decorators
69ecfe51d585 Dodałem prosty prototyp API
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
diff changeset
6 api = Module(__name__)
69ecfe51d585 Dodałem prosty prototyp API
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
diff changeset
7
13
79cf8ca2a0e5 Dodałem pobieranie informacji o podanym zadaniu oraz pobieranie zadania oczekującego poprzez API
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 11
diff changeset
8 @api.route('/getjob/<apikey>/')
11
69ecfe51d585 Dodałem prosty prototyp API
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
diff changeset
9 def get_jobs():
14
df32c1d01b8d Dodałem edycję zadań przez POST, napisałem coś w rodzaju dokumentacji z nudów
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 13
diff changeset
10 """ Funkcja pobiera informacje o wszystkich zadaniach
df32c1d01b8d Dodałem edycję zadań przez POST, napisałem coś w rodzaju dokumentacji z nudów
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 13
diff changeset
11 i zwraca je w formacie JSON.
df32c1d01b8d Dodałem edycję zadań przez POST, napisałem coś w rodzaju dokumentacji z nudów
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 13
diff changeset
12 """
13
79cf8ca2a0e5 Dodałem pobieranie informacji o podanym zadaniu oraz pobieranie zadania oczekującego poprzez API
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 11
diff changeset
13 if apikey != db.config.get('Basic', 'ApiKey'):
79cf8ca2a0e5 Dodałem pobieranie informacji o podanym zadaniu oraz pobieranie zadania oczekującego poprzez API
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 11
diff changeset
14 abort(403)
11
69ecfe51d585 Dodałem prosty prototyp API
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
diff changeset
15 return jsonify(jobs = db.get_jobs(None, None, None))
69ecfe51d585 Dodałem prosty prototyp API
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
diff changeset
16
13
79cf8ca2a0e5 Dodałem pobieranie informacji o podanym zadaniu oraz pobieranie zadania oczekującego poprzez API
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 11
diff changeset
17 @api.route('/getnextjob/<apikey>/')
79cf8ca2a0e5 Dodałem pobieranie informacji o podanym zadaniu oraz pobieranie zadania oczekującego poprzez API
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 11
diff changeset
18 def get_first_waiting_job(apikey):
79cf8ca2a0e5 Dodałem pobieranie informacji o podanym zadaniu oraz pobieranie zadania oczekującego poprzez API
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 11
diff changeset
19 """ Zwraca w formacie JSON informacje o pierwszym
79cf8ca2a0e5 Dodałem pobieranie informacji o podanym zadaniu oraz pobieranie zadania oczekującego poprzez API
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 11
diff changeset
20 czekającym zadaniu.
14
df32c1d01b8d Dodałem edycję zadań przez POST, napisałem coś w rodzaju dokumentacji z nudów
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 13
diff changeset
21
df32c1d01b8d Dodałem edycję zadań przez POST, napisałem coś w rodzaju dokumentacji z nudów
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 13
diff changeset
22 :param apikey: Klucz API.
df32c1d01b8d Dodałem edycję zadań przez POST, napisałem coś w rodzaju dokumentacji z nudów
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 13
diff changeset
23 :returns: Dane o zadaniu w formacie JSON.
13
79cf8ca2a0e5 Dodałem pobieranie informacji o podanym zadaniu oraz pobieranie zadania oczekującego poprzez API
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 11
diff changeset
24 """
79cf8ca2a0e5 Dodałem pobieranie informacji o podanym zadaniu oraz pobieranie zadania oczekującego poprzez API
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 11
diff changeset
25 if apikey != db.config.get('Basic', 'ApiKey'):
79cf8ca2a0e5 Dodałem pobieranie informacji o podanym zadaniu oraz pobieranie zadania oczekującego poprzez API
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 11
diff changeset
26 abort(403)
79cf8ca2a0e5 Dodałem pobieranie informacji o podanym zadaniu oraz pobieranie zadania oczekującego poprzez API
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 11
diff changeset
27 return jsonify(job = db.get_waiting_job())
79cf8ca2a0e5 Dodałem pobieranie informacji o podanym zadaniu oraz pobieranie zadania oczekującego poprzez API
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 11
diff changeset
28
79cf8ca2a0e5 Dodałem pobieranie informacji o podanym zadaniu oraz pobieranie zadania oczekującego poprzez API
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 11
diff changeset
29 @api.route('/getjob/<apikey>/<int:jobid>/')
79cf8ca2a0e5 Dodałem pobieranie informacji o podanym zadaniu oraz pobieranie zadania oczekującego poprzez API
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 11
diff changeset
30 def get_job(apikey, jobid):
11
69ecfe51d585 Dodałem prosty prototyp API
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
diff changeset
31 """ Zwraca w formacie JSON informacje o podanym zadaniu.
14
df32c1d01b8d Dodałem edycję zadań przez POST, napisałem coś w rodzaju dokumentacji z nudów
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 13
diff changeset
32
df32c1d01b8d Dodałem edycję zadań przez POST, napisałem coś w rodzaju dokumentacji z nudów
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 13
diff changeset
33 :param jobid: Identyfikator żądanego zadania.
df32c1d01b8d Dodałem edycję zadań przez POST, napisałem coś w rodzaju dokumentacji z nudów
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 13
diff changeset
34 :param apikey: Klucz API
11
69ecfe51d585 Dodałem prosty prototyp API
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
diff changeset
35 """
13
79cf8ca2a0e5 Dodałem pobieranie informacji o podanym zadaniu oraz pobieranie zadania oczekującego poprzez API
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 11
diff changeset
36 # jeśli klucz API jest niepoprawny, przerywamy
79cf8ca2a0e5 Dodałem pobieranie informacji o podanym zadaniu oraz pobieranie zadania oczekującego poprzez API
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 11
diff changeset
37 if apikey != db.config.get('Basic','ApiKey'):
79cf8ca2a0e5 Dodałem pobieranie informacji o podanym zadaniu oraz pobieranie zadania oczekującego poprzez API
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 11
diff changeset
38 abort(403)
79cf8ca2a0e5 Dodałem pobieranie informacji o podanym zadaniu oraz pobieranie zadania oczekującego poprzez API
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 11
diff changeset
39 # w innym przypadku zwracamy informacje o zadaniu
79cf8ca2a0e5 Dodałem pobieranie informacji o podanym zadaniu oraz pobieranie zadania oczekującego poprzez API
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 11
diff changeset
40 return jsonify(job = db.get_job_by_id(jobid))
79cf8ca2a0e5 Dodałem pobieranie informacji o podanym zadaniu oraz pobieranie zadania oczekującego poprzez API
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 11
diff changeset
41
14
df32c1d01b8d Dodałem edycję zadań przez POST, napisałem coś w rodzaju dokumentacji z nudów
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 13
diff changeset
42 @api.route('/modify/<apikey>/<int:jobid>/', methods=['POST'])
df32c1d01b8d Dodałem edycję zadań przez POST, napisałem coś w rodzaju dokumentacji z nudów
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 13
diff changeset
43 def modify_job(apikey, jobid):
df32c1d01b8d Dodałem edycję zadań przez POST, napisałem coś w rodzaju dokumentacji z nudów
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 13
diff changeset
44 """ Funkcja pozwalająca na modyfikację wybranego
df32c1d01b8d Dodałem edycję zadań przez POST, napisałem coś w rodzaju dokumentacji z nudów
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 13
diff changeset
45 zadania.
df32c1d01b8d Dodałem edycję zadań przez POST, napisałem coś w rodzaju dokumentacji z nudów
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 13
diff changeset
46
df32c1d01b8d Dodałem edycję zadań przez POST, napisałem coś w rodzaju dokumentacji z nudów
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 13
diff changeset
47 :param apikey: Klucz API
df32c1d01b8d Dodałem edycję zadań przez POST, napisałem coś w rodzaju dokumentacji z nudów
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 13
diff changeset
48 :param jobid: Identyfikator zadania do zmodyfikowania
df32c1d01b8d Dodałem edycję zadań przez POST, napisałem coś w rodzaju dokumentacji z nudów
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 13
diff changeset
49 """
df32c1d01b8d Dodałem edycję zadań przez POST, napisałem coś w rodzaju dokumentacji z nudów
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 13
diff changeset
50 if apikey != db.config.get('Basic','ApiKey'):
df32c1d01b8d Dodałem edycję zadań przez POST, napisałem coś w rodzaju dokumentacji z nudów
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 13
diff changeset
51 abort(403)
df32c1d01b8d Dodałem edycję zadań przez POST, napisałem coś w rodzaju dokumentacji z nudów
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 13
diff changeset
52 db.edit_job(jobid, request.form)
df32c1d01b8d Dodałem edycję zadań przez POST, napisałem coś w rodzaju dokumentacji z nudów
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 13
diff changeset
53 return "OK"