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.



26464
26465
26466
26467
26468
26469
26470
26471
26472
26473
26474
26475
26476
26477
26478
26479
26480
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 26464

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.



26462
26463
26464
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 26462

def attributes
  @attributes
end

#environmentObject (readonly)

Returns the value of attribute environment.



26462
26463
26464
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 26462

def environment
  @environment
end

#experienceObject (readonly)

Returns the value of attribute experience.



26462
26463
26464
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 26462

def experience
  @experience
end

#experimentObject (readonly)

Returns the value of attribute experiment.



26462
26463
26464
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 26462

def experiment
  @experiment
end

#formatObject (readonly)

Returns the value of attribute format.



26462
26463
26464
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 26462

def format
  @format
end

#geoObject (readonly)

Returns the value of attribute geo.



26462
26463
26464
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 26462

def geo
  @geo
end

#idObject (readonly)

Returns the value of attribute id.



26462
26463
26464
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 26462

def id
  @id
end

#ipObject (readonly)

Returns the value of attribute ip.



26462
26463
26464
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 26462

def ip
  @ip
end

#localObject (readonly)

Returns the value of attribute local.



26462
26463
26464
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 26462

def local
  @local
end

#organizationObject (readonly)

Returns the value of attribute organization.



26462
26463
26464
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 26462

def organization
  @organization
end

#visitObject (readonly)

Returns the value of attribute visit.



26462
26463
26464
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 26462

def visit
  @visit
end

#visitorObject (readonly)

Returns the value of attribute visitor.



26462
26463
26464
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 26462

def visitor
  @visitor
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



26486
26487
26488
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 26486

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

#subtype_to_hashObject



26490
26491
26492
26493
26494
26495
26496
26497
26498
26499
26500
26501
26502
26503
26504
26505
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 26490

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



26482
26483
26484
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 26482

def to_json
  JSON.dump(to_hash)
end