# frozen_string_literal: true require "ruby-bandwidth-iris" module BandwidthIris class APIError < StandardError attr_reader :code def initialize(description:, code: nil) super(description) @code = code end end class Client # Expose useful error messages from the API instead of hiding them def check_response(response) parsed_body = parse_xml(response.body || "") return parsed_body unless response.status >= 400 raise APIError.new(**parsed_body[:error]) if parsed_body.key?(:error) raise Errors::GenericError.new( "", "Http code #{response.status}", response.status ) end end end