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
response.status
response.url
response.errors
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