Sammlung
This commit is contained in:
161
Sammlung/lit-8/app/application.py
Normal file
161
Sammlung/lit-8/app/application.py
Normal file
@ -0,0 +1,161 @@
|
||||
# coding: utf-8
|
||||
|
||||
import json
|
||||
|
||||
import cherrypy
|
||||
|
||||
from app import database
|
||||
from app import view
|
||||
|
||||
# Method-Dispatching!
|
||||
|
||||
# Übersicht Anforderungen / Methoden
|
||||
# (beachte: / relativ zu /lit, siehe Konfiguration Server!)
|
||||
|
||||
"""
|
||||
|
||||
Anforderung GET PUT POST DELETE
|
||||
----------------------------------------------------------------
|
||||
/ Liste - - -
|
||||
Literatur
|
||||
liefern
|
||||
|
||||
/0 Dokument Dokument - -
|
||||
mit id=0 anlegen
|
||||
liefern
|
||||
(Vorgabe-Werte)
|
||||
|
||||
/{id} Dokument - Dokument Dokument
|
||||
mit {id} ändern löschen
|
||||
liefern
|
||||
|
||||
id > 0 !
|
||||
|
||||
"""
|
||||
|
||||
#----------------------------------------------------------
|
||||
class Application_cl(object):
|
||||
#----------------------------------------------------------
|
||||
|
||||
exposed = True # gilt für alle Methoden
|
||||
|
||||
#-------------------------------------------------------
|
||||
def __init__(self):
|
||||
#-------------------------------------------------------
|
||||
# spezielle Initialisierung können hier eingetragen werden
|
||||
self.db_o = database.Database_cl()
|
||||
self.view_o = view.View_cl()
|
||||
|
||||
# es wird keine index-Methode vorgesehen, weil stattdessen
|
||||
# die Webseite index.html ausgeliefert wird (siehe Konfiguration)
|
||||
|
||||
#-------------------------------------------------------
|
||||
def GET(self, id=None):
|
||||
#-------------------------------------------------------
|
||||
retVal_o = {
|
||||
'data': None
|
||||
}
|
||||
if id == None:
|
||||
# Anforderung der Liste
|
||||
retVal_o['data'] = self.getList_p()
|
||||
else:
|
||||
# Anforderung eines Dokuments
|
||||
retVal_o['data'] = self.getForm_p(id)
|
||||
|
||||
if retVal_o['data'] == None:
|
||||
cherrypy.response.status = 404
|
||||
|
||||
return json.dumps(retVal_o)
|
||||
|
||||
#-------------------------------------------------------
|
||||
def PUT(self, **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!
|
||||
|
||||
data_o = {
|
||||
'name': data_opl["name_s"],
|
||||
'typ': data_opl["typ_s"],
|
||||
'referenz': data_opl["referenz_s"]
|
||||
}
|
||||
# Create-Operation
|
||||
id_s = self.db_o.create_px(data_o)
|
||||
retVal_o['id'] = id_s
|
||||
if id_s == None:
|
||||
cherrypy.response.status = 409
|
||||
|
||||
return json.dumps(retVal_o)
|
||||
|
||||
#-------------------------------------------------------
|
||||
def POST(self, id, **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!
|
||||
|
||||
id_s = data_opl["id_s"]
|
||||
data_o = {
|
||||
'name': data_opl["name_s"],
|
||||
'typ': data_opl["typ_s"],
|
||||
'referenz': data_opl["referenz_s"]
|
||||
}
|
||||
# Update-Operation
|
||||
retVal_o['id'] = id_s
|
||||
if self.db_o.update_px(id_s, data_o):
|
||||
pass
|
||||
else:
|
||||
cherrypy.response.status = 404
|
||||
|
||||
return json.dumps(retVal_o)
|
||||
|
||||
#-------------------------------------------------------
|
||||
def DELETE(self, id):
|
||||
#-------------------------------------------------------
|
||||
# Eintrag löschen, nur noch Rückmeldung liefern
|
||||
retVal_o = {
|
||||
'id': id
|
||||
}
|
||||
|
||||
if self.db_o.delete_px(id):
|
||||
pass
|
||||
else:
|
||||
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)
|
||||
|
||||
#-------------------------------------------------------
|
||||
def getList_p(self):
|
||||
#-------------------------------------------------------
|
||||
data_o = self.db_o.read_px()
|
||||
return self.view_o.createList_px(data_o)
|
||||
|
||||
#-------------------------------------------------------
|
||||
def getForm_p(self, id_spl):
|
||||
#-------------------------------------------------------
|
||||
data_o = self.db_o.read_px(id_spl)
|
||||
if data_o != None:
|
||||
return self.view_o.createForm_px(id_spl, data_o)
|
||||
else:
|
||||
return None
|
||||
# EOF
|
Reference in New Issue
Block a user