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.



42510
42511
42512
42513
42514
42515
42516
42517
42518
42519
42520
42521
42522
42523
42524
42525
42526
42527
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 42510

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.



42508
42509
42510
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 42508

def attributes
  @attributes
end

#contextObject (readonly)

Returns the value of attribute context.



42508
42509
42510
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 42508

def context
  @context
end

#environmentObject (readonly)

Returns the value of attribute environment.



42508
42509
42510
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 42508

def environment
  @environment
end

#experienceObject (readonly)

Returns the value of attribute experience.



42508
42509
42510
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 42508

def experience
  @experience
end

#experimentObject (readonly)

Returns the value of attribute experiment.



42508
42509
42510
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 42508

def experiment
  @experiment
end

#formatObject (readonly)

Returns the value of attribute format.



42508
42509
42510
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 42508

def format
  @format
end

#geoObject (readonly)

Returns the value of attribute geo.



42508
42509
42510
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 42508

def geo
  @geo
end

#idObject (readonly)

Returns the value of attribute id.



42508
42509
42510
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 42508

def id
  @id
end

#ipObject (readonly)

Returns the value of attribute ip.



42508
42509
42510
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 42508

def ip
  @ip
end

#localObject (readonly)

Returns the value of attribute local.



42508
42509
42510
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 42508

def local
  @local
end

#organizationObject (readonly)

Returns the value of attribute organization.



42508
42509
42510
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 42508

def organization
  @organization
end

#visitObject (readonly)

Returns the value of attribute visit.



42508
42509
42510
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 42508

def visit
  @visit
end

#visitorObject (readonly)

Returns the value of attribute visitor.



42508
42509
42510
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 42508

def visitor
  @visitor
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



42533
42534
42535
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 42533

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

#subtype_to_hashObject



42537
42538
42539
42540
42541
42542
42543
42544
42545
42546
42547
42548
42549
42550
42551
42552
42553
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 42537

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



42529
42530
42531
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 42529

def to_json
  JSON.dump(to_hash)
end