From 207f38251a40e37700af583824fd8373b1c4cbe7 Mon Sep 17 00:00:00 2001 From: Serdar Dogruyol Date: Mon, 5 Nov 2018 02:18:52 +0300 Subject: [PATCH] Remove Kemal::OverrideMethodHandler --- spec/override_method_handler_spec.cr | 29 ------------------------ src/kemal/override_method_handler.cr | 33 ---------------------------- 2 files changed, 62 deletions(-) delete mode 100644 spec/override_method_handler_spec.cr delete mode 100644 src/kemal/override_method_handler.cr diff --git a/spec/override_method_handler_spec.cr b/spec/override_method_handler_spec.cr deleted file mode 100644 index 2b34e29..0000000 --- a/spec/override_method_handler_spec.cr +++ /dev/null @@ -1,29 +0,0 @@ -require "./spec_helper" - -describe "Kemal::OverrideMethodHandler" do - it "does not override method without _method for POST requests" do - request = HTTP::Request.new( - "POST", - "/", - body: "_not_method=PATCH", - headers: HTTP::Headers{"Content-Type" => "application/x-www-form-urlencoded; charset=UTF-8"} - ) - - context = create_request_and_return_io_and_context(Kemal::OverrideMethodHandler::INSTANCE, request)[1] - - context.request.method.should eq "POST" - end - - it "overrides method with _method for POST requests" do - request = HTTP::Request.new( - "POST", - "/", - body: "_method=PATCH", - headers: HTTP::Headers{"Content-Type" => "application/x-www-form-urlencoded; charset=UTF-8"} - ) - - context = create_request_and_return_io_and_context(Kemal::OverrideMethodHandler::INSTANCE, request)[1] - - context.request.method.should eq "PATCH" - end -end diff --git a/src/kemal/override_method_handler.cr b/src/kemal/override_method_handler.cr deleted file mode 100644 index 523e9e6..0000000 --- a/src/kemal/override_method_handler.cr +++ /dev/null @@ -1,33 +0,0 @@ -module Kemal - # Adds support for `_method` magic parameter to simulate PUT, PATCH, DELETE requests in an html form. - # - # This middleware is **not** in the default Kemal handlers. You need to explicitly add this to your handlers: - # - # ```ruby - # add_handler Kemal::OverrideMethodHandler - # ``` - # - # **Important:** This middleware consumes `params.body` to read the `_method` magic parameter. - class OverrideMethodHandler - include HTTP::Handler - INSTANCE = new - - ALLOWED_METHODS = ["PUT", "PATCH", "DELETE"] - OVERRIDE_METHOD = "POST" - OVERRIDE_METHOD_PARAM_KEY = "_method" - - def call(context) - request = context.request - if request.method == OVERRIDE_METHOD - if context.params.body.has_key?(OVERRIDE_METHOD_PARAM_KEY) && override_method_valid?(context.params.body[OVERRIDE_METHOD_PARAM_KEY]) - request.method = context.params.body["_method"].upcase - end - end - call_next(context) - end - - private def override_method_valid?(override_method : String) - ALLOWED_METHODS.includes?(override_method.upcase) - end - end -end