From e835a99b43493c1d2f9a903231967a01cfb22dc5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gon=C3=A7alo=20Val=C3=A9rio?= Date: Wed, 3 Apr 2019 23:17:02 +0100 Subject: [PATCH] simplified the controller code to make use of the new request headers object --- callbacks/templates/callbacks/check.html | 6 +++--- callbacks/views.py | 15 ++++----------- webhook_logger/settings.py | 2 +- 3 files changed, 8 insertions(+), 15 deletions(-) diff --git a/callbacks/templates/callbacks/check.html b/callbacks/templates/callbacks/check.html index 46229e5..b9f517c 100644 --- a/callbacks/templates/callbacks/check.html +++ b/callbacks/templates/callbacks/check.html @@ -70,9 +70,9 @@ Content - - [[header.name]] - [[header.value]] + + [[header]] + [[value]] diff --git a/callbacks/views.py b/callbacks/views.py index fba6da6..1d7c17a 100644 --- a/callbacks/views.py +++ b/callbacks/views.py @@ -51,17 +51,10 @@ class CallbackView(View): "ip_address": get_ip_address(request), "query_params": request.GET, "body": body, - "headers": self._received_headers(), + "headers": self._filter_headers(request.headers), "received_at": timezone.now().isoformat(), } - def _received_headers(self): - request = self.request - headers = [] - for key, value in request.META.items(): - if key.startswith("HTTP") and key not in settings.EXCLUDED_HEADERS: - original_header = ( - key.replace("HTTP_", "").replace("_", "-").capitalize() - ) - headers.append({"name": original_header, "value": value}) - return headers + def _filter_headers(self, headers): + exc = settings.EXCLUDED_HEADERS + return {key: value for key, value in headers.items() if key not in exc} diff --git a/webhook_logger/settings.py b/webhook_logger/settings.py index 81b713d..e090493 100644 --- a/webhook_logger/settings.py +++ b/webhook_logger/settings.py @@ -116,4 +116,4 @@ CHANNEL_LAYERS = { } # Should use the format of request.META -EXCLUDED_HEADERS = os.environ.get("EXCLUDE_HEADERS", "").split(",") +EXCLUDED_HEADERS = os.environ.get("EXCLUDED_HEADERS", "").split(",")