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.



39863
39864
39865
39866
39867
39868
39869
39870
39871
39872
39873
39874
39875
39876
39877
39878
39879
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 39863

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

Instance Attribute Details

#attributesObject (readonly)

Returns the value of attribute attributes.



39861
39862
39863
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 39861

def attributes
  @attributes
end

#environmentObject (readonly)

Returns the value of attribute environment.



39861
39862
39863
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 39861

def environment
  @environment
end

#experienceObject (readonly)

Returns the value of attribute experience.



39861
39862
39863
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 39861

def experience
  @experience
end

#experimentObject (readonly)

Returns the value of attribute experiment.



39861
39862
39863
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 39861

def experiment
  @experiment
end

#formatObject (readonly)

Returns the value of attribute format.



39861
39862
39863
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 39861

def format
  @format
end

#geoObject (readonly)

Returns the value of attribute geo.



39861
39862
39863
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 39861

def geo
  @geo
end

#idObject (readonly)

Returns the value of attribute id.



39861
39862
39863
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 39861

def id
  @id
end

#ipObject (readonly)

Returns the value of attribute ip.



39861
39862
39863
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 39861

def ip
  @ip
end

#localObject (readonly)

Returns the value of attribute local.



39861
39862
39863
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 39861

def local
  @local
end

#organizationObject (readonly)

Returns the value of attribute organization.



39861
39862
39863
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 39861

def organization
  @organization
end

#visitObject (readonly)

Returns the value of attribute visit.



39861
39862
39863
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 39861

def visit
  @visit
end

#visitorObject (readonly)

Returns the value of attribute visitor.



39861
39862
39863
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 39861

def visitor
  @visitor
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



39885
39886
39887
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 39885

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

#subtype_to_hashObject



39889
39890
39891
39892
39893
39894
39895
39896
39897
39898
39899
39900
39901
39902
39903
39904
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 39889

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

#to_jsonObject



39881
39882
39883
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 39881

def to_json
  JSON.dump(to_hash)
end