2017-01-16 23:32:28 +01:00
|
|
|
# coding: utf-8
|
|
|
|
|
|
|
|
import json
|
|
|
|
|
|
|
|
import cherrypy
|
|
|
|
|
|
|
|
from .projekt import Projekt_cl, ProjektKomponenten_cl, Komponente_cl
|
|
|
|
from .staff import QsMitarbeiter_cl, SwEntwickler_cl
|
|
|
|
from .error import KatFehler_cl, KatUrsache_cl, Fehler_cl
|
|
|
|
from .eval import ProList_cl, KatList_cl
|
|
|
|
|
|
|
|
#----------------------------------------------------------
|
|
|
|
class Application_cl(object):
|
|
|
|
#----------------------------------------------------------
|
|
|
|
|
|
|
|
exposed = True # gilt für alle Methoden
|
|
|
|
|
|
|
|
#-------------------------------------------------------
|
|
|
|
def __init__(self):
|
|
|
|
#-------------------------------------------------------
|
|
|
|
self.handler_o = {
|
|
|
|
'projekt': Projekt_cl(),
|
|
|
|
'projektkomponenten': ProjektKomponenten_cl(),
|
|
|
|
'komponente': Komponente_cl(),
|
|
|
|
|
|
|
|
'qsmitarbeiter': QsMitarbeiter_cl(),
|
|
|
|
'swentwickler': SwEntwickler_cl(),
|
|
|
|
|
|
|
|
'katfehler': KatFehler_cl(),
|
|
|
|
'katursache': KatUrsache_cl(),
|
|
|
|
'fehler': Fehler_cl(),
|
|
|
|
|
|
|
|
'prolist': ProList_cl(),
|
|
|
|
'katlist': KatList_cl()
|
|
|
|
}
|
|
|
|
|
|
|
|
# es wird keine index-Methode vorgesehen, weil stattdessen
|
|
|
|
# die Webseite index.html ausgeliefert wird (siehe Konfiguration)
|
|
|
|
|
|
|
|
#-------------------------------------------------------
|
2017-01-18 18:14:35 +01:00
|
|
|
def GET(self, path_spl = 'projekt', id=None, **data_opl):
|
2017-01-16 23:32:28 +01:00
|
|
|
#-------------------------------------------------------
|
|
|
|
retVal_o = {
|
|
|
|
'data': None
|
|
|
|
}
|
|
|
|
|
|
|
|
if path_spl in self.handler_o:
|
2017-01-18 18:14:35 +01:00
|
|
|
if path_spl == 'fehler':
|
|
|
|
retVal_o = self.handler_o[path_spl].GET(id, **data_opl)
|
|
|
|
else:
|
|
|
|
retVal_o = self.handler_o[path_spl].GET(id)
|
2017-01-16 23:32:28 +01:00
|
|
|
|
|
|
|
if retVal_o['data'] == None:
|
|
|
|
cherrypy.response.status = 404
|
|
|
|
|
|
|
|
return json.dumps(retVal_o)
|
|
|
|
|
|
|
|
#-------------------------------------------------------
|
|
|
|
def POST(self, path_spl = 'projekt', **data_opl):
|
|
|
|
#-------------------------------------------------------
|
|
|
|
retVal_o = {
|
|
|
|
'id': None
|
|
|
|
}
|
|
|
|
|
|
|
|
# data_opl: Dictionary mit den gelieferten key-value-Paaren
|
|
|
|
|
|
|
|
# hier müsste man prüfen, ob die Daten korrekt vorliegen!
|
|
|
|
|
|
|
|
if path_spl in self.handler_o:
|
|
|
|
retVal_o = self.handler_o[path_spl].POST(data_opl)
|
|
|
|
|
|
|
|
if retVal_o['id'] == None:
|
|
|
|
cherrypy.response.status = 409
|
|
|
|
|
|
|
|
return json.dumps(retVal_o)
|
|
|
|
|
|
|
|
#-------------------------------------------------------
|
|
|
|
def PUT(self, path_spl = 'projekt', **data_opl):
|
|
|
|
#-------------------------------------------------------
|
|
|
|
# Sichern der Daten: jetzt wird keine vollständige Seite
|
|
|
|
# zurückgeliefert, sondern nur noch die Information, ob das
|
|
|
|
# Speichern erfolgreich war
|
|
|
|
|
|
|
|
retVal_o = {
|
|
|
|
'id': None
|
|
|
|
}
|
|
|
|
|
|
|
|
# data_opl: Dictionary mit den gelieferten key-value-Paaren
|
|
|
|
# hier müsste man prüfen, ob die Daten korrekt vorliegen!
|
|
|
|
|
|
|
|
if path_spl in self.handler_o:
|
|
|
|
retVal_o = self.handler_o[path_spl].PUT(data_opl)
|
|
|
|
|
|
|
|
if retVal_o['id'] == None:
|
|
|
|
cherrypy.response.status = 404
|
|
|
|
|
|
|
|
return json.dumps(retVal_o)
|
|
|
|
|
|
|
|
#-------------------------------------------------------
|
|
|
|
def DELETE(self, path_spl = 'projekt', id=None):
|
|
|
|
#-------------------------------------------------------
|
|
|
|
# Eintrag löschen, nur noch Rückmeldung liefern
|
|
|
|
retVal_o = {
|
|
|
|
'id': id
|
|
|
|
}
|
|
|
|
|
|
|
|
if path_spl in self.handler_o:
|
|
|
|
retVal_o = self.handler_o[path_spl].DELETE(id)
|
|
|
|
|
|
|
|
if retVal_o['id'] == None:
|
|
|
|
cherrypy.response.status = 404
|
|
|
|
|
|
|
|
return json.dumps(retVal_o)
|
|
|
|
|
|
|
|
#-------------------------------------------------------
|
|
|
|
def default(self, *arguments, **kwargs):
|
|
|
|
#-------------------------------------------------------
|
|
|
|
msg_s = "unbekannte Anforderung: " + \
|
|
|
|
str(arguments) + \
|
|
|
|
' ' + \
|
|
|
|
str(kwargs)
|
|
|
|
raise cherrypy.HTTPError(404, msg_s)
|
|
|
|
|
|
|
|
# EOF
|