Module: Fog::Scaleway::Errors

Defined in:
lib/fog/scaleway/errors.rb

Class Method Summary collapse

Class Method Details

.decode_error(error) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/fog/scaleway/errors.rb', line 4

def self.decode_error(error)
  body = begin
           Fog::JSON.decode(error.response.body)
         rescue Fog::JSON::DecodeError
           nil
         end

  return if body.nil?

  type    = body['type']
  message = body['message']
  fields  = body['fields']

  return if type.nil? || message.nil?

  unless fields.nil?
    message << "\n"
    message << format_fields(fields)
  end

  { type: type, message: message }
end

.format_field(field, msgs) ⇒ Object



31
32
33
34
# File 'lib/fog/scaleway/errors.rb', line 31

def self.format_field(field, msgs)
  msgs = msgs.map { |msg| "\t\t- #{msg}" }
  "\t#{field}:\n#{msgs.join("\n")}"
end

.format_fields(fields) ⇒ Object



27
28
29
# File 'lib/fog/scaleway/errors.rb', line 27

def self.format_fields(fields)
  fields.map { |field, msgs| format_field(field, msgs) }.join("\n")
end