Mercurial > kraina_muminkow
annotate frontend/mfrontend/views/api.py @ 29:28eb82047167
Ukończona strona klienta
author | mild@mild-laptop |
---|---|
date | Sun, 05 Jun 2011 23:09:18 +0200 |
parents | 8dabb7e7f039 |
children |
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 |
18
8dabb7e7f039
API zdefiniowane przez szablon
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
14
diff
changeset
|
5 from flask import render_template |
11
69ecfe51d585
Dodałem prosty prototyp API
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
diff
changeset
|
6 from mfrontend import db, utils, exceptions, decorators |
69ecfe51d585
Dodałem prosty prototyp API
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
diff
changeset
|
7 api = Module(__name__) |
69ecfe51d585
Dodałem prosty prototyp API
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
diff
changeset
|
8 |
18
8dabb7e7f039
API zdefiniowane przez szablon
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
14
diff
changeset
|
9 @api.route('/getjob/') |
8dabb7e7f039
API zdefiniowane przez szablon
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
14
diff
changeset
|
10 @decorators.login_required |
8dabb7e7f039
API zdefiniowane przez szablon
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
14
diff
changeset
|
11 def get_jobs_json(): |
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
|
12 """ 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
|
13 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
|
14 """ |
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>/') |
18
8dabb7e7f039
API zdefiniowane przez szablon
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
14
diff
changeset
|
18 def get_first_waiting_job_template(apikey): |
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
|
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) |
18
8dabb7e7f039
API zdefiniowane przez szablon
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
14
diff
changeset
|
27 return render_template('joblist.csv', |
8dabb7e7f039
API zdefiniowane przez szablon
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
14
diff
changeset
|
28 jobs = [ db.get_waiting_job() ] ) |
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
|
29 |
18
8dabb7e7f039
API zdefiniowane przez szablon
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
14
diff
changeset
|
30 @api.route('/getjob/<int:jobid>/') |
8dabb7e7f039
API zdefiniowane przez szablon
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
14
diff
changeset
|
31 @decorators.login_required |
8dabb7e7f039
API zdefiniowane przez szablon
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
14
diff
changeset
|
32 def get_job_json(jobid): |
11
69ecfe51d585
Dodałem prosty prototyp API
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
diff
changeset
|
33 """ 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
|
34 |
18
8dabb7e7f039
API zdefiniowane przez szablon
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
14
diff
changeset
|
35 :param jobid: Identyfikator żądanego zadania. |
8dabb7e7f039
API zdefiniowane przez szablon
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
14
diff
changeset
|
36 :returns: Informacje o zadaniu w formacie JSON |
11
69ecfe51d585
Dodałem prosty prototyp API
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
diff
changeset
|
37 """ |
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
|
38 # 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
|
39 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
|
40 |
18
8dabb7e7f039
API zdefiniowane przez szablon
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
14
diff
changeset
|
41 @api.route('/getjob/<apikey>/<int:jobid>/') |
8dabb7e7f039
API zdefiniowane przez szablon
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
14
diff
changeset
|
42 def get_job_template(apikey, jobid): |
8dabb7e7f039
API zdefiniowane przez szablon
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
14
diff
changeset
|
43 """ Funkcja zwraca informacje o zadaniu o podanym numerze |
8dabb7e7f039
API zdefiniowane przez szablon
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
14
diff
changeset
|
44 jobid. |
8dabb7e7f039
API zdefiniowane przez szablon
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
14
diff
changeset
|
45 |
8dabb7e7f039
API zdefiniowane przez szablon
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
14
diff
changeset
|
46 :param apikey: Klucz API taki, jak ustawiony w config.ini |
8dabb7e7f039
API zdefiniowane przez szablon
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
14
diff
changeset
|
47 :param jobid: Numer identyfikacyjny zadania |
8dabb7e7f039
API zdefiniowane przez szablon
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
14
diff
changeset
|
48 :returns: Dane o zadaniu wyrenderowane przy pomocy |
8dabb7e7f039
API zdefiniowane przez szablon
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
14
diff
changeset
|
49 szablonu joblist.csv |
8dabb7e7f039
API zdefiniowane przez szablon
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
14
diff
changeset
|
50 """ |
8dabb7e7f039
API zdefiniowane przez szablon
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
14
diff
changeset
|
51 if apikey != db.config.get('Basic', 'ApiKey'): |
8dabb7e7f039
API zdefiniowane przez szablon
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
14
diff
changeset
|
52 abort(403) |
8dabb7e7f039
API zdefiniowane przez szablon
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
14
diff
changeset
|
53 return render_template('joblist.csv', |
8dabb7e7f039
API zdefiniowane przez szablon
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
14
diff
changeset
|
54 jobs = [ db.get_job_by_id(jobid) ] ) |
8dabb7e7f039
API zdefiniowane przez szablon
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
14
diff
changeset
|
55 |
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
|
56 @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
|
57 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
|
58 """ 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
|
59 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
|
60 |
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
|
61 :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
|
62 :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
|
63 """ |
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
|
64 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
|
65 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
|
66 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
|
67 return "OK" |