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.



21987
21988
21989
21990
21991
21992
21993
21994
21995
21996
21997
21998
21999
22000
22001
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21987

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)))
end

Instance Attribute Details

#attributesObject (readonly)

Returns the value of attribute attributes.



21985
21986
21987
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21985

def attributes
  @attributes
end

#environmentObject (readonly)

Returns the value of attribute environment.



21985
21986
21987
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21985

def environment
  @environment
end

#experienceObject (readonly)

Returns the value of attribute experience.



21985
21986
21987
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21985

def experience
  @experience
end

#geoObject (readonly)

Returns the value of attribute geo.



21985
21986
21987
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21985

def geo
  @geo
end

#idObject (readonly)

Returns the value of attribute id.



21985
21986
21987
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21985

def id
  @id
end

#ipObject (readonly)

Returns the value of attribute ip.



21985
21986
21987
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21985

def ip
  @ip
end

#localObject (readonly)

Returns the value of attribute local.



21985
21986
21987
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21985

def local
  @local
end

#organizationObject (readonly)

Returns the value of attribute organization.



21985
21986
21987
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21985

def organization
  @organization
end

#visitObject (readonly)

Returns the value of attribute visit.



21985
21986
21987
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21985

def visit
  @visit
end

#visitorObject (readonly)

Returns the value of attribute visitor.



21985
21986
21987
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21985

def visitor
  @visitor
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



22007
22008
22009
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22007

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

#subtype_to_hashObject



22011
22012
22013
22014
22015
22016
22017
22018
22019
22020
22021
22022
22023
22024
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22011

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
  }
end

#to_jsonObject



22003
22004
22005
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22003

def to_json
  JSON.dump(to_hash)
end