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.



34567
34568
34569
34570
34571
34572
34573
34574
34575
34576
34577
34578
34579
34580
34581
34582
34583
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 34567

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.



34565
34566
34567
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 34565

def attributes
  @attributes
end

#environmentObject (readonly)

Returns the value of attribute environment.



34565
34566
34567
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 34565

def environment
  @environment
end

#experienceObject (readonly)

Returns the value of attribute experience.



34565
34566
34567
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 34565

def experience
  @experience
end

#experimentObject (readonly)

Returns the value of attribute experiment.



34565
34566
34567
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 34565

def experiment
  @experiment
end

#formatObject (readonly)

Returns the value of attribute format.



34565
34566
34567
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 34565

def format
  @format
end

#geoObject (readonly)

Returns the value of attribute geo.



34565
34566
34567
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 34565

def geo
  @geo
end

#idObject (readonly)

Returns the value of attribute id.



34565
34566
34567
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 34565

def id
  @id
end

#ipObject (readonly)

Returns the value of attribute ip.



34565
34566
34567
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 34565

def ip
  @ip
end

#localObject (readonly)

Returns the value of attribute local.



34565
34566
34567
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 34565

def local
  @local
end

#organizationObject (readonly)

Returns the value of attribute organization.



34565
34566
34567
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 34565

def organization
  @organization
end

#visitObject (readonly)

Returns the value of attribute visit.



34565
34566
34567
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 34565

def visit
  @visit
end

#visitorObject (readonly)

Returns the value of attribute visitor.



34565
34566
34567
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 34565

def visitor
  @visitor
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



34589
34590
34591
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 34589

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

#subtype_to_hashObject



34593
34594
34595
34596
34597
34598
34599
34600
34601
34602
34603
34604
34605
34606
34607
34608
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 34593

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



34585
34586
34587
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 34585

def to_json
  JSON.dump(to_hash)
end