X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/4e0602919cfdad274a6d04c9798f2d61f1b03cf3..2d115ea4128a869c335d205056174b14febc7bbd:/src/nominatim_api/server/starlette/server.py diff --git a/src/nominatim_api/server/starlette/server.py b/src/nominatim_api/server/starlette/server.py index 60a81321..3bfabc10 100644 --- a/src/nominatim_api/server/starlette/server.py +++ b/src/nominatim_api/server/starlette/server.py @@ -24,6 +24,7 @@ from starlette.middleware.cors import CORSMiddleware from ...config import Configuration from ...core import NominatimAPIAsync from ... import v1 as api_impl +from ...result_formatting import FormatDispatcher, load_format_dispatcher from ..asgi_adaptor import ASGIAdaptor, EndpointFunc from ... import logging as loglib @@ -70,6 +71,10 @@ class ParamWrapper(ASGIAdaptor): return cast(Configuration, self.request.app.state.API.config) + def formatting(self) -> FormatDispatcher: + return cast(FormatDispatcher, self.request.app.state.API.formatter) + + def _wrap_endpoint(func: EndpointFunc)\ -> Callable[[Request], Coroutine[Any, Any, Response]]: async def _callback(request: Request) -> Response: @@ -165,6 +170,7 @@ def get_application(project_dir: Path, on_shutdown=[_shutdown]) app.state.API = NominatimAPIAsync(project_dir, environ) + app.state.formatter = load_format_dispatcher('v1', project_dir) return app