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.



55382
55383
55384
55385
55386
55387
55388
55389
55390
55391
55392
55393
55394
55395
55396
55397
55398
55399
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 55382

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.



55380
55381
55382
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 55380

def attributes
  @attributes
end

#contextObject (readonly)

Returns the value of attribute context.



55380
55381
55382
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 55380

def context
  @context
end

#environmentObject (readonly)

Returns the value of attribute environment.



55380
55381
55382
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 55380

def environment
  @environment
end

#experienceObject (readonly)

Returns the value of attribute experience.



55380
55381
55382
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 55380

def experience
  @experience
end

#experimentObject (readonly)

Returns the value of attribute experiment.



55380
55381
55382
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 55380

def experiment
  @experiment
end

#formatObject (readonly)

Returns the value of attribute format.



55380
55381
55382
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 55380

def format
  @format
end

#geoObject (readonly)

Returns the value of attribute geo.



55380
55381
55382
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 55380

def geo
  @geo
end

#idObject (readonly)

Returns the value of attribute id.



55380
55381
55382
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 55380

def id
  @id
end

#ipObject (readonly)

Returns the value of attribute ip.



55380
55381
55382
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 55380

def ip
  @ip
end

#localObject (readonly)

Returns the value of attribute local.



55380
55381
55382
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 55380

def local
  @local
end

#organizationObject (readonly)

Returns the value of attribute organization.



55380
55381
55382
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 55380

def organization
  @organization
end

#visitObject (readonly)

Returns the value of attribute visit.



55380
55381
55382
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 55380

def visit
  @visit
end

#visitorObject (readonly)

Returns the value of attribute visitor.



55380
55381
55382
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 55380

def visitor
  @visitor
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



55405
55406
55407
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 55405

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

#subtype_to_hashObject



55409
55410
55411
55412
55413
55414
55415
55416
55417
55418
55419
55420
55421
55422
55423
55424
55425
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 55409

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



55401
55402
55403
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 55401

def to_json
  JSON.dump(to_hash)
end