Class: Keywright::UserInfoRequest

Inherits:
Request
  • Object
show all
Defined in:
lib/keywright/user_info_request.rb

Instance Method Summary collapse

Methods inherited from Request

#initialize

Constructor Details

This class inherits a constructor from Keywright::Request

Instance Method Details

#submit(**arguments) ⇒ Object

The submit method makes a request to retrieve the OIDC userinfo given an access token.

Raises:

  • (ArgumentError)


7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/keywright/user_info_request.rb', line 7

def submit( **arguments )

  access_token = arguments[ :access_token ]
  raise ArgumentError.new( 'An access token is required.' ) if access_token.nil?

  userinfo_uri = arguments[ :userinfo_uri ] || @configuration[ :userinfo_uri ]
  raise ArgumentError.new( 'The userinfo uri must be provided or configured.' ) \
    unless UriHelpers.valid?( userinfo_uri )

  response = Keywright.connection.get( userinfo_uri ) do | request |
    request.headers[ 'Authorization' ] = "Bearer #{access_token}"
    yield( request ) if block_given?
  end

  body = JSON.parse( response.body, symbolize_names: true ) rescue nil 
  result = nil 
  if response.success?
    result = UserInfoResult.new( body )
  else 
    result = ErrorResult.new( response.status, body )
  end
  ResponseMethods.install( response, result )

end