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.



43381
43382
43383
43384
43385
43386
43387
43388
43389
43390
43391
43392
43393
43394
43395
43396
43397
43398
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 43381

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.



43379
43380
43381
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 43379

def attributes
  @attributes
end

#contextObject (readonly)

Returns the value of attribute context.



43379
43380
43381
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 43379

def context
  @context
end

#environmentObject (readonly)

Returns the value of attribute environment.



43379
43380
43381
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 43379

def environment
  @environment
end

#experienceObject (readonly)

Returns the value of attribute experience.



43379
43380
43381
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 43379

def experience
  @experience
end

#experimentObject (readonly)

Returns the value of attribute experiment.



43379
43380
43381
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 43379

def experiment
  @experiment
end

#formatObject (readonly)

Returns the value of attribute format.



43379
43380
43381
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 43379

def format
  @format
end

#geoObject (readonly)

Returns the value of attribute geo.



43379
43380
43381
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 43379

def geo
  @geo
end

#idObject (readonly)

Returns the value of attribute id.



43379
43380
43381
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 43379

def id
  @id
end

#ipObject (readonly)

Returns the value of attribute ip.



43379
43380
43381
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 43379

def ip
  @ip
end

#localObject (readonly)

Returns the value of attribute local.



43379
43380
43381
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 43379

def local
  @local
end

#organizationObject (readonly)

Returns the value of attribute organization.



43379
43380
43381
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 43379

def organization
  @organization
end

#visitObject (readonly)

Returns the value of attribute visit.



43379
43380
43381
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 43379

def visit
  @visit
end

#visitorObject (readonly)

Returns the value of attribute visitor.



43379
43380
43381
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 43379

def visitor
  @visitor
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



43404
43405
43406
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 43404

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

#subtype_to_hashObject



43408
43409
43410
43411
43412
43413
43414
43415
43416
43417
43418
43419
43420
43421
43422
43423
43424
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 43408

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



43400
43401
43402
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 43400

def to_json
  JSON.dump(to_hash)
end