class ZuoraConnect::AppInstanceBase

def refresh(session: {})

def refresh(session: {})
  refresh_count ||= 0
  skip_connect ||= ZuoraConnect.configuration.skip_connect
  #Check how app was deployed
  if !self.auto_deployed? && (!skip_connect || self['zuora_logins'].blank?)
    self.fetch_connect_data(session: session)
  else
    self.build_task(task_data: self.zuora_logins, session: session)
  end
  self.last_refresh = Time.now.to_i
  self.cache_app_instance
  self.reset_mark_for_refresh
 
rescue => ex
  refresh_count += 1
  if self['zuora_logins'].present? && refresh_count < 3
    ZuoraConnect.logger.warn("REFRESH TASK - Fallback to local encrypted store", ex, self.default_ougai_items)
    skip_connect = true
    retry
  end
  raise
end