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.



21907
21908
21909
21910
21911
21912
21913
21914
21915
21916
21917
21918
21919
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21907

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.



21905
21906
21907
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21905

def attributes
  @attributes
end

#environmentObject (readonly)

Returns the value of attribute environment.



21905
21906
21907
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21905

def environment
  @environment
end

#idObject (readonly)

Returns the value of attribute id.



21905
21906
21907
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21905

def id
  @id
end

#ipObject (readonly)

Returns the value of attribute ip.



21905
21906
21907
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21905

def ip
  @ip
end

#localObject (readonly)

Returns the value of attribute local.



21905
21906
21907
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21905

def local
  @local
end

#organizationObject (readonly)

Returns the value of attribute organization.



21905
21906
21907
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21905

def organization
  @organization
end

#visitObject (readonly)

Returns the value of attribute visit.



21905
21906
21907
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21905

def visit
  @visit
end

#visitorObject (readonly)

Returns the value of attribute visitor.



21905
21906
21907
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21905

def visitor
  @visitor
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



21925
21926
21927
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21925

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

#subtype_to_hashObject



21929
21930
21931
21932
21933
21934
21935
21936
21937
21938
21939
21940
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21929

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



21921
21922
21923
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21921

def to_json
  JSON.dump(to_hash)
end