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.



30973
30974
30975
30976
30977
30978
30979
30980
30981
30982
30983
30984
30985
30986
30987
30988
30989
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30973

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.



30971
30972
30973
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30971

def attributes
  @attributes
end

#environmentObject (readonly)

Returns the value of attribute environment.



30971
30972
30973
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30971

def environment
  @environment
end

#experienceObject (readonly)

Returns the value of attribute experience.



30971
30972
30973
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30971

def experience
  @experience
end

#experimentObject (readonly)

Returns the value of attribute experiment.



30971
30972
30973
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30971

def experiment
  @experiment
end

#formatObject (readonly)

Returns the value of attribute format.



30971
30972
30973
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30971

def format
  @format
end

#geoObject (readonly)

Returns the value of attribute geo.



30971
30972
30973
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30971

def geo
  @geo
end

#idObject (readonly)

Returns the value of attribute id.



30971
30972
30973
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30971

def id
  @id
end

#ipObject (readonly)

Returns the value of attribute ip.



30971
30972
30973
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30971

def ip
  @ip
end

#localObject (readonly)

Returns the value of attribute local.



30971
30972
30973
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30971

def local
  @local
end

#organizationObject (readonly)

Returns the value of attribute organization.



30971
30972
30973
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30971

def organization
  @organization
end

#visitObject (readonly)

Returns the value of attribute visit.



30971
30972
30973
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30971

def visit
  @visit
end

#visitorObject (readonly)

Returns the value of attribute visitor.



30971
30972
30973
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30971

def visitor
  @visitor
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



30995
30996
30997
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30995

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

#subtype_to_hashObject



30999
31000
31001
31002
31003
31004
31005
31006
31007
31008
31009
31010
31011
31012
31013
31014
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30999

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



30991
30992
30993
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30991

def to_json
  JSON.dump(to_hash)
end