Module: CapsuleCRM::Errors

Defined in:
lib/capsule_crm/errors.rb,
lib/capsule_crm/errors/record_invalid.rb,
lib/capsule_crm/errors/response_error.rb,
lib/capsule_crm/errors/record_not_saved.rb

Defined Under Namespace

Classes: RecordInvalid, RecordNotSaved, ResponseError

Constant Summary collapse

BAD_REQUEST =
400
NOT_AUTHORIZED =
401
NOT_FOUND =
404
INTERNAL_SERVER_ERROR =
500

Class Method Summary collapse

Class Method Details

.class_for_error_code(code) ⇒ Object



35
36
37
38
39
40
41
42
# File 'lib/capsule_crm/errors.rb', line 35

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

.class_for_error_name(name) ⇒ Object



26
27
28
29
30
31
32
33
# File 'lib/capsule_crm/errors.rb', line 26

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

.class_name_for_error_name(name) ⇒ Object



22
23
24
# File 'lib/capsule_crm/errors.rb', line 22

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

.error_constantsObject



11
12
13
14
15
16
# File 'lib/capsule_crm/errors.rb', line 11

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

.error_from_env(env) ⇒ Object



18
19
20
# File 'lib/capsule_crm/errors.rb', line 18

def error_from_env(env)
  class_for_error_code(env[:status]).new(env)
end