class ZuoraConnect::AppInstanceBase
def build_task(task_data: {}, session: {})
def build_task(task_data: {}, session: {}) session = {} if session.blank? self.task_data = task_data if self.task_data.blank? && ZuoraConnect.configuration.local_task_data self.task_data = self.zuora_logins end self.mode = self.task_data["mode"] if self.task_data['id'].to_s != self.id.to_s raise ZuoraConnect::Exceptions::MissMatch.new("Wrong Instance Identifier/Lookup") end self.task_data.each do |k,v| if k.match(/^(.*)_login$/) tmp = ZuoraConnect::Login.new(v) if v["tenant_type"] == "Zuora" if tmp.entities.size > 0 tmp.entities.each do |value| entity_id = value["id"] tmp.client(entity_id).current_session = session["#{self.id}::#{k}::#{entity_id}:current_session"] if session["#{self.id}::#{k}::#{entity_id}:current_session"] tmp.client(entity_id).bearer_token = session["#{self.id}::#{k}::#{entity_id}:bearer_token"] if session["#{self.id}::#{k}::#{entity_id}:bearer_token"] tmp.client(entity_id).oauth_session_expires_at = session["#{self.id}::#{k}::#{entity_id}:oauth_session_expires_at"] if session["#{self.id}::#{k}::#{entity_id}:oauth_session_expires_at"] end else tmp.client.current_session = session["#{self.id}::#{k}:current_session"] if session["#{self.id}::#{k}:current_session"] tmp.client.bearer_token = session["#{self.id}::#{k}:bearer_token"] if session["#{self.id}::#{k}:bearer_token"] && tmp.client.respond_to?(:bearer_token) ## need incase session id goes from basic to aouth in same redis store tmp.client.oauth_session_expires_at = session["#{self.id}::#{k}:oauth_session_expires_at"] if session["#{self.id}::#{k}:oauth_session_expires_at"] && tmp.client.respond_to?(:oauth_session_expires_at) end end self.logins[k] = tmp self.attr_builder(k, @logins[k]) elsif k == "options" v.each do |opt| self.options[opt["config_name"]] = opt end elsif k == "user_settings" self.timezone = v["timezone"] self.locale = v["local"] end end rescue ZuoraConnect::Exceptions::MissMatch => ex raise rescue ZuoraConnect::Exceptions::InvalidCredentialSet => ex raise rescue => ex ZuoraConnect.logger.error("Build Task Error", ex) ZuoraConnect.logger.error("Task Data: #{self.task_data}") if self.task_data.present? if session.present? ZuoraConnect.logger.error("Task Session: #{session.to_h}") if session.methods.include?(:to_h) ZuoraConnect.logger.error("Task Session: #{session.to_hash}") if session.methods.include?(:to_hash) end raise end