module Apress::Api::ApiController::Rescue
Private Instance Methods
bad_request(exception = nil)
click to toggle source
# File lib/apress/api/api_controller/rescue.rb, line 41 def bad_request(exception = nil) render_error(400, exception) end
forbidden(exception = nil)
click to toggle source
# File lib/apress/api/api_controller/rescue.rb, line 37 def forbidden(exception = nil) render_error(403, exception) end
log_error(exception)
click to toggle source
# File lib/apress/api/api_controller/rescue.rb, line 79 def log_error(exception) Rails.logger.error(exception.message) Rails.logger.error(exception.backtrace.join("/n")) if exception.backtrace.present? end
not_found(exception = nil)
click to toggle source
# File lib/apress/api/api_controller/rescue.rb, line 33 def not_found(exception = nil) render_error(404, exception) end
parameter_missing(exception)
click to toggle source
# File lib/apress/api/api_controller/rescue.rb, line 64 def parameter_missing(exception) @status = 400 @errors = [{exception.param => 'missing'}] render 'apress/api/shared/parameter_missing_errors', status: @status end
render_error(status, exception = nil)
click to toggle source
# File lib/apress/api/api_controller/rescue.rb, line 70 def render_error(status, exception = nil) @status = status @exception = exception log_error(exception) if exception render "apress/api/shared/error", status: status end
server_error(exception)
click to toggle source
# File lib/apress/api/api_controller/rescue.rb, line 29 def server_error(exception) render_error(500, exception) end
show_errors?()
click to toggle source
# File lib/apress/api/api_controller/rescue.rb, line 84 def show_errors? soft_environment? end
soft_environment?()
click to toggle source
# File lib/apress/api/api_controller/rescue.rb, line 88 def soft_environment? Rails.env.staging? || !Rails.env.production? end
unprocessable(exception_or_errors)
click to toggle source
# File lib/apress/api/api_controller/rescue.rb, line 49 def unprocessable(exception_or_errors) @status = 422 @errors = if exception_or_errors.respond_to?(:record) exception_or_errors.record.errors elsif exception_or_errors.is_a?(StandardError) {message: exception_or_errors.message} else exception_or_errors end @errors = Array.wrap(@errors) render 'apress/api/shared/unprocessable_errors', status: @status end