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.



26900
26901
26902
26903
26904
26905
26906
26907
26908
26909
26910
26911
26912
26913
26914
26915
26916
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 26900

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.



26898
26899
26900
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 26898

def attributes
  @attributes
end

#environmentObject (readonly)

Returns the value of attribute environment.



26898
26899
26900
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 26898

def environment
  @environment
end

#experienceObject (readonly)

Returns the value of attribute experience.



26898
26899
26900
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 26898

def experience
  @experience
end

#experimentObject (readonly)

Returns the value of attribute experiment.



26898
26899
26900
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 26898

def experiment
  @experiment
end

#formatObject (readonly)

Returns the value of attribute format.



26898
26899
26900
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 26898

def format
  @format
end

#geoObject (readonly)

Returns the value of attribute geo.



26898
26899
26900
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 26898

def geo
  @geo
end

#idObject (readonly)

Returns the value of attribute id.



26898
26899
26900
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 26898

def id
  @id
end

#ipObject (readonly)

Returns the value of attribute ip.



26898
26899
26900
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 26898

def ip
  @ip
end

#localObject (readonly)

Returns the value of attribute local.



26898
26899
26900
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 26898

def local
  @local
end

#organizationObject (readonly)

Returns the value of attribute organization.



26898
26899
26900
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 26898

def organization
  @organization
end

#visitObject (readonly)

Returns the value of attribute visit.



26898
26899
26900
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 26898

def visit
  @visit
end

#visitorObject (readonly)

Returns the value of attribute visitor.



26898
26899
26900
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 26898

def visitor
  @visitor
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



26922
26923
26924
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 26922

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

#subtype_to_hashObject



26926
26927
26928
26929
26930
26931
26932
26933
26934
26935
26936
26937
26938
26939
26940
26941
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 26926

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



26918
26919
26920
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 26918

def to_json
  JSON.dump(to_hash)
end