class ZuoraConnect::AppInstanceBase

def refresh(session = nil)

def refresh(session = nil)
  count ||= 0
  start = Time.now
  if self.api_version == "v1"
    response = HTTParty.get(ZuoraConnect.configuration.url + "/api/#{self.api_version}/tools/tasks/#{self.id}.json",:basic_auth => auth = {:username => self.username, :password => self.password})
  else
    response = HTTParty.get(ZuoraConnect.configuration.url + "/api/#{self.api_version}/tools/tasks/#{self.id}.json",:body => {:access_token => self.access_token})
  end
  response_time = Time.now - start
  Rails.logger.debug("[#{self.id}] REFRESHING - Connect Request Time #{response_time.round(2).to_s}")
  if response.code == 200
    @last_refresh = Time.now.to_i
    build_task(JSON.parse(response.body), session)
  else
    raise ZuoraConnect::Exceptions::ConnectCommunicationError.new("Error Communicating with Connect", response.body, response.code)
  end
rescue
  if self.api_version == "v2" && count < 2 && response.code == 401
    self.refresh_oauth
    count += 1
    retry
  else
    raise
  end
end