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.



22701
22702
22703
22704
22705
22706
22707
22708
22709
22710
22711
22712
22713
22714
22715
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22701

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.



22699
22700
22701
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22699

def attributes
  @attributes
end

#environmentObject (readonly)

Returns the value of attribute environment.



22699
22700
22701
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22699

def environment
  @environment
end

#experienceObject (readonly)

Returns the value of attribute experience.



22699
22700
22701
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22699

def experience
  @experience
end

#geoObject (readonly)

Returns the value of attribute geo.



22699
22700
22701
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22699

def geo
  @geo
end

#idObject (readonly)

Returns the value of attribute id.



22699
22700
22701
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22699

def id
  @id
end

#ipObject (readonly)

Returns the value of attribute ip.



22699
22700
22701
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22699

def ip
  @ip
end

#localObject (readonly)

Returns the value of attribute local.



22699
22700
22701
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22699

def local
  @local
end

#organizationObject (readonly)

Returns the value of attribute organization.



22699
22700
22701
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22699

def organization
  @organization
end

#visitObject (readonly)

Returns the value of attribute visit.



22699
22700
22701
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22699

def visit
  @visit
end

#visitorObject (readonly)

Returns the value of attribute visitor.



22699
22700
22701
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22699

def visitor
  @visitor
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



22721
22722
22723
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22721

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

#subtype_to_hashObject



22725
22726
22727
22728
22729
22730
22731
22732
22733
22734
22735
22736
22737
22738
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22725

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



22717
22718
22719
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22717

def to_json
  JSON.dump(to_hash)
end