def get(self, _id): schema = InternalUserSchema() try: user = User.objects.get(id=_id) return format_response(schema.dump(user), "get user detail success", 200) except (mg.DoesNotExist, mg.MultipleObjectsReturned): return format_response('', 'user is not exist', 404)
def delete(self, _id): try: User.objects.get(id=_id).delete() # return {"msg": "user deleted"} return format_response('', 'user deleted', 200) except (mg.DoesNotExist, mg.MultipleObjectsReturned): # abort(404, {'msg': '用户不存在'}) return format_response('', 'user is not exist', 404)
def get(self): try: schema = UserSchema(many=True) query = User.objects.all() objs, page = Pagination(query).paginate(schema) return format_response(objs, 'get user list success', 200, page=page) except Exception as e: return format_response(e.args, 'get user list failure', 500)
def put(self, _id): schema = UserSchema(partial=True) try: user = User.objects.get(id=_id) user_data = schema.load(request.json) user.update(**user_data) user.reload() return format_response(schema.dump(user), 'user updated', 200) except (mg.DoesNotExist, mg.MultipleObjectsReturned): # abort(404, {'msg': '用户不存在'}) return format_response('', 'user is not exist', 404)
def post(self): try: schema = UserSchema() data = schema.load(request.json) user = User.objects.create(**data) # return {"msg": "user created", "user": schema.dump(user)}, 201 return format_response(schema.dump(user), 'user created', 201) except mongoengine.errors.NotUniqueError: import traceback traceback.print_exc() logger.api_logger.error(traceback.format_exc()) # abort(403, {'msg': '手机号码已存在'}) return format_response('', 'user exists', 400) except Exception as e: # abort(500, {"msg": e.args}) import traceback traceback.print_exc() logger.api_logger.error(traceback.format_exc()) return format_response('', 'server error', 500)
def handle_405(e): """捕获abort(405)错误""" traceback.print_exc() logger.api_logger.error(traceback.format_exc()) # rsp = { # 'msg': 'Method not allowed', # 'err': 60 # } # return jsonify(**rsp), 405 return format_response(str(e), 'Method not allowed', 405)
def handle_404(e): """捕获abort(404)错误""" traceback.print_exc() logger.api_logger.error(traceback.format_exc()) # rsp = { # 'msg': 'Not Found', # 'err': 50 # } # if isinstance(e.description, dict): # rsp.update(e.description) # return jsonify(**rsp), 404 return jsonify(format_response(str(e), 'Not Found', 404)), 404
def handle_403(e): """捕获abort(403)错误""" traceback.print_exc() logger.api_logger.error(traceback.format_exc()) # rsp = { # 'err': 400, # 'msg': 'Forbidden' # } # if isinstance(e.description, int): # rsp['err'] = e.description # if isinstance(e.description, dict): # rsp.update(e.description) # return jsonify(**rsp), 403 return format_response(str(e), 'Forbidden', 403), 403
def handle_401(e): """捕获abort(401)错误""" traceback.print_exc() logger.api_logger.error(traceback.format_exc()) # rsp = { # 'msg': 'Unauthorized', # 'err': 20 # } # if isinstance(e.description, int): # rsp['err'] = e.description # elif isinstance(e.description, dict): # rsp.update(e.description) # return jsonify(**rsp), 401 return format_response(str(e), 'Unauthorized', 401), 401
def handle_400(e): """捕获abort(400)错误""" traceback.print_exc() logger.api_logger.error(traceback.format_exc()) # rsp = { # 'msg': 'Bad Request', # 'err': 10 # } # if isinstance(e.description, int): # rsp['err'] = e.description # if isinstance(e.description, dict): # rsp.update(e.description) # # return jsonify(**rsp), 400 return jsonify(format_response(str(e), 'bad request', 400)), 400
def handle_429(e): """捕获abort(429)频率限制错误""" traceback.print_exc() logger.api_logger.error(traceback.format_exc()) # rsp = { # 'msg': 'Too Many Requests', # 'err': 30 # } # err_info = { # 'msg': 'Too many requests', # 'ip': request.remote_addr, # 'url': request.url, # 'method': request.method, # } # logger.api_logger.error(err_info) # return jsonify(**rsp), 429 return format_response(str(e), 'Too many requests', 429)
def my_expired_token_loader(e, s): return jsonify(format_response('', "Token has expired", 401)), 401
def my_invalid_token_loader(e): return jsonify( format_response( '', "Bad Authorization header. Expected value 'Bearer <JWT>'", 422)), 422
def my_unauthorized_loader(e): return jsonify(format_response('', 'Missing Authorization Header', 401)), 401
def handle_exception(e): """Called when exception occurred""" traceback.print_exc() logger.api_logger.error(traceback.format_exc()) # return jsonify(str(e)), 500 return format_response(str(e), 'server error', 500)