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.



37545
37546
37547
37548
37549
37550
37551
37552
37553
37554
37555
37556
37557
37558
37559
37560
37561
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 37545

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.



37543
37544
37545
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 37543

def attributes
  @attributes
end

#environmentObject (readonly)

Returns the value of attribute environment.



37543
37544
37545
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 37543

def environment
  @environment
end

#experienceObject (readonly)

Returns the value of attribute experience.



37543
37544
37545
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 37543

def experience
  @experience
end

#experimentObject (readonly)

Returns the value of attribute experiment.



37543
37544
37545
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 37543

def experiment
  @experiment
end

#formatObject (readonly)

Returns the value of attribute format.



37543
37544
37545
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 37543

def format
  @format
end

#geoObject (readonly)

Returns the value of attribute geo.



37543
37544
37545
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 37543

def geo
  @geo
end

#idObject (readonly)

Returns the value of attribute id.



37543
37544
37545
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 37543

def id
  @id
end

#ipObject (readonly)

Returns the value of attribute ip.



37543
37544
37545
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 37543

def ip
  @ip
end

#localObject (readonly)

Returns the value of attribute local.



37543
37544
37545
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 37543

def local
  @local
end

#organizationObject (readonly)

Returns the value of attribute organization.



37543
37544
37545
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 37543

def organization
  @organization
end

#visitObject (readonly)

Returns the value of attribute visit.



37543
37544
37545
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 37543

def visit
  @visit
end

#visitorObject (readonly)

Returns the value of attribute visitor.



37543
37544
37545
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 37543

def visitor
  @visitor
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



37567
37568
37569
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 37567

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

#subtype_to_hashObject



37571
37572
37573
37574
37575
37576
37577
37578
37579
37580
37581
37582
37583
37584
37585
37586
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 37571

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



37563
37564
37565
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 37563

def to_json
  JSON.dump(to_hash)
end