fix: error handling override kemal default response

This commit is contained in:
Juan Rodriguez
2024-07-14 11:19:59 +02:00
parent faedd0bc7a
commit 2f14cd82dd
2 changed files with 18 additions and 4 deletions
+18
View File
@@ -1,6 +1,15 @@
require "kemal"
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
def initialize(context, message : String)
context.response.content_type = "application/json"
@@ -46,3 +55,12 @@ module App
end
end
end
error 500 do |env|
App::InternalServerErrorException.new(env)
""
end
error 404 do |env|
""
end
-4
View File
@@ -11,8 +11,4 @@ require "./app/routes"
add_context_storage_type(App::Models::User)
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