mirror of
https://github.com/osm-search/Nominatim.git
synced 2024-12-25 14:02:12 +03:00
provide full URL in more field
This is a regression against the PHP version. Fixes #3138.
This commit is contained in:
parent
2c7e1db5f6
commit
996026e5ed
@ -69,6 +69,11 @@ class ASGIAdaptor(abc.ABC):
|
||||
body of the response to 'output'.
|
||||
"""
|
||||
|
||||
@abc.abstractmethod
|
||||
def base_uri(self) -> str:
|
||||
""" Return the URI of the original request.
|
||||
"""
|
||||
|
||||
|
||||
@abc.abstractmethod
|
||||
def config(self) -> Configuration:
|
||||
@ -481,7 +486,7 @@ async def search_endpoint(api: napi.NominatimAPIAsync, params: ASGIAdaptor) -> A
|
||||
(str(r.place_id) for r in results if r.place_id))
|
||||
queryparts['format'] = fmt
|
||||
|
||||
moreurl = urlencode(queryparts)
|
||||
moreurl = params.base_uri() + '/search?' + urlencode(queryparts)
|
||||
else:
|
||||
moreurl = ''
|
||||
|
||||
|
@ -67,6 +67,9 @@ class ParamWrapper(api_impl.ASGIAdaptor):
|
||||
self.response.content_type = self.content_type
|
||||
|
||||
|
||||
def base_uri(self) -> str:
|
||||
return cast (str, self.request.forwarded_prefix)
|
||||
|
||||
def config(self) -> Configuration:
|
||||
return self._config
|
||||
|
||||
|
@ -50,6 +50,19 @@ class ParamWrapper(api_impl.ASGIAdaptor):
|
||||
return Response(output, status_code=status, media_type=self.content_type)
|
||||
|
||||
|
||||
def base_uri(self) -> str:
|
||||
scheme = self.request.url.scheme
|
||||
host = self.request.url.hostname
|
||||
port = self.request.url.port
|
||||
root = self.request.scope['root_path']
|
||||
if (scheme == 'http' and port == 80) or (scheme == 'https' and port == 443):
|
||||
port = None
|
||||
if port is not None:
|
||||
return f"{scheme}://{host}:{port}{root}"
|
||||
|
||||
return f"{scheme}://{host}{root}"
|
||||
|
||||
|
||||
def config(self) -> Configuration:
|
||||
return cast(Configuration, self.request.app.state.API.config)
|
||||
|
||||
|
@ -47,6 +47,9 @@ class FakeAdaptor(glue.ASGIAdaptor):
|
||||
return FakeResponse(status, output, self.content_type)
|
||||
|
||||
|
||||
def base_uri(self) -> str:
|
||||
return 'http://test'
|
||||
|
||||
def config(self):
|
||||
return self._config
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user