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.



22681
22682
22683
22684
22685
22686
22687
22688
22689
22690
22691
22692
22693
22694
22695
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22681

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.



22679
22680
22681
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22679

def attributes
  @attributes
end

#environmentObject (readonly)

Returns the value of attribute environment.



22679
22680
22681
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22679

def environment
  @environment
end

#experienceObject (readonly)

Returns the value of attribute experience.



22679
22680
22681
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22679

def experience
  @experience
end

#geoObject (readonly)

Returns the value of attribute geo.



22679
22680
22681
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22679

def geo
  @geo
end

#idObject (readonly)

Returns the value of attribute id.



22679
22680
22681
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22679

def id
  @id
end

#ipObject (readonly)

Returns the value of attribute ip.



22679
22680
22681
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22679

def ip
  @ip
end

#localObject (readonly)

Returns the value of attribute local.



22679
22680
22681
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22679

def local
  @local
end

#organizationObject (readonly)

Returns the value of attribute organization.



22679
22680
22681
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22679

def organization
  @organization
end

#visitObject (readonly)

Returns the value of attribute visit.



22679
22680
22681
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22679

def visit
  @visit
end

#visitorObject (readonly)

Returns the value of attribute visitor.



22679
22680
22681
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22679

def visitor
  @visitor
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



22701
22702
22703
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22701

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

#subtype_to_hashObject



22705
22706
22707
22708
22709
22710
22711
22712
22713
22714
22715
22716
22717
22718
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22705

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



22697
22698
22699
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22697

def to_json
  JSON.dump(to_hash)
end