Make 'additional_fields' optional in JSON error template functions

This allows us to de-duplicate functions
This commit is contained in:
Samantaz Fox 2022-01-19 22:15:43 +01:00
parent c7b74aa8b4
commit 2d949834e9
No known key found for this signature in database
GPG Key ID: F42821059186176E
1 changed files with 12 additions and 10 deletions

View File

@ -129,7 +129,12 @@ macro error_json(*args)
error_json_helper(env, {{*args}})
end
def error_json_helper(env : HTTP::Server::Context, status_code : Int32, exception : Exception, additional_fields : Hash(String, Object) | Nil)
def error_json_helper(
env : HTTP::Server::Context,
status_code : Int32,
exception : Exception,
additional_fields : Hash(String, Object) | Nil = nil
)
if exception.is_a?(InfoException)
return error_json_helper(env, status_code, exception.message || "", additional_fields)
end
@ -146,11 +151,12 @@ def error_json_helper(env : HTTP::Server::Context, status_code : Int32, exceptio
return error_message.to_json
end
def error_json_helper(env : HTTP::Server::Context, status_code : Int32, exception : Exception)
return error_json_helper(env, status_code, exception, nil)
end
def error_json_helper(env : HTTP::Server::Context, status_code : Int32, message : String, additional_fields : Hash(String, Object) | Nil)
def error_json_helper(
env : HTTP::Server::Context,
status_code : Int32,
message : String,
additional_fields : Hash(String, Object) | Nil = nil
)
env.response.content_type = "application/json"
env.response.status_code = status_code
@ -163,10 +169,6 @@ def error_json_helper(env : HTTP::Server::Context, status_code : Int32, message
return error_message.to_json
end
def error_json_helper(env : HTTP::Server::Context, status_code : Int32, message : String)
error_json_helper(env, status_code, message, nil)
end
# -------------------
# Redirect
# -------------------