from datetime import datetime from application.app import db from models.area import AreaModel from webcreator.log import logger # from webcreator.response import ResponseCode, response_result class AreaResource(object): def __init__(self): super().__init__() def get(self, uuid, params): # handle business filters = [AreaModel.is_delete==False, AreaModel.uuid==uuid] result = AreaModel.query.filter(*filters).first() if result: return (True, result) return (False, result) def getList(self, params): # handle business logger.warn(params) filters = [AreaModel.is_delete==False] result = AreaModel.query.filter(*filters).order_by(AreaModel.create_at).paginate(params.get('page', 1), params.get('pageSize', 10), error_out=False) return (True, result.items, result.total) def post(self, params, jwt={}): # handle business result = AreaModel.query.filter(AreaModel.areaCode == params.get('areaCode')).first() if result and result.is_delete: result.is_delete = False result.update_by = jwt.get("id", "") result.update_date = datetime.now() db.session.commit() return (True, None) elif result and result.is_delete == False: return (False, "record code exists") result = AreaModel(**params) db.session.add(result) db.session.commit() return (True, None) def put(self, uuid, params, jwt={}): # handle business result = AreaModel.query.filter(AreaModel.uuid==uuid).first() if not result: return (False, "record not exists") if params: for key, value in params.items(): if value != None: setattr(result, key, value) result.update_by = jwt.get("id", "") result.update_date = datetime.now() db.session.commit() return (True, None) else: return (False, "params is null") def delete(self, uuid, jwt={}): # handle business result = AreaModel.query.filter(AreaModel.uuid==uuid).first() if not result: return (False, "record not exists") result.update_by = jwt.get("id", "") result.update_date = datetime.now() result.is_delete = True db.session.delete(result) db.session.commit() return (True, None) areaManager = AreaResource()