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.



22611
22612
22613
22614
22615
22616
22617
22618
22619
22620
22621
22622
22623
22624
22625
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22611

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.



22609
22610
22611
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22609

def attributes
  @attributes
end

#environmentObject (readonly)

Returns the value of attribute environment.



22609
22610
22611
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22609

def environment
  @environment
end

#experienceObject (readonly)

Returns the value of attribute experience.



22609
22610
22611
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22609

def experience
  @experience
end

#geoObject (readonly)

Returns the value of attribute geo.



22609
22610
22611
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22609

def geo
  @geo
end

#idObject (readonly)

Returns the value of attribute id.



22609
22610
22611
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22609

def id
  @id
end

#ipObject (readonly)

Returns the value of attribute ip.



22609
22610
22611
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22609

def ip
  @ip
end

#localObject (readonly)

Returns the value of attribute local.



22609
22610
22611
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22609

def local
  @local
end

#organizationObject (readonly)

Returns the value of attribute organization.



22609
22610
22611
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22609

def organization
  @organization
end

#visitObject (readonly)

Returns the value of attribute visit.



22609
22610
22611
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22609

def visit
  @visit
end

#visitorObject (readonly)

Returns the value of attribute visitor.



22609
22610
22611
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22609

def visitor
  @visitor
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



22631
22632
22633
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22631

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

#subtype_to_hashObject



22635
22636
22637
22638
22639
22640
22641
22642
22643
22644
22645
22646
22647
22648
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22635

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



22627
22628
22629
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22627

def to_json
  JSON.dump(to_hash)
end