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.



41106
41107
41108
41109
41110
41111
41112
41113
41114
41115
41116
41117
41118
41119
41120
41121
41122
41123
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41106

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.



41104
41105
41106
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41104

def attributes
  @attributes
end

#contextObject (readonly)

Returns the value of attribute context.



41104
41105
41106
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41104

def context
  @context
end

#environmentObject (readonly)

Returns the value of attribute environment.



41104
41105
41106
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41104

def environment
  @environment
end

#experienceObject (readonly)

Returns the value of attribute experience.



41104
41105
41106
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41104

def experience
  @experience
end

#experimentObject (readonly)

Returns the value of attribute experiment.



41104
41105
41106
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41104

def experiment
  @experiment
end

#formatObject (readonly)

Returns the value of attribute format.



41104
41105
41106
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41104

def format
  @format
end

#geoObject (readonly)

Returns the value of attribute geo.



41104
41105
41106
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41104

def geo
  @geo
end

#idObject (readonly)

Returns the value of attribute id.



41104
41105
41106
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41104

def id
  @id
end

#ipObject (readonly)

Returns the value of attribute ip.



41104
41105
41106
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41104

def ip
  @ip
end

#localObject (readonly)

Returns the value of attribute local.



41104
41105
41106
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41104

def local
  @local
end

#organizationObject (readonly)

Returns the value of attribute organization.



41104
41105
41106
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41104

def organization
  @organization
end

#visitObject (readonly)

Returns the value of attribute visit.



41104
41105
41106
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41104

def visit
  @visit
end

#visitorObject (readonly)

Returns the value of attribute visitor.



41104
41105
41106
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41104

def visitor
  @visitor
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



41129
41130
41131
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41129

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

#subtype_to_hashObject



41133
41134
41135
41136
41137
41138
41139
41140
41141
41142
41143
41144
41145
41146
41147
41148
41149
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41133

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



41125
41126
41127
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41125

def to_json
  JSON.dump(to_hash)
end