code: def make_duplicate_request(request):
      
      class FakeRequest(object):
          method = 'GET'
          path = request.path
          headers = request.headers
          GET = request.GET
          POST = request.POST
          user = getattr(request, 'user', None)
          cookies = request.cookies
          is_xhr = request.is_xhr
      return FakeRequest()
docs: Since werkzeug request objects are immutable, this is needed to create an
      identical reuet object with immutable values so it can be retried after a
      POST failure.