allow to set optional response body on redirects (#561)
This commit is contained in:
parent
4d6fb0614f
commit
b7506f6fab
2 changed files with 14 additions and 1 deletions
|
@ -118,6 +118,18 @@ describe "Kemal::RouteHandler" do
|
|||
request = HTTP::Request.new("GET", "/")
|
||||
client_response = call_request_on_app(request)
|
||||
client_response.status_code.should eq(302)
|
||||
client_response.body.should eq("")
|
||||
client_response.headers.has_key?("Location").should eq(true)
|
||||
end
|
||||
|
||||
it "redirects with body" do
|
||||
get "/" do |env|
|
||||
env.redirect "/login", body: "Redirecting to /login"
|
||||
end
|
||||
request = HTTP::Request.new("GET", "/")
|
||||
client_response = call_request_on_app(request)
|
||||
client_response.status_code.should eq(302)
|
||||
client_response.body.should eq("Redirecting to /login")
|
||||
client_response.headers.has_key?("Location").should eq(true)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -17,9 +17,10 @@ class HTTP::Server
|
|||
@params ||= Kemal::ParamParser.new(@request, route_lookup.params)
|
||||
end
|
||||
|
||||
def redirect(url : String, status_code : Int32 = 302)
|
||||
def redirect(url : String, status_code : Int32 = 302, *, body : String? = nil)
|
||||
@response.headers.add "Location", url
|
||||
@response.status_code = status_code
|
||||
@response.print(body) if body
|
||||
end
|
||||
|
||||
def route
|
||||
|
|
Loading…
Reference in a new issue