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.



29628
29629
29630
29631
29632
29633
29634
29635
29636
29637
29638
29639
29640
29641
29642
29643
29644
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 29628

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)))
end

Instance Attribute Details

#attributesObject (readonly)

Returns the value of attribute attributes.



29626
29627
29628
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 29626

def attributes
  @attributes
end

#environmentObject (readonly)

Returns the value of attribute environment.



29626
29627
29628
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 29626

def environment
  @environment
end

#experienceObject (readonly)

Returns the value of attribute experience.



29626
29627
29628
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 29626

def experience
  @experience
end

#experimentObject (readonly)

Returns the value of attribute experiment.



29626
29627
29628
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 29626

def experiment
  @experiment
end

#formatObject (readonly)

Returns the value of attribute format.



29626
29627
29628
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 29626

def format
  @format
end

#geoObject (readonly)

Returns the value of attribute geo.



29626
29627
29628
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 29626

def geo
  @geo
end

#idObject (readonly)

Returns the value of attribute id.



29626
29627
29628
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 29626

def id
  @id
end

#ipObject (readonly)

Returns the value of attribute ip.



29626
29627
29628
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 29626

def ip
  @ip
end

#localObject (readonly)

Returns the value of attribute local.



29626
29627
29628
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 29626

def local
  @local
end

#organizationObject (readonly)

Returns the value of attribute organization.



29626
29627
29628
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 29626

def organization
  @organization
end

#visitObject (readonly)

Returns the value of attribute visit.



29626
29627
29628
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 29626

def visit
  @visit
end

#visitorObject (readonly)

Returns the value of attribute visitor.



29626
29627
29628
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 29626

def visitor
  @visitor
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



29650
29651
29652
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 29650

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

#subtype_to_hashObject



29654
29655
29656
29657
29658
29659
29660
29661
29662
29663
29664
29665
29666
29667
29668
29669
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 29654

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
  }
end

#to_jsonObject



29646
29647
29648
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 29646

def to_json
  JSON.dump(to_hash)
end