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.



25977
25978
25979
25980
25981
25982
25983
25984
25985
25986
25987
25988
25989
25990
25991
25992
25993
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 25977

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.



25975
25976
25977
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 25975

def attributes
  @attributes
end

#environmentObject (readonly)

Returns the value of attribute environment.



25975
25976
25977
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 25975

def environment
  @environment
end

#experienceObject (readonly)

Returns the value of attribute experience.



25975
25976
25977
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 25975

def experience
  @experience
end

#experimentObject (readonly)

Returns the value of attribute experiment.



25975
25976
25977
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 25975

def experiment
  @experiment
end

#formatObject (readonly)

Returns the value of attribute format.



25975
25976
25977
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 25975

def format
  @format
end

#geoObject (readonly)

Returns the value of attribute geo.



25975
25976
25977
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 25975

def geo
  @geo
end

#idObject (readonly)

Returns the value of attribute id.



25975
25976
25977
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 25975

def id
  @id
end

#ipObject (readonly)

Returns the value of attribute ip.



25975
25976
25977
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 25975

def ip
  @ip
end

#localObject (readonly)

Returns the value of attribute local.



25975
25976
25977
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 25975

def local
  @local
end

#organizationObject (readonly)

Returns the value of attribute organization.



25975
25976
25977
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 25975

def organization
  @organization
end

#visitObject (readonly)

Returns the value of attribute visit.



25975
25976
25977
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 25975

def visit
  @visit
end

#visitorObject (readonly)

Returns the value of attribute visitor.



25975
25976
25977
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 25975

def visitor
  @visitor
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



25999
26000
26001
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 25999

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

#subtype_to_hashObject



26003
26004
26005
26006
26007
26008
26009
26010
26011
26012
26013
26014
26015
26016
26017
26018
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 26003

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



25995
25996
25997
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 25995

def to_json
  JSON.dump(to_hash)
end