def perform
      body = perform_action
      parser = parser_class.new(body)
      Conduit::ApiResponse.new(raw_response: @raw_response, body: body, parser: parser)
    rescue Braintree::NotFoundError => error
      report_braintree_exceptions(error)
    rescue ArgumentError => error
      respond_with_error(error.message)
    rescue Braintree::BraintreeError => error
      report_braintree_exceptions(error)
    rescue Net::ReadTimeout, Net::OpenTimeout, Errno::ETIMEDOUT
      respond_with_error("Braintree timeout")
    end
def perform
      body = perform_action
      parser = parser_class.new(body)
      Conduit::ApiResponse.new(raw_response: @raw_response, body: body, parser: parser)
    rescue Braintree::NotFoundError => error
      report_braintree_exceptions(error)
    rescue ArgumentError => error
      respond_with_error(error.message)
    rescue Braintree::BraintreeError => error
      report_braintree_exceptions(error)
    rescue Net::ReadTimeout, Net::OpenTimeout, Errno::ETIMEDOUT
      respond_with_error("Braintree timeout")
    end
Performs the request, with mocking if requested