class WmOktaHelper::CreateSession

Attributes

okta_domain[RW]
okta_org[RW]
password[RW]
username[RW]

Public Class Methods

new(options) click to toggle source
# File lib/wm_okta_helper/create_session.rb, line 5
def initialize(options)
  @options = options
end

Public Instance Methods

call() click to toggle source
# File lib/wm_okta_helper/create_session.rb, line 9
def call
  check_options
  fail 'Not authorized' if response['sessionToken'].blank?
  response
end

Private Instance Methods

available_options() click to toggle source
# File lib/wm_okta_helper/create_session.rb, line 19
def available_options
  %i[username password okta_org okta_domain]
end
check_options() click to toggle source
# File lib/wm_okta_helper/create_session.rb, line 23
def check_options
  missing_options = available_options.select { |o| @options[o].blank? }
  if missing_options.present?
    fail "Missing configuration variable: #{missing_options}"
  end
  available_options.each do |o|
    instance_variable_set("@#{o}", @options[o])
  end
end
request_body() click to toggle source
# File lib/wm_okta_helper/create_session.rb, line 37
def request_body
  {
    username: username,
    password: password,
    options: {
      multiOptionalFactorEnroll: true,
      warnBeforePasswordExpired: true
    }
  }
end
response() click to toggle source
# File lib/wm_okta_helper/create_session.rb, line 48
def response
  @response ||= PostRequest.new(
    url: url,
    request_body: request_body
  ).call
end
url() click to toggle source
# File lib/wm_okta_helper/create_session.rb, line 33
def url
  "https://#{@okta_org}.#{@okta_domain}.com/api/v1/authn"
end