Module: ErrorResponse

Defined in:
lib/error_response.rb,
lib/error_response/helper.rb,
lib/error_response/configuration.rb,
lib/error_response/request_error.rb

Defined Under Namespace

Modules: Helper Classes: Configuration, RequestError

Constant Summary collapse

RESOLVER_KEYWORD_PARAMETER_TYPES =
%i[key keyreq keyrest].freeze

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.configurationObject



17
18
19
# File 'lib/error_response.rb', line 17

def configuration
  @configuration ||= Configuration.new
end

Class Method Details

.allObject



25
26
27
# File 'lib/error_response.rb', line 25

def all
  yaml_hash
end

.configure {|configuration| ... } ⇒ Object

Yields:



21
22
23
# File 'lib/error_response.rb', line 21

def configure
  yield(configuration)
end

.resolve_error_message(key:, error_message: nil, error_data: {}, context: nil) ⇒ Object



46
47
48
49
50
51
52
53
# File 'lib/error_response.rb', line 46

def resolve_error_message(key:, error_message: nil, error_data: {}, context: nil)
  resolver = configuration.error_message_resolver
  return error_message unless resolver.respond_to?(:call)

  call_resolver(resolver, key, error_message, error_data, context)
rescue StandardError
  error_message
end

.to_api(key, message = nil) ⇒ Object



35
36
37
38
39
40
41
42
43
44
# File 'lib/error_response.rb', line 35

def to_api(key, message = nil)
  json = deep_dup(yaml_hash)
  json = json[key.to_s] || { "error_code" => 500_000, "error_message" => key.to_s }
  json["error_key"] = key.to_s
  json["error_message"] += ": #{message}" unless message.nil?
  {
    status: parse_status(json["error_code"]),
    json: json
  }
end

.to_hash(key) ⇒ Object



29
30
31
32
33
# File 'lib/error_response.rb', line 29

def to_hash(key)
  return {} unless yaml_hash.key?(key.to_s)

  yaml_hash[key.to_s].merge({ "error_key" => key.to_s })
end