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.



22887
22888
22889
22890
22891
22892
22893
22894
22895
22896
22897
22898
22899
22900
22901
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22887

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)))
end

Instance Attribute Details

#attributesObject (readonly)

Returns the value of attribute attributes.



22885
22886
22887
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22885

def attributes
  @attributes
end

#environmentObject (readonly)

Returns the value of attribute environment.



22885
22886
22887
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22885

def environment
  @environment
end

#experienceObject (readonly)

Returns the value of attribute experience.



22885
22886
22887
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22885

def experience
  @experience
end

#geoObject (readonly)

Returns the value of attribute geo.



22885
22886
22887
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22885

def geo
  @geo
end

#idObject (readonly)

Returns the value of attribute id.



22885
22886
22887
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22885

def id
  @id
end

#ipObject (readonly)

Returns the value of attribute ip.



22885
22886
22887
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22885

def ip
  @ip
end

#localObject (readonly)

Returns the value of attribute local.



22885
22886
22887
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22885

def local
  @local
end

#organizationObject (readonly)

Returns the value of attribute organization.



22885
22886
22887
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22885

def organization
  @organization
end

#visitObject (readonly)

Returns the value of attribute visit.



22885
22886
22887
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22885

def visit
  @visit
end

#visitorObject (readonly)

Returns the value of attribute visitor.



22885
22886
22887
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22885

def visitor
  @visitor
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



22907
22908
22909
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22907

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

#subtype_to_hashObject



22911
22912
22913
22914
22915
22916
22917
22918
22919
22920
22921
22922
22923
22924
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22911

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
  }
end

#to_jsonObject



22903
22904
22905
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22903

def to_json
  JSON.dump(to_hash)
end