From 483e6f215d692bcad5aaaea13bb3d73b06d4c833 Mon Sep 17 00:00:00 2001 From: Xeniac Date: Sat, 12 Jan 2019 16:26:13 +0100 Subject: [PATCH] Fixed: Middleware process_response got not executed. --- src/mahjong_ranking/middleware.py | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/mahjong_ranking/middleware.py b/src/mahjong_ranking/middleware.py index 2b71256..c93909a 100644 --- a/src/mahjong_ranking/middleware.py +++ b/src/mahjong_ranking/middleware.py @@ -1,12 +1,26 @@ """Middleware to defer slow denormalization at the end of a request.""" from django.core.cache import cache + from mahjong_ranking import models from . import LOGGER +from . import LOGGER - -class DenormalizationUpdateMiddleware(object): # Ignore PyLintBear (R0903) +class DenormalizationUpdateMiddleware: """To recalculate everything in the queues at the end of a POST request.""" + def __init__(self, get_response=None): + self.get_response = get_response + super().__init__() + + def __call__(self, request): + response = None + if hasattr(self, 'process_request'): + response = self.process_request(request) + response = response or self.get_response(request) + if hasattr(self, 'process_response'): + response = self.process_response(request, response) + return response + def process_response(self, request, response): # Ignore PyLintBear (R0201) """Check and process the recalculation queues on each POST request. @@ -16,7 +30,6 @@ class DenormalizationUpdateMiddleware(object): # Ignore PyLintBear (R0903) """ event_queue = set() season_queue = set() - if request.method != 'POST': return response