Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
bcx-troggy / lib / bcx / response_error.rb
Size: Mime:
# ## Response Error
#
# If the response whilst fetching a resource is a 4xx or 5xx, Bcx will raise a `Bcx::ResponseError` exception.
#
# Examples:
#
#     client.projects.create!(name: '')
#     => Bcx::ResponseError: 422 POST https://basecamp.com/2274488/api/v1/projects.json | Errors: name can't be blank
#
# You can rescue this exception to grab the status, method, URL and errors individually.
#
#     begin
#       client.projects.create!(name: '')
#     rescue Bcx::ResponseError => response
#       response.method # => "POST"
#       response.status # => 422
#       response.url # => "https://basecamp.com/2274488/api/v1/projects.json"
#       response.errors # => ["name can't be blank"]
#     end
#
module Bcx
  class ResponseError < Rapidash::ResponseError

    def errors
      return body if body.kind_of?(String)

      messages = []

      body.each_pair do |attribute, msgs|
        msgs.each { |msg| messages.push "#{attribute} #{msg}" }
      end

      messages.join(', ')
    end

  end
end