class WmOktaHelper::GetUserGroups
Public Class Methods
new(options)
click to toggle source
# File lib/wm_okta_helper/get_user_groups.rb, line 7 def initialize(options) @user = options[:user] @okta_org = options[:okta_org] @okta_domain = options[:okta_domain] @api_key = options[:api_key] end
Public Instance Methods
call()
click to toggle source
# File lib/wm_okta_helper/get_user_groups.rb, line 14 def call okta_groups end
Private Instance Methods
endpoint()
click to toggle source
# File lib/wm_okta_helper/get_user_groups.rb, line 24 def endpoint "api/v1/users/#{@user}/groups" end
fetch_data()
click to toggle source
# File lib/wm_okta_helper/get_user_groups.rb, line 41 def fetch_data uri = URI.parse(site) req_options = { use_ssl: uri.scheme == 'https' } response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http| http.request(request) end response.body.present? ? JSON.parse(response.body) : [] end
okta_groups()
click to toggle source
# File lib/wm_okta_helper/get_user_groups.rb, line 32 def okta_groups groups = [] fetch_data.each do |g| group_name = g.dig('profile', 'name') groups << group_name if group_name.include?('otto_') end groups end
request()
click to toggle source
# File lib/wm_okta_helper/get_user_groups.rb, line 51 def request @request ||= Net::HTTP::Get.new(request_url) @request.content_type = 'application/json' @request['Accept'] = 'application/json' @request['Authorization'] = "SSWS #{@api_key}" @request end
request_url()
click to toggle source
# File lib/wm_okta_helper/get_user_groups.rb, line 28 def request_url URI("#{site}/#{endpoint}") end
site()
click to toggle source
# File lib/wm_okta_helper/get_user_groups.rb, line 20 def site "https://#{@okta_org}.#{@okta_domain}.com" end