module Fog::Scaleway::Errors

Public Class Methods

decode_error(error) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# File lib/fog/scaleway/errors.rb, line 27
def self.format_fields(fields)
  fields.map { |field, msgs| format_field(field, msgs) }.join("\n")
end