48 lines
1.3 KiB
Python
48 lines
1.3 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 self.__myclass__.query.get(id)
|
|
|
|
def create(self,request):
|
|
d=read_json(request)
|
|
clogger.info(d)
|
|
clogger.info(d[self.__jsonid__])
|
|
o=self.__myclass__()
|
|
success, errors=o.update(d[self.__jsonid__])
|
|
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):
|
|
return self.__myclass__.query.all()
|
|
|
|
def delete(self,id):
|
|
o=self.get(id)
|
|
if o != None:
|
|
db_session.delete(o)
|
|
db_session.commit()
|
|
|
|
def update(self,id,request):
|
|
a=read_json(request)
|
|
o=self.get(id)
|
|
success,errors=o.update(a[self.__jsonid__])
|
|
if success:
|
|
try:
|
|
db_session.commit()
|
|
except IntegrityError as e:
|
|
db_session.rollback()
|
|
errors.append(e.message)
|
|
|
|
return o,errors
|
|
|