Mercurial > kraina_muminkow
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" |