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.



42357
42358
42359
42360
42361
42362
42363
42364
42365
42366
42367
42368
42369
42370
42371
42372
42373
42374
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 42357

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.



42355
42356
42357
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 42355

def attributes
  @attributes
end

#contextObject (readonly)

Returns the value of attribute context.



42355
42356
42357
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 42355

def context
  @context
end

#environmentObject (readonly)

Returns the value of attribute environment.



42355
42356
42357
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 42355

def environment
  @environment
end

#experienceObject (readonly)

Returns the value of attribute experience.



42355
42356
42357
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 42355

def experience
  @experience
end

#experimentObject (readonly)

Returns the value of attribute experiment.



42355
42356
42357
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 42355

def experiment
  @experiment
end

#formatObject (readonly)

Returns the value of attribute format.



42355
42356
42357
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 42355

def format
  @format
end

#geoObject (readonly)

Returns the value of attribute geo.



42355
42356
42357
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 42355

def geo
  @geo
end

#idObject (readonly)

Returns the value of attribute id.



42355
42356
42357
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 42355

def id
  @id
end

#ipObject (readonly)

Returns the value of attribute ip.



42355
42356
42357
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 42355

def ip
  @ip
end

#localObject (readonly)

Returns the value of attribute local.



42355
42356
42357
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 42355

def local
  @local
end

#organizationObject (readonly)

Returns the value of attribute organization.



42355
42356
42357
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 42355

def organization
  @organization
end

#visitObject (readonly)

Returns the value of attribute visit.



42355
42356
42357
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 42355

def visit
  @visit
end

#visitorObject (readonly)

Returns the value of attribute visitor.



42355
42356
42357
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 42355

def visitor
  @visitor
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



42380
42381
42382
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 42380

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

#subtype_to_hashObject



42384
42385
42386
42387
42388
42389
42390
42391
42392
42393
42394
42395
42396
42397
42398
42399
42400
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 42384

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



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

def to_json
  JSON.dump(to_hash)
end