Skip to content

Commit

Permalink
Merge pull request #3 from girardinsamuel/fix/redirections
Browse files Browse the repository at this point in the history
  • Loading branch information
zodman committed Oct 16, 2020
2 parents b021ea3 + e489fdc commit 1f8b77c
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 3 deletions.
9 changes: 8 additions & 1 deletion inertia/middleware.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from django.http import HttpResponse
from django.http import HttpResponse, HttpResponseRedirect
from .share import share
from .version import asset_version

Expand All @@ -20,10 +20,17 @@ def __call__(self, request):
response = HttpResponse(status=409)
response["X-Inertia-Location"] = request.get_full_path_info()
return response

share(request, "flash", {
'success': request.session.get("success", False),
'error': request.session.get("error", False)
})
share(request, 'errors', request.session.get("errors", {}))
response = self.get_response(request)

# manage PUT, PATCH, DELETE redirections
if request.method in ["PUT", "PATCH", "DELETE"] and \
isinstance(response, HttpResponseRedirect) and \
response.status_code == 302:
response.status_code = 303
return response
2 changes: 1 addition & 1 deletion inertia/share.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ def share_flash(request, success=False, error=False, errors=False):
request.session["error"] = error

if errors:
request.session["error"] = errors
request.session["errors"] = errors

# log.info(("share", success, error, errors))
share(request, "flash",{'success':success,'error':error})
Expand Down
18 changes: 17 additions & 1 deletion test.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import django
from django.conf import settings
from django.test import RequestFactory
from django.http import HttpResponse
from django.http import HttpResponse, HttpResponseRedirect
import os

settings.configure(
Expand Down Expand Up @@ -66,3 +66,19 @@ def test_middleware(self):
self.set_session(request)
response = InertiaMiddleware(view)(request)
self.assertTrue(response.status_code == 200, response.status_code)

def test_redirect_303_for_put_patch_delete_requests(self):
request = RequestFactory().put("/users/1")
self.set_session(request)
response = InertiaMiddleware(lambda x: HttpResponseRedirect(redirect_to="/users"))(request)
self.assertTrue(response.status_code==303, response.status_code)

request = RequestFactory().patch("/users/1")
self.set_session(request)
response = InertiaMiddleware(lambda x: HttpResponseRedirect(redirect_to="/users"))(request)
self.assertTrue(response.status_code==303, response.status_code)

request = RequestFactory().delete("/users/1")
self.set_session(request)
response = InertiaMiddleware(lambda x: HttpResponseRedirect(redirect_to="/users"))(request)
self.assertTrue(response.status_code==303, response.status_code)

0 comments on commit 1f8b77c

Please sign in to comment.