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.



42352
42353
42354
42355
42356
42357
42358
42359
42360
42361
42362
42363
42364
42365
42366
42367
42368
42369
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 42352

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.



42350
42351
42352
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 42350

def attributes
  @attributes
end

#contextObject (readonly)

Returns the value of attribute context.



42350
42351
42352
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 42350

def context
  @context
end

#environmentObject (readonly)

Returns the value of attribute environment.



42350
42351
42352
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 42350

def environment
  @environment
end

#experienceObject (readonly)

Returns the value of attribute experience.



42350
42351
42352
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 42350

def experience
  @experience
end

#experimentObject (readonly)

Returns the value of attribute experiment.



42350
42351
42352
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 42350

def experiment
  @experiment
end

#formatObject (readonly)

Returns the value of attribute format.



42350
42351
42352
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 42350

def format
  @format
end

#geoObject (readonly)

Returns the value of attribute geo.



42350
42351
42352
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 42350

def geo
  @geo
end

#idObject (readonly)

Returns the value of attribute id.



42350
42351
42352
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 42350

def id
  @id
end

#ipObject (readonly)

Returns the value of attribute ip.



42350
42351
42352
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 42350

def ip
  @ip
end

#localObject (readonly)

Returns the value of attribute local.



42350
42351
42352
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 42350

def local
  @local
end

#organizationObject (readonly)

Returns the value of attribute organization.



42350
42351
42352
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 42350

def organization
  @organization
end

#visitObject (readonly)

Returns the value of attribute visit.



42350
42351
42352
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 42350

def visit
  @visit
end

#visitorObject (readonly)

Returns the value of attribute visitor.



42350
42351
42352
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 42350

def visitor
  @visitor
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



42375
42376
42377
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 42375

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

#subtype_to_hashObject



42379
42380
42381
42382
42383
42384
42385
42386
42387
42388
42389
42390
42391
42392
42393
42394
42395
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 42379

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



42371
42372
42373
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 42371

def to_json
  JSON.dump(to_hash)
end