Class: Io::Flow::V0::Models::OrganizationSession

Inherits:
Session
  • Object
show all
Defined in:
lib/flow_commerce/flow_api_v0_client.rb

Overview

Represents a session created for an organization. Primary method to select an experience for a given user session and ensure that experience does not change throughout the user’s activity. Provides authentication to objects created during this session (e.g. order).

Instance Attribute Summary collapse

Attributes inherited from Session

#discriminator

Instance Method Summary collapse

Methods inherited from Session

from_json, #to_hash

Constructor Details

#initialize(incoming = {}) ⇒ OrganizationSession

Returns a new instance of OrganizationSession.



41742
41743
41744
41745
41746
41747
41748
41749
41750
41751
41752
41753
41754
41755
41756
41757
41758
41759
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41742

def initialize(incoming={})
  super(:discriminator => Session::Types::ORGANIZATION_SESSION)
  opts = HttpClient::Helper.symbolize_keys(incoming)
  HttpClient::Preconditions.require_keys(opts, [:id, :organization, :visitor, :visit, :environment, :attributes], 'OrganizationSession')
  @id = HttpClient::Preconditions.assert_class('id', opts.delete(:id), String)
  @organization = HttpClient::Preconditions.assert_class('organization', opts.delete(:organization), String)
  @visitor = (x = opts.delete(:visitor); x.is_a?(::Io::Flow::V0::Models::SessionVisitor) ? x : ::Io::Flow::V0::Models::SessionVisitor.new(x))
  @visit = (x = opts.delete(:visit); x.is_a?(::Io::Flow::V0::Models::SessionVisit) ? x : ::Io::Flow::V0::Models::SessionVisit.new(x))
  @environment = (x = opts.delete(:environment); x.is_a?(::Io::Flow::V0::Models::Environment) ? x : ::Io::Flow::V0::Models::Environment.apply(x))
  @attributes = HttpClient::Preconditions.assert_class('attributes', opts.delete(:attributes), Hash).inject({}) { |h, d| h[d[0]] = HttpClient::Preconditions.assert_class('attributes', d[1], String); h }
  @ip = (x = opts.delete(:ip); x.nil? ? nil : HttpClient::Preconditions.assert_class('ip', x, String))
  @local = (x = opts.delete(:local); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::LocalSession) ? x : ::Io::Flow::V0::Models::LocalSession.new(x)))
  @geo = (x = opts.delete(:geo); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::SessionGeo) ? x : ::Io::Flow::V0::Models::SessionGeo.new(x)))
  @experience = (x = opts.delete(:experience); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::ExperienceGeo) ? x : ::Io::Flow::V0::Models::ExperienceGeo.new(x)))
  @format = (x = opts.delete(:format); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::SessionFormat) ? x : ::Io::Flow::V0::Models::SessionFormat.new(x)))
  @experiment = (x = opts.delete(:experiment); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::SessionExperiment) ? x : ::Io::Flow::V0::Models::SessionExperiment.new(x)))
  @context = (x = opts.delete(:context); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::ContextReference) ? x : ::Io::Flow::V0::Models::ContextReference.new(x)))
end

Instance Attribute Details

#attributesObject (readonly)

Returns the value of attribute attributes.



41740
41741
41742
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41740

def attributes
  @attributes
end

#contextObject (readonly)

Returns the value of attribute context.



41740
41741
41742
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41740

def context
  @context
end

#environmentObject (readonly)

Returns the value of attribute environment.



41740
41741
41742
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41740

def environment
  @environment
end

#experienceObject (readonly)

Returns the value of attribute experience.



41740
41741
41742
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41740

def experience
  @experience
end

#experimentObject (readonly)

Returns the value of attribute experiment.



41740
41741
41742
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41740

def experiment
  @experiment
end

#formatObject (readonly)

Returns the value of attribute format.



41740
41741
41742
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41740

def format
  @format
end

#geoObject (readonly)

Returns the value of attribute geo.



41740
41741
41742
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41740

def geo
  @geo
end

#idObject (readonly)

Returns the value of attribute id.



41740
41741
41742
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41740

def id
  @id
end

#ipObject (readonly)

Returns the value of attribute ip.



41740
41741
41742
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41740

def ip
  @ip
end

#localObject (readonly)

Returns the value of attribute local.



41740
41741
41742
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41740

def local
  @local
end

#organizationObject (readonly)

Returns the value of attribute organization.



41740
41741
41742
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41740

def organization
  @organization
end

#visitObject (readonly)

Returns the value of attribute visit.



41740
41741
41742
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41740

def visit
  @visit
end

#visitorObject (readonly)

Returns the value of attribute visitor.



41740
41741
41742
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41740

def visitor
  @visitor
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



41765
41766
41767
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41765

def copy(incoming={})
  OrganizationSession.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
end

#subtype_to_hashObject



41769
41770
41771
41772
41773
41774
41775
41776
41777
41778
41779
41780
41781
41782
41783
41784
41785
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41769

def subtype_to_hash
  {
    :id => id,
    :organization => organization,
    :visitor => visitor.to_hash,
    :visit => visit.to_hash,
    :environment => environment.value,
    :attributes => attributes,
    :ip => ip,
    :local => local.nil? ? nil : local.to_hash,
    :geo => geo.nil? ? nil : geo.to_hash,
    :experience => experience.nil? ? nil : experience.to_hash,
    :format => format.nil? ? nil : format.to_hash,
    :experiment => experiment.nil? ? nil : experiment.to_hash,
    :context => context.nil? ? nil : context.to_hash
  }
end

#to_jsonObject



41761
41762
41763
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41761

def to_json
  JSON.dump(to_hash)
end