50 lines
1.4 KiB
Python
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
|
|
|