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.



31972
31973
31974
31975
31976
31977
31978
31979
31980
31981
31982
31983
31984
31985
31986
31987
31988
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31972

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.



31970
31971
31972
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31970

def attributes
  @attributes
end

#environmentObject (readonly)

Returns the value of attribute environment.



31970
31971
31972
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31970

def environment
  @environment
end

#experienceObject (readonly)

Returns the value of attribute experience.



31970
31971
31972
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31970

def experience
  @experience
end

#experimentObject (readonly)

Returns the value of attribute experiment.



31970
31971
31972
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31970

def experiment
  @experiment
end

#formatObject (readonly)

Returns the value of attribute format.



31970
31971
31972
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31970

def format
  @format
end

#geoObject (readonly)

Returns the value of attribute geo.



31970
31971
31972
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31970

def geo
  @geo
end

#idObject (readonly)

Returns the value of attribute id.



31970
31971
31972
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31970

def id
  @id
end

#ipObject (readonly)

Returns the value of attribute ip.



31970
31971
31972
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31970

def ip
  @ip
end

#localObject (readonly)

Returns the value of attribute local.



31970
31971
31972
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31970

def local
  @local
end

#organizationObject (readonly)

Returns the value of attribute organization.



31970
31971
31972
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31970

def organization
  @organization
end

#visitObject (readonly)

Returns the value of attribute visit.



31970
31971
31972
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31970

def visit
  @visit
end

#visitorObject (readonly)

Returns the value of attribute visitor.



31970
31971
31972
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31970

def visitor
  @visitor
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



31994
31995
31996
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31994

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

#subtype_to_hashObject



31998
31999
32000
32001
32002
32003
32004
32005
32006
32007
32008
32009
32010
32011
32012
32013
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31998

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



31990
31991
31992
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31990

def to_json
  JSON.dump(to_hash)
end