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.



25419
25420
25421
25422
25423
25424
25425
25426
25427
25428
25429
25430
25431
25432
25433
25434
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 25419

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)))
  @format = (x = opts.delete(:format); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::SessionFormat) ? x : ::Io::Flow::V0::Models::SessionFormat.new(x)))
end

Instance Attribute Details

#attributesObject (readonly)

Returns the value of attribute attributes.



25417
25418
25419
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 25417

def attributes
  @attributes
end

#environmentObject (readonly)

Returns the value of attribute environment.



25417
25418
25419
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 25417

def environment
  @environment
end

#experienceObject (readonly)

Returns the value of attribute experience.



25417
25418
25419
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 25417

def experience
  @experience
end

#formatObject (readonly)

Returns the value of attribute format.



25417
25418
25419
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 25417

def format
  @format
end

#geoObject (readonly)

Returns the value of attribute geo.



25417
25418
25419
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 25417

def geo
  @geo
end

#idObject (readonly)

Returns the value of attribute id.



25417
25418
25419
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 25417

def id
  @id
end

#ipObject (readonly)

Returns the value of attribute ip.



25417
25418
25419
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 25417

def ip
  @ip
end

#localObject (readonly)

Returns the value of attribute local.



25417
25418
25419
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 25417

def local
  @local
end

#organizationObject (readonly)

Returns the value of attribute organization.



25417
25418
25419
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 25417

def organization
  @organization
end

#visitObject (readonly)

Returns the value of attribute visit.



25417
25418
25419
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 25417

def visit
  @visit
end

#visitorObject (readonly)

Returns the value of attribute visitor.



25417
25418
25419
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 25417

def visitor
  @visitor
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



25440
25441
25442
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 25440

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

#subtype_to_hashObject



25444
25445
25446
25447
25448
25449
25450
25451
25452
25453
25454
25455
25456
25457
25458
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 25444

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,
    :format => format.nil? ? nil : format.to_hash
  }
end

#to_jsonObject



25436
25437
25438
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 25436

def to_json
  JSON.dump(to_hash)
end