From 02b1814fcfdc61b1b69b5955f2b60252ff10cde9 Mon Sep 17 00:00:00 2001 From: Simon Willison Date: Tue, 24 Oct 2017 16:54:26 -0700 Subject: [PATCH] Redirects now preserve query string Fixes #28 --- app.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/app.py b/app.py index 6a168d77..ab332cbb 100644 --- a/app.py +++ b/app.py @@ -77,14 +77,19 @@ def ensure_build_metadata(regenerate=False): class BaseView(HTTPMethodView): template = None + def redirect(self, request, path): + if request.query_string: + path = '{}?{}'.format( + path, request.query_string + ) + r = response.redirect(path) + r.headers['Link'] = '<{}>; rel=preload'.format(path) + return r + async def get(self, request, db_name, **kwargs): name, hash, should_redirect = resolve_db_name(db_name, **kwargs) if should_redirect: - r = response.redirect(should_redirect) - r.headers['Link'] = '<{}>; rel=preload'.format( - should_redirect - ) - return r + return self.redirect(request, should_redirect) try: as_json = kwargs.pop('as_json') except KeyError: