Files
fachschaften/controller.py
2017-02-21 19:55:19 +01:00

50 lines
1.4 KiB
Python

#from src.models import Organization
from flask import request
from src.database import read_json, db_session
from sqlalchemy.exc import IntegrityError
from src import clogger
class BaseController():
def get(self,id):
return db_session.query(self.__myclass__).get(id)
def create(self,request):
d=read_json(request)
if d.has_key(self.__jsonid__):
d= d[self.__jsonid__]
o=self.__myclass__()
success, errors=o.update(d)
if success:
db_session.add(o)
try:
db_session.commit()
except IntegrityError as e:
db_session.rollback()
errors.append(e.message)
return o, errors
def get_all(self):
ar = db_session.query(self.__myclass__).all()
return ar
def delete(self,id):
o=self.get(id)
if o != None:
db_session.delete(o)
db_session.commit()
def update(self,id,request):
d=read_json(request)
o=self.get(id)
if d.has_key(self.__jsonid__):
d= d[self.__jsonid__]
success,errors=o.update(d)
if success:
try:
db_session.commit()
except IntegrityError as e:
db_session.rollback()
errors.append(e.message)
return o,errors