Changeset View
Changeset View
Standalone View
Standalone View
swh/web/common/middlewares.py
# Copyright (C) 2018-2020 The Software Heritage developers | # Copyright (C) 2018-2020 The Software Heritage developers | ||||
# See the AUTHORS file at the top-level directory of this distribution | # See the AUTHORS file at the top-level directory of this distribution | ||||
# License: GNU Affero General Public License version 3, or any later version | # License: GNU Affero General Public License version 3, or any later version | ||||
# See top-level LICENSE file for more information | # See top-level LICENSE file for more information | ||||
from htmlmin import minify | from htmlmin import minify | ||||
import sentry_sdk | import sentry_sdk | ||||
from swh.web.common.exc import handle_view_exception | |||||
from swh.web.common.utils import prettify_html | from swh.web.common.utils import prettify_html | ||||
class HtmlPrettifyMiddleware(object): | class HtmlPrettifyMiddleware(object): | ||||
""" | """ | ||||
Django middleware for prettifying generated HTML in | Django middleware for prettifying generated HTML in | ||||
development mode. | development mode. | ||||
""" | """ | ||||
▲ Show 20 Lines • Show All 49 Lines • ▼ Show 20 Lines | def __call__(self, request): | ||||
resp = self.get_response(request) | resp = self.get_response(request) | ||||
if "RateLimit-Limit" in request.META: | if "RateLimit-Limit" in request.META: | ||||
resp["X-RateLimit-Limit"] = request.META["RateLimit-Limit"] | resp["X-RateLimit-Limit"] = request.META["RateLimit-Limit"] | ||||
if "RateLimit-Remaining" in request.META: | if "RateLimit-Remaining" in request.META: | ||||
resp["X-RateLimit-Remaining"] = request.META["RateLimit-Remaining"] | resp["X-RateLimit-Remaining"] = request.META["RateLimit-Remaining"] | ||||
if "RateLimit-Reset" in request.META: | if "RateLimit-Reset" in request.META: | ||||
resp["X-RateLimit-Reset"] = request.META["RateLimit-Reset"] | resp["X-RateLimit-Reset"] = request.META["RateLimit-Reset"] | ||||
return resp | return resp | ||||
class ExceptionMiddleware(object): | |||||
""" | |||||
Django middleware for handling uncaught exception raised when | |||||
processing a view. | |||||
""" | |||||
def __init__(self, get_response=None): | |||||
self.get_response = get_response | |||||
def __call__(self, request): | |||||
return self.get_response(request) | |||||
def process_exception(self, request, exception): | |||||
return handle_view_exception(request, exception) |