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.



51241
51242
51243
51244
51245
51246
51247
51248
51249
51250
51251
51252
51253
51254
51255
51256
51257
51258
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 51241

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

Instance Attribute Details

#attributesObject (readonly)

Returns the value of attribute attributes.



51239
51240
51241
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 51239

def attributes
  @attributes
end

#contextObject (readonly)

Returns the value of attribute context.



51239
51240
51241
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 51239

def context
  @context
end

#environmentObject (readonly)

Returns the value of attribute environment.



51239
51240
51241
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 51239

def environment
  @environment
end

#experienceObject (readonly)

Returns the value of attribute experience.



51239
51240
51241
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 51239

def experience
  @experience
end

#experimentObject (readonly)

Returns the value of attribute experiment.



51239
51240
51241
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 51239

def experiment
  @experiment
end

#formatObject (readonly)

Returns the value of attribute format.



51239
51240
51241
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 51239

def format
  @format
end

#geoObject (readonly)

Returns the value of attribute geo.



51239
51240
51241
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 51239

def geo
  @geo
end

#idObject (readonly)

Returns the value of attribute id.



51239
51240
51241
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 51239

def id
  @id
end

#ipObject (readonly)

Returns the value of attribute ip.



51239
51240
51241
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 51239

def ip
  @ip
end

#localObject (readonly)

Returns the value of attribute local.



51239
51240
51241
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 51239

def local
  @local
end

#organizationObject (readonly)

Returns the value of attribute organization.



51239
51240
51241
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 51239

def organization
  @organization
end

#visitObject (readonly)

Returns the value of attribute visit.



51239
51240
51241
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 51239

def visit
  @visit
end

#visitorObject (readonly)

Returns the value of attribute visitor.



51239
51240
51241
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 51239

def visitor
  @visitor
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



51264
51265
51266
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 51264

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

#subtype_to_hashObject



51268
51269
51270
51271
51272
51273
51274
51275
51276
51277
51278
51279
51280
51281
51282
51283
51284
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 51268

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

#to_jsonObject



51260
51261
51262
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 51260

def to_json
  JSON.dump(to_hash)
end