Files
oopt-gnpy-api/gnpyapi/core/exception/exception_handler.py
Renato Ambrosone e48f524d1a refactor: API now rely on gnpy function without re-implementation
Change-Id: Ib71f62f74eaa9fd87606a977f1f2c830b71668d9
2025-03-25 16:04:49 +01:00

35 lines
1.0 KiB
Python

# coding: utf-8
import json
import re
import werkzeug
from gnpyapi.core.model.error import Error
_reaesc = re.compile(r'\x1b[^m]*m')
def common_error_handler(exception):
"""
:type exception: Exception
"""
status_code = 500
if not isinstance(exception, werkzeug.exceptions.HTTPException):
exception = werkzeug.exceptions.InternalServerError()
exception.description = "Something went wrong on our side."
else:
status_code = exception.code
response = Error(message=exception.name, description=exception.description,
code=status_code)
return werkzeug.Response(response=json.dumps(response.__dict__), status=status_code, mimetype='application/json')
def bad_request_handler(exception):
exception_str = " ".join(str(exception).split())
response = Error(message='bad request', description=_reaesc.sub('', exception_str.replace("\n", " ")),
code=400)
return werkzeug.Response(response=json.dumps(response.__dict__), status=400, mimetype='application/json')