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



40272
40273
40274
40275
40276
40277
40278
40279
40280
40281
40282
40283
40284
40285
40286
40287
40288
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 40272

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.



40270
40271
40272
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 40270

def attributes
  @attributes
end

#environmentObject (readonly)

Returns the value of attribute environment.



40270
40271
40272
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 40270

def environment
  @environment
end

#experienceObject (readonly)

Returns the value of attribute experience.



40270
40271
40272
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 40270

def experience
  @experience
end

#experimentObject (readonly)

Returns the value of attribute experiment.



40270
40271
40272
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 40270

def experiment
  @experiment
end

#formatObject (readonly)

Returns the value of attribute format.



40270
40271
40272
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 40270

def format
  @format
end

#geoObject (readonly)

Returns the value of attribute geo.



40270
40271
40272
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 40270

def geo
  @geo
end

#idObject (readonly)

Returns the value of attribute id.



40270
40271
40272
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 40270

def id
  @id
end

#ipObject (readonly)

Returns the value of attribute ip.



40270
40271
40272
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 40270

def ip
  @ip
end

#localObject (readonly)

Returns the value of attribute local.



40270
40271
40272
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 40270

def local
  @local
end

#organizationObject (readonly)

Returns the value of attribute organization.



40270
40271
40272
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 40270

def organization
  @organization
end

#visitObject (readonly)

Returns the value of attribute visit.



40270
40271
40272
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 40270

def visit
  @visit
end

#visitorObject (readonly)

Returns the value of attribute visitor.



40270
40271
40272
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 40270

def visitor
  @visitor
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



40294
40295
40296
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 40294

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

#subtype_to_hashObject



40298
40299
40300
40301
40302
40303
40304
40305
40306
40307
40308
40309
40310
40311
40312
40313
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 40298

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



40290
40291
40292
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 40290

def to_json
  JSON.dump(to_hash)
end