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.



22837
22838
22839
22840
22841
22842
22843
22844
22845
22846
22847
22848
22849
22850
22851
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22837

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.



22835
22836
22837
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22835

def attributes
  @attributes
end

#environmentObject (readonly)

Returns the value of attribute environment.



22835
22836
22837
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22835

def environment
  @environment
end

#experienceObject (readonly)

Returns the value of attribute experience.



22835
22836
22837
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22835

def experience
  @experience
end

#geoObject (readonly)

Returns the value of attribute geo.



22835
22836
22837
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22835

def geo
  @geo
end

#idObject (readonly)

Returns the value of attribute id.



22835
22836
22837
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22835

def id
  @id
end

#ipObject (readonly)

Returns the value of attribute ip.



22835
22836
22837
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22835

def ip
  @ip
end

#localObject (readonly)

Returns the value of attribute local.



22835
22836
22837
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22835

def local
  @local
end

#organizationObject (readonly)

Returns the value of attribute organization.



22835
22836
22837
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22835

def organization
  @organization
end

#visitObject (readonly)

Returns the value of attribute visit.



22835
22836
22837
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22835

def visit
  @visit
end

#visitorObject (readonly)

Returns the value of attribute visitor.



22835
22836
22837
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22835

def visitor
  @visitor
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



22857
22858
22859
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22857

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

#subtype_to_hashObject



22861
22862
22863
22864
22865
22866
22867
22868
22869
22870
22871
22872
22873
22874
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22861

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



22853
22854
22855
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22853

def to_json
  JSON.dump(to_hash)
end