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.



32273
32274
32275
32276
32277
32278
32279
32280
32281
32282
32283
32284
32285
32286
32287
32288
32289
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32273

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.



32271
32272
32273
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32271

def attributes
  @attributes
end

#environmentObject (readonly)

Returns the value of attribute environment.



32271
32272
32273
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32271

def environment
  @environment
end

#experienceObject (readonly)

Returns the value of attribute experience.



32271
32272
32273
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32271

def experience
  @experience
end

#experimentObject (readonly)

Returns the value of attribute experiment.



32271
32272
32273
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32271

def experiment
  @experiment
end

#formatObject (readonly)

Returns the value of attribute format.



32271
32272
32273
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32271

def format
  @format
end

#geoObject (readonly)

Returns the value of attribute geo.



32271
32272
32273
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32271

def geo
  @geo
end

#idObject (readonly)

Returns the value of attribute id.



32271
32272
32273
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32271

def id
  @id
end

#ipObject (readonly)

Returns the value of attribute ip.



32271
32272
32273
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32271

def ip
  @ip
end

#localObject (readonly)

Returns the value of attribute local.



32271
32272
32273
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32271

def local
  @local
end

#organizationObject (readonly)

Returns the value of attribute organization.



32271
32272
32273
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32271

def organization
  @organization
end

#visitObject (readonly)

Returns the value of attribute visit.



32271
32272
32273
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32271

def visit
  @visit
end

#visitorObject (readonly)

Returns the value of attribute visitor.



32271
32272
32273
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32271

def visitor
  @visitor
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



32295
32296
32297
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32295

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

#subtype_to_hashObject



32299
32300
32301
32302
32303
32304
32305
32306
32307
32308
32309
32310
32311
32312
32313
32314
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32299

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



32291
32292
32293
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32291

def to_json
  JSON.dump(to_hash)
end