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.



49141
49142
49143
49144
49145
49146
49147
49148
49149
49150
49151
49152
49153
49154
49155
49156
49157
49158
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 49141

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)))
  @context = (x = opts.delete(:context); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::ContextReference) ? x : ::Io::Flow::V0::Models::ContextReference.new(x)))
end

Instance Attribute Details

#attributesObject (readonly)

Returns the value of attribute attributes.



49139
49140
49141
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 49139

def attributes
  @attributes
end

#contextObject (readonly)

Returns the value of attribute context.



49139
49140
49141
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 49139

def context
  @context
end

#environmentObject (readonly)

Returns the value of attribute environment.



49139
49140
49141
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 49139

def environment
  @environment
end

#experienceObject (readonly)

Returns the value of attribute experience.



49139
49140
49141
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 49139

def experience
  @experience
end

#experimentObject (readonly)

Returns the value of attribute experiment.



49139
49140
49141
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 49139

def experiment
  @experiment
end

#formatObject (readonly)

Returns the value of attribute format.



49139
49140
49141
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 49139

def format
  @format
end

#geoObject (readonly)

Returns the value of attribute geo.



49139
49140
49141
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 49139

def geo
  @geo
end

#idObject (readonly)

Returns the value of attribute id.



49139
49140
49141
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 49139

def id
  @id
end

#ipObject (readonly)

Returns the value of attribute ip.



49139
49140
49141
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 49139

def ip
  @ip
end

#localObject (readonly)

Returns the value of attribute local.



49139
49140
49141
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 49139

def local
  @local
end

#organizationObject (readonly)

Returns the value of attribute organization.



49139
49140
49141
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 49139

def organization
  @organization
end

#visitObject (readonly)

Returns the value of attribute visit.



49139
49140
49141
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 49139

def visit
  @visit
end

#visitorObject (readonly)

Returns the value of attribute visitor.



49139
49140
49141
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 49139

def visitor
  @visitor
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



49164
49165
49166
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 49164

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

#subtype_to_hashObject



49168
49169
49170
49171
49172
49173
49174
49175
49176
49177
49178
49179
49180
49181
49182
49183
49184
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 49168

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,
    :context => context.nil? ? nil : context.to_hash
  }
end

#to_jsonObject



49160
49161
49162
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 49160

def to_json
  JSON.dump(to_hash)
end