fix: error handling override kemal default response
This commit is contained in:
@@ -1,6 +1,15 @@
|
|||||||
require "kemal"
|
require "kemal"
|
||||||
|
|
||||||
module App
|
module App
|
||||||
|
class InternalServerErrorException < Kemal::Exceptions::CustomException
|
||||||
|
def initialize(context)
|
||||||
|
context.response.content_type = "application/json"
|
||||||
|
context.response.status_code = 500
|
||||||
|
context.response.print({ "error" => "Internal Server Error" }.to_json)
|
||||||
|
super(context)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
class BadRequestException < Kemal::Exceptions::CustomException
|
class BadRequestException < Kemal::Exceptions::CustomException
|
||||||
def initialize(context, message : String)
|
def initialize(context, message : String)
|
||||||
context.response.content_type = "application/json"
|
context.response.content_type = "application/json"
|
||||||
@@ -46,3 +55,12 @@ module App
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
error 500 do |env|
|
||||||
|
App::InternalServerErrorException.new(env)
|
||||||
|
""
|
||||||
|
end
|
||||||
|
|
||||||
|
error 404 do |env|
|
||||||
|
""
|
||||||
|
end
|
||||||
|
|||||||
@@ -11,8 +11,4 @@ require "./app/routes"
|
|||||||
add_context_storage_type(App::Models::User)
|
add_context_storage_type(App::Models::User)
|
||||||
add_handler(App::Middlewares::Auth.new)
|
add_handler(App::Middlewares::Auth.new)
|
||||||
|
|
||||||
error 500 { |env| {"error" => "Internal Server Error" }.to_json}
|
|
||||||
error 401 { |env| {"error" => "Unauthorized" }.to_json}
|
|
||||||
error 404 { |env| {"error" => "Not Found" }.to_json}
|
|
||||||
|
|
||||||
Kemal.run
|
Kemal.run
|
||||||
|
|||||||
Reference in New Issue
Block a user