Module: JSONAPI::Consumer::Errors

Defined in:
lib/jsonapi/consumer/errors.rb

Defined Under Namespace

Classes: ConnectionNotConfigured, RecordNotSaved, ResponseError, ServerNotResponding

Constant Summary collapse

BAD_REQUEST =

Error constants

400
NOT_AUTHORIZED =
401
FORBIDDEN =
403
NOT_FOUND =
404
METHOD_NOT_ALLOWED =
405
BAD_FORMAT =
406
REQUESTED_RANGE_NOT_SATISFIABLE =
416
UNPROCESSABLE_ENTITY =
422
INTERNAL_SERVER_ERROR =
500

Class Method Summary collapse

Class Method Details

.class_for_error_code(code) ⇒ Object

Returns the error class for a given error code. Default to InternalServerError.



83
84
85
86
# File 'lib/jsonapi/consumer/errors.rb', line 83

def class_for_error_code(code)
  name = error_constants.select { |k, v| v == code }.keys.first
  name.present? ? class_for_error_name(name) : Errors::InternalServerError
end

.class_for_error_name(name) ⇒ Object

Returns the error class for a given constant name. Default to InternalServerError.



76
77
78
79
# File 'lib/jsonapi/consumer/errors.rb', line 76

def class_for_error_name(name)
  class_name = class_name_for_error_name(name)
  const_defined?(class_name) ? Errors.const_get(class_name) : Errors::InternalServerError
end

.class_name_for_error_name(name) ⇒ Object

Returns a class name from a constant name.



70
71
72
# File 'lib/jsonapi/consumer/errors.rb', line 70

def class_name_for_error_name(name)
  name.to_s.titleize.gsub(' ', '')
end

.error_constantsObject

Returns a hash of error names to response codes.



61
62
63
64
65
66
67
# File 'lib/jsonapi/consumer/errors.rb', line 61

def error_constants
  constants.each_with_object({}) do |name, hash|
    # Ignore any class constants
    next if (code = Errors.const_get(name)).is_a?(Class)
    hash[name] = code
  end
end