class ZuoraConnect::AppInstanceBase
def refresh(session = nil)
def refresh(session = nil) #Refresh token if already expired self.refresh_oauth if self.oauth_expired? count ||= 0 start = Time.now Rails.logger.info("[#{self.id}] REFRESHING - Get Task Info") response = HTTParty.get(ZuoraConnect.configuration.url + "/api/#{self.api_version}/tools/tasks/#{self.id}.json",:body => {:access_token => self.access_token}) response_time = Time.now - start Rails.logger.info("[#{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 Net::ReadTimeout, Net::OpenTimeout, Errno::EPIPE, Errno::ECONNRESET, Errno::ECONNREFUSED, SocketError if (count += 1) < 3 retry else raise end rescue ZuoraConnect::Exceptions::ConnectCommunicationError => ex if (count += 1) < 3 if ex.code == 401 self.refresh_oauth end retry else raise end end