class VIISP::Auth::Identity

Attributes

doc[R]

Public Class Methods

new(doc) click to toggle source
# File lib/viisp/auth/identity.rb, line 8
def initialize(doc)
  @doc = doc
end

Public Instance Methods

to_hash() click to toggle source
# File lib/viisp/auth/identity.rb, line 12
def to_hash
  {
    'authentication_provider' => element_text('authenticationProvider'),
    'attributes' => attributes,
    'user_information' => user_information,
    'custom_data' => element_text('customData'),
    'source_data' => source_data,
  }
end

Private Instance Methods

attributes() click to toggle source
# File lib/viisp/auth/identity.rb, line 24
def attributes
  pairs = doc.css('authenticationAttribute').map do |el|
    [el.at('attribute').text, el.at('value').text]
  end

  Hash[pairs]
end
element_text(element_name) click to toggle source
# File lib/viisp/auth/identity.rb, line 62
def element_text(element_name)
  doc.at(element_name)&.text
end
source_data() click to toggle source
# File lib/viisp/auth/identity.rb, line 41
def source_data
  return unless source_data_element

  {
    'type' => source_data_element.at('type').text,
    'parameters' => source_data_parameters,
  }
end
source_data_element() click to toggle source
# File lib/viisp/auth/identity.rb, line 50
def source_data_element
  @source_data_element ||= doc.at('sourceData')
end
source_data_parameters() click to toggle source
# File lib/viisp/auth/identity.rb, line 54
def source_data_parameters
  pairs = source_data_element.css('parameter').map do |el|
    [el.attr('name'), el.text]
  end

  Hash[pairs]
end
user_information() click to toggle source
# File lib/viisp/auth/identity.rb, line 32
def user_information
  pairs = doc.css('userInformation').map do |el|
    value = el.at('stringValue')&.text || el.at('dateValue')&.text
    [el.at('information').text, value]
  end

  Hash[pairs]
end