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.



21530
21531
21532
21533
21534
21535
21536
21537
21538
21539
21540
21541
21542
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21530

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

Instance Attribute Details

#attributesObject (readonly)

Returns the value of attribute attributes.



21528
21529
21530
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21528

def attributes
  @attributes
end

#environmentObject (readonly)

Returns the value of attribute environment.



21528
21529
21530
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21528

def environment
  @environment
end

#idObject (readonly)

Returns the value of attribute id.



21528
21529
21530
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21528

def id
  @id
end

#ipObject (readonly)

Returns the value of attribute ip.



21528
21529
21530
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21528

def ip
  @ip
end

#localObject (readonly)

Returns the value of attribute local.



21528
21529
21530
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21528

def local
  @local
end

#organizationObject (readonly)

Returns the value of attribute organization.



21528
21529
21530
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21528

def organization
  @organization
end

#visitObject (readonly)

Returns the value of attribute visit.



21528
21529
21530
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21528

def visit
  @visit
end

#visitorObject (readonly)

Returns the value of attribute visitor.



21528
21529
21530
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21528

def visitor
  @visitor
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



21548
21549
21550
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21548

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

#subtype_to_hashObject



21552
21553
21554
21555
21556
21557
21558
21559
21560
21561
21562
21563
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21552

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

#to_jsonObject



21544
21545
21546
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21544

def to_json
  JSON.dump(to_hash)
end