view frontend/mfrontend/views/api.py @ 16:c87f82a15606

Dopisałem co nieco do dokumentacji i małę poprawki w zarządzainu zadaniami
author Michał Rudowicz <michal.rudowicz@fl9.eu>
date Sun, 03 Apr 2011 13:47:13 +0200
parents df32c1d01b8d
children 8dabb7e7f039
line wrap: on
line source

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

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

@api.route('/getjob/<apikey>/')
def get_jobs():
    """ Funkcja pobiera informacje o wszystkich zadaniach
        i zwraca je w formacie JSON.
    """
    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.
        :returns: 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.
        
        :param jobid: Identyfikator żądanego zadania.
        :param apikey: Klucz API
    """
    # 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))

@api.route('/modify/<apikey>/<int:jobid>/', methods=['POST'])
def modify_job(apikey, jobid):
    """ Funkcja pozwalająca na modyfikację wybranego
        zadania.
        
        :param apikey: Klucz API
        :param jobid:   Identyfikator zadania do zmodyfikowania
    """
    if apikey != db.config.get('Basic','ApiKey'):
        abort(403)
    db.edit_job(jobid, request.form)
    return "OK"