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.



31047
31048
31049
31050
31051
31052
31053
31054
31055
31056
31057
31058
31059
31060
31061
31062
31063
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31047

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.



31045
31046
31047
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31045

def attributes
  @attributes
end

#environmentObject (readonly)

Returns the value of attribute environment.



31045
31046
31047
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31045

def environment
  @environment
end

#experienceObject (readonly)

Returns the value of attribute experience.



31045
31046
31047
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31045

def experience
  @experience
end

#experimentObject (readonly)

Returns the value of attribute experiment.



31045
31046
31047
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31045

def experiment
  @experiment
end

#formatObject (readonly)

Returns the value of attribute format.



31045
31046
31047
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31045

def format
  @format
end

#geoObject (readonly)

Returns the value of attribute geo.



31045
31046
31047
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31045

def geo
  @geo
end

#idObject (readonly)

Returns the value of attribute id.



31045
31046
31047
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31045

def id
  @id
end

#ipObject (readonly)

Returns the value of attribute ip.



31045
31046
31047
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31045

def ip
  @ip
end

#localObject (readonly)

Returns the value of attribute local.



31045
31046
31047
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31045

def local
  @local
end

#organizationObject (readonly)

Returns the value of attribute organization.



31045
31046
31047
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31045

def organization
  @organization
end

#visitObject (readonly)

Returns the value of attribute visit.



31045
31046
31047
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31045

def visit
  @visit
end

#visitorObject (readonly)

Returns the value of attribute visitor.



31045
31046
31047
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31045

def visitor
  @visitor
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



31069
31070
31071
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31069

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

#subtype_to_hashObject



31073
31074
31075
31076
31077
31078
31079
31080
31081
31082
31083
31084
31085
31086
31087
31088
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31073

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



31065
31066
31067
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31065

def to_json
  JSON.dump(to_hash)
end