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.



22626
22627
22628
22629
22630
22631
22632
22633
22634
22635
22636
22637
22638
22639
22640
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22626

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.



22624
22625
22626
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22624

def attributes
  @attributes
end

#environmentObject (readonly)

Returns the value of attribute environment.



22624
22625
22626
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22624

def environment
  @environment
end

#experienceObject (readonly)

Returns the value of attribute experience.



22624
22625
22626
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22624

def experience
  @experience
end

#geoObject (readonly)

Returns the value of attribute geo.



22624
22625
22626
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22624

def geo
  @geo
end

#idObject (readonly)

Returns the value of attribute id.



22624
22625
22626
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22624

def id
  @id
end

#ipObject (readonly)

Returns the value of attribute ip.



22624
22625
22626
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22624

def ip
  @ip
end

#localObject (readonly)

Returns the value of attribute local.



22624
22625
22626
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22624

def local
  @local
end

#organizationObject (readonly)

Returns the value of attribute organization.



22624
22625
22626
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22624

def organization
  @organization
end

#visitObject (readonly)

Returns the value of attribute visit.



22624
22625
22626
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22624

def visit
  @visit
end

#visitorObject (readonly)

Returns the value of attribute visitor.



22624
22625
22626
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22624

def visitor
  @visitor
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



22646
22647
22648
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22646

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

#subtype_to_hashObject



22650
22651
22652
22653
22654
22655
22656
22657
22658
22659
22660
22661
22662
22663
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22650

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



22642
22643
22644
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22642

def to_json
  JSON.dump(to_hash)
end