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.



32893
32894
32895
32896
32897
32898
32899
32900
32901
32902
32903
32904
32905
32906
32907
32908
32909
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32893

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.



32891
32892
32893
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32891

def attributes
  @attributes
end

#environmentObject (readonly)

Returns the value of attribute environment.



32891
32892
32893
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32891

def environment
  @environment
end

#experienceObject (readonly)

Returns the value of attribute experience.



32891
32892
32893
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32891

def experience
  @experience
end

#experimentObject (readonly)

Returns the value of attribute experiment.



32891
32892
32893
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32891

def experiment
  @experiment
end

#formatObject (readonly)

Returns the value of attribute format.



32891
32892
32893
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32891

def format
  @format
end

#geoObject (readonly)

Returns the value of attribute geo.



32891
32892
32893
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32891

def geo
  @geo
end

#idObject (readonly)

Returns the value of attribute id.



32891
32892
32893
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32891

def id
  @id
end

#ipObject (readonly)

Returns the value of attribute ip.



32891
32892
32893
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32891

def ip
  @ip
end

#localObject (readonly)

Returns the value of attribute local.



32891
32892
32893
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32891

def local
  @local
end

#organizationObject (readonly)

Returns the value of attribute organization.



32891
32892
32893
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32891

def organization
  @organization
end

#visitObject (readonly)

Returns the value of attribute visit.



32891
32892
32893
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32891

def visit
  @visit
end

#visitorObject (readonly)

Returns the value of attribute visitor.



32891
32892
32893
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32891

def visitor
  @visitor
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



32915
32916
32917
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32915

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

#subtype_to_hashObject



32919
32920
32921
32922
32923
32924
32925
32926
32927
32928
32929
32930
32931
32932
32933
32934
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32919

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



32911
32912
32913
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32911

def to_json
  JSON.dump(to_hash)
end