class Api::Exception

Attributes

messages[RW]

Public Class Methods

error_constants() click to toggle source
# File lib/api/exception.rb, line 26
def error_constants
  {
    INTERNAL_SERVER_ERROR: {
      message: t(:internal_server_error),
      key: :internal_server_error,
      status_code: :internal_server_error
    },
    RECORD_NOT_FOUND: {
      message: t(:record_not_found),
      key: :record_not_found,
      status_code: :not_found
    },
    RECORD_INVALID: {
      message: t(:record_invalid),
      key: :record_invalid,
      status_code: :unprocessable_entity
    },
    RECORD_NOT_DESTROYED: {
      message: t(:record_not_destroyed),
      key: :record_not_destroyed,
      status_code: :forbidden
    },
    FORBIDDEN_RESOURCE: {
      message: t(:forbidden_resource),
      key: :forbidden_resource,
      status_code: :forbidden
    },
    UNAUTHORIZED_ACCESS: {
      message: t(:unauthorized_access),
      key: :unauthorized_access,
      status_code: :unauthorized
    }
  }
end
new(error_constant, messages = nil) click to toggle source
# File lib/api/exception.rb, line 10
def initialize(error_constant, messages = nil)
  @error_constant = error_constant
  @messages = {
    @error_constant[:key].to_s => [messages || @error_constant[:message]]
  }
end

Private Class Methods

t(key) click to toggle source
# File lib/api/exception.rb, line 63
def t(key)
  ::I18n.config.available_locales = :en
  ::I18n.t("api_response.messages.#{key}")
end

Public Instance Methods

full_messages() click to toggle source
# File lib/api/exception.rb, line 17
def full_messages
  @messages.values.flatten
end
status_code() click to toggle source
# File lib/api/exception.rb, line 21
def status_code
  @error_constant[:status_code]
end