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.



31351
31352
31353
31354
31355
31356
31357
31358
31359
31360
31361
31362
31363
31364
31365
31366
31367
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31351

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.



31349
31350
31351
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31349

def attributes
  @attributes
end

#environmentObject (readonly)

Returns the value of attribute environment.



31349
31350
31351
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31349

def environment
  @environment
end

#experienceObject (readonly)

Returns the value of attribute experience.



31349
31350
31351
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31349

def experience
  @experience
end

#experimentObject (readonly)

Returns the value of attribute experiment.



31349
31350
31351
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31349

def experiment
  @experiment
end

#formatObject (readonly)

Returns the value of attribute format.



31349
31350
31351
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31349

def format
  @format
end

#geoObject (readonly)

Returns the value of attribute geo.



31349
31350
31351
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31349

def geo
  @geo
end

#idObject (readonly)

Returns the value of attribute id.



31349
31350
31351
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31349

def id
  @id
end

#ipObject (readonly)

Returns the value of attribute ip.



31349
31350
31351
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31349

def ip
  @ip
end

#localObject (readonly)

Returns the value of attribute local.



31349
31350
31351
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31349

def local
  @local
end

#organizationObject (readonly)

Returns the value of attribute organization.



31349
31350
31351
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31349

def organization
  @organization
end

#visitObject (readonly)

Returns the value of attribute visit.



31349
31350
31351
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31349

def visit
  @visit
end

#visitorObject (readonly)

Returns the value of attribute visitor.



31349
31350
31351
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31349

def visitor
  @visitor
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



31373
31374
31375
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31373

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

#subtype_to_hashObject



31377
31378
31379
31380
31381
31382
31383
31384
31385
31386
31387
31388
31389
31390
31391
31392
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31377

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



31369
31370
31371
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31369

def to_json
  JSON.dump(to_hash)
end