Changeset View
Changeset View
Standalone View
Standalone View
swh/core/api/asynchronous.py
Show All 15 Lines | |||||
from .serializers import ( | from .serializers import ( | ||||
exception_to_dict, | exception_to_dict, | ||||
json_dumps, | json_dumps, | ||||
json_loads, | json_loads, | ||||
msgpack_dumps, | msgpack_dumps, | ||||
msgpack_loads, | msgpack_loads, | ||||
) | ) | ||||
logger = logging.getLogger(__name__) | |||||
def encode_msgpack(data, **kwargs): | def encode_msgpack(data, **kwargs): | ||||
return aiohttp.web.Response( | return aiohttp.web.Response( | ||||
body=msgpack_dumps(data), | body=msgpack_dumps(data), | ||||
headers=multidict.MultiDict({"Content-Type": "application/x-msgpack"}), | headers=multidict.MultiDict({"Content-Type": "application/x-msgpack"}), | ||||
**kwargs, | **kwargs, | ||||
) | ) | ||||
Show All 31 Lines | |||||
async def error_middleware(app, handler): | async def error_middleware(app, handler): | ||||
async def middleware_handler(request): | async def middleware_handler(request): | ||||
try: | try: | ||||
return await handler(request) | return await handler(request) | ||||
except Exception as e: | except Exception as e: | ||||
if isinstance(e, aiohttp.web.HTTPException): | if isinstance(e, aiohttp.web.HTTPException): | ||||
raise | raise | ||||
logging.exception(e) | logger.exception(e) | ||||
res = exception_to_dict(e) | res = exception_to_dict(e) | ||||
if isinstance(e, app.client_exception_classes): | if isinstance(e, app.client_exception_classes): | ||||
status = 400 | status = 400 | ||||
else: | else: | ||||
status = 500 | status = 500 | ||||
return encode_data_server(res, status=status) | return encode_data_server(res, status=status) | ||||
return middleware_handler | return middleware_handler | ||||
▲ Show 20 Lines • Show All 104 Lines • Show Last 20 Lines |