view 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
line wrap: on
line source

#!/usr/bin/python
# -*- coding: utf-8 -*-

from flask import jsonify, Module, abort
from mfrontend import db, utils, exceptions, decorators
api = Module(__name__)

@api.route('/getjob/<apikey>/')
def get_jobs():
    if apikey != db.config.get('Basic', 'ApiKey'):
        abort(403)
    return jsonify(jobs = db.get_jobs(None, None, None))

@api.route('/getnextjob/<apikey>/')
def get_first_waiting_job(apikey):
    """ Zwraca w formacie JSON informacje o pierwszym
        czekającym zadaniu.
        @param apikey   Klucz API.
        @return         Dane o zadaniu w formacie JSON.
    """
    if apikey != db.config.get('Basic', 'ApiKey'):
        abort(403)
    return jsonify(job = db.get_waiting_job())

@api.route('/getjob/<apikey>/<int:jobid>/')
def get_job(apikey, jobid):
    """ Zwraca w formacie JSON informacje o podanym zadaniu.
        Uwaga: użytkownik musi być zalogowany, aby móc pobrać
        informację o zadaniu.
        @param  jobid   Identyfikator żądanego zadania.
        @return         Informacje o zadaniu w formacie JSON.
    """
    # jeśli klucz API jest niepoprawny, przerywamy
    if apikey != db.config.get('Basic','ApiKey'):
        abort(403)
    # w innym przypadku zwracamy informacje o zadaniu
    return jsonify(job = db.get_job_by_id(jobid))