from datetime import datetime from application.app import db from models.area import AreaModel from webcreator.utils import ResponseCode, response_result class AreaResource(object): def __init__(self): super().__init__() def get(self, params): # handle business filters = [] result = AreaModel.query.filter(*filters).order_by(AreaModel.areaId).paginate(params.get('page', 1), params.get('pageSize', 10), error_out=False) return result def post(self, params, jwt=None): # handle business result = AreaModel.query.filter(AreaModel.areaName == params.get('areaName')).first() if result and result.is_delete: result.is_delete = False result.update_by = jwt['id'] result.update_date = datetime.now() db.session.commit() return response_result(ResponseCode.OK) elif result and result.is_delete == False: return response_result(ResponseCode.EXISTS_ERROR) result = AreaModel(**params) db.session.add(result) db.session.commit() return response_result(ResponseCode.OK) def put(self, id, params, jwt=None): # handle business result = AreaModel.query.get(id) if not result: return response_result(ResponseCode.NO_DATA) if params: for key, value in params.items(): if value != None: setattr(result, key, value) result.update_by = jwt['id'] result.update_date = datetime.now() db.session.commit() else: return response_result(ResponseCode.PARAM_NULL) def delete(self, id, jwt=None): # handle business result = AreaModel.query.get(id) if not result: return response_result(ResponseCode.NO_DATA_FOUND) else: result.update_by = jwt['id'] result.update_date = datetime.now() result.is_delete = True db.session.delete(result) db.session.commit() areaManager = AreaResource()