Source code for harp.controllers.default
import json
from typing import TYPE_CHECKING
from harp.asgi.events import RequestEvent
from harp.http import HttpResponse
from harp.utils.json import BytesEncoder
if TYPE_CHECKING:
from harp.http import HttpRequest
[docs]
async def dump_request_controller(request: "HttpRequest"):
"""
TODO: use orjson ?
"""
try:
scope = request._impl.asgi_scope
except AttributeError:
scope = {}
return HttpResponse(json.dumps(scope, cls=BytesEncoder), content_type="application/json")
[docs]
async def not_found_controller():
return HttpResponse("Not found.", status=404, content_type="text/plain")
[docs]
async def ok_controller():
return HttpResponse("Ok.", status=200)
[docs]
async def on_health_request(event: RequestEvent):
if event.request.path == "/healthz":
event.set_controller(ok_controller)
event.stop_propagation()