gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] [taler-bank] branch master updated: Decompression middlewar


From: gnunet
Subject: [GNUnet-SVN] [taler-bank] branch master updated: Decompression middleware.
Date: Thu, 16 May 2019 17:57:07 +0200

This is an automated email from the git hooks/post-receive script.

marcello pushed a commit to branch master
in repository bank.

The following commit(s) were added to refs/heads/master by this push:
     new 25f077c  Decompression middleware.
25f077c is described below

commit 25f077c30108e15ad3b9e9290db0e665e4b042fb
Author: Marcello Stanisci <address@hidden>
AuthorDate: Thu May 16 17:56:51 2019 +0200

    Decompression middleware.
---
 talerbank/app/middleware.py | 34 ++++++++++++++++++++++++++++++++++
 talerbank/settings.py       |  1 +
 2 files changed, 35 insertions(+)

diff --git a/talerbank/app/middleware.py b/talerbank/app/middleware.py
index 371d9b6..138e509 100644
--- a/talerbank/app/middleware.py
+++ b/talerbank/app/middleware.py
@@ -1,4 +1,5 @@
 import logging
+import zlib
 from django.http import JsonResponse
 from django.shortcuts import redirect
 from .models import BankAccount, BankTransaction
@@ -16,6 +17,39 @@ LOGGER = logging.getLogger()
 
 
 ##
+# Class decompressing requests.
+class DecompressionMiddleware:
+
+    ##
+    # Init constructor.
+    #
+    # @param self the object itself.
+    # @param get_response a Django-provided callable that calls
+    #        whatever comes next in the chain: a further middleware
+    #        or the view itself (please refer to the official
+    #        documentation for more details).
+    def __init__(self, get_response):
+        self.get_response = get_response
+
+    ##
+    # This function is transparently invoked by Django when
+    # a request traverses the chain made of middleware classes
+    # and the view itself as the last element in the chain.
+    #
+    # Here happens the decompression.
+    #
+    # @param self this class.
+    # @param request Django-specific request object (of the same
+    #        type that is handed to views).
+    # @return Django-specific response object.
+    def __call__(self, request):
+        print("Decompri?") 
+        if "deflate" == request.headers.get("Content-Encoding"):
+            request._body = zlib.decompress(request.body)
+
+        return self.get_response(request)
+
+##
 # Class holding data needed by the handling logic.
 class ExceptionMiddleware:
 
diff --git a/talerbank/settings.py b/talerbank/settings.py
index 539843b..f3f099d 100644
--- a/talerbank/settings.py
+++ b/talerbank/settings.py
@@ -77,6 +77,7 @@ MIDDLEWARE = [
     'django.contrib.messages.middleware.MessageMiddleware',
     'django.middleware.clickjacking.XFrameOptionsMiddleware',
     'talerbank.app.middleware.ExceptionMiddleware',
+    'talerbank.app.middleware.DecompressionMiddleware'
 ]
 
 TEMPLATES = [

-- 
To stop receiving notification emails like this one, please contact
address@hidden



reply via email to

[Prev in Thread] Current Thread [Next in Thread]