class ZuoraConnect::AppInstanceBase
def save_data(session = Hash.new)
def save_data(session = Hash.new) self.logins.each do |key, login| if login.tenant_type == "Zuora" if login.available_entities.size > 1 && Rails.application.config.session_store != ActionDispatch::Session::CookieStore login.available_entities.each do |entity_key| session["#{self.id}::#{key}::#{entity_key}:current_session"] = login.client(entity_key).current_session if login.client.respond_to?(:current_session) session["#{self.id}::#{key}::#{entity_key}:bearer_token"] = login.client(entity_key).bearer_token if login.client.respond_to?(:bearer_token) session["#{self.id}::#{key}::#{entity_key}:oauth_session_expires_at"] = login.client(entity_key).oauth_session_expires_at if login.client.respond_to?(:oauth_session_expires_at) end else session["#{self.id}::#{key}:current_session"] = login.client.current_session if login.client.respond_to?(:current_session) session["#{self.id}::#{key}:bearer_token"] = login.client.bearer_token if login.client.respond_to?(:bearer_token) session["#{self.id}::#{key}:oauth_session_expires_at"] = login.client.oauth_session_expires_at if login.client.respond_to?(:oauth_session_expires_at) end end end session["#{self.id}::task_data"] = self.task_data #Redis is not defined strip out old data if !defined?(Redis.current) session["#{self.id}::task_data"].delete('applications') session["#{self.id}::task_data"].delete('tenant_ids') session["#{self.id}::task_data"].delete('organizations') session["#{self.id}::task_data"].select {|k,v| k.include?('login') && v['tenant_type'] == 'Zuora'}.each do |login_key, login_data| session["#{self.id}::task_data"][login_key]['entities'] = (login_data.dig('entities') || []).map {|entity| entity.slice('id', 'tenantId')} end end session["#{self.id}::last_refresh"] = self.last_refresh session["appInstance"] = self.id return session end