Source code for being.web.responses
"""Some web response short forms."""
from aiohttp import web
from aiohttp.web_response import Response
from being.serialization import dumps
[docs]def respond_ok() -> Response:
"""Return with status ok.
Returns:
Empty ok response.
"""
return web.Response()
[docs]def json_response(obj=None) -> Response:
"""aiohttp web.json_response but with our custom JSON serialization dumps.
Args:
obj: Object to JSON serialize and pack in a response.
Returns:
Response with JSON payload.
"""
if obj is None:
obj = {}
return web.json_response(obj, dumps=dumps)
# Note: Do not use lambda function as response factories! Leads to errors under Windows because the
# IocpProactor proactor does not accept non-async lambda functions.
#
# Excerpt:
# raise TypeError("Only async functions are allowed as web-handlers "
# TypeError: Only async functions are allowed as web-handlers , got <function file_response_handler.<locals>.<lambda> at 0x000001A40BF45CA0>
#
#def file_response_handler(filepath):
# """Create anonymous file response handler for a file."""
# return lambda request: web.FileResponse(filepath)
#
#
#def json_response_handler(data):
# """Create anonymous JSON response handler function for some data."""
# return lambda request: json_response(data)