annotate 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
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
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
4 from flask import jsonify, Module, abort
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():
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
10 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
11 abort(403)
11
69ecfe51d585 Dodałem prosty prototyp API
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
diff changeset
12 return jsonify(jobs = db.get_jobs(None, None, None))
69ecfe51d585 Dodałem prosty prototyp API
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
diff changeset
13
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
14 @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
15 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
16 """ 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
17 czekającym 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
18 @param apikey Klucz API.
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 @return Dane o zadaniu w formacie JSON.
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 """
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
21 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
22 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
23 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
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 @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
26 def get_job(apikey, jobid):
11
69ecfe51d585 Dodałem prosty prototyp API
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
diff changeset
27 """ Zwraca w formacie JSON informacje o podanym zadaniu.
69ecfe51d585 Dodałem prosty prototyp API
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
diff changeset
28 Uwaga: użytkownik musi być zalogowany, aby móc pobrać
69ecfe51d585 Dodałem prosty prototyp API
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
diff changeset
29 informację o zadaniu.
69ecfe51d585 Dodałem prosty prototyp API
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
diff changeset
30 @param jobid Identyfikator żądanego zadania.
69ecfe51d585 Dodałem prosty prototyp API
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
diff changeset
31 @return Informacje o zadaniu w formacie JSON.
69ecfe51d585 Dodałem prosty prototyp API
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
diff changeset
32 """
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
33 # 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
34 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
35 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
36 # 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
37 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
38