Class: CleverSDK::Data::SSO

Inherits:
Object
  • Object
show all
Defined in:
lib/clever_sdk/data/sso.rb

Overview

Represents the data returned from a successful call to CleverSDK::Authentication#sso.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(code, response) ⇒ SSO

private



14
15
16
17
# File 'lib/clever_sdk/data/sso.rb', line 14

def initialize(code, response)
  @code = code
  @response = response
end

Instance Attribute Details

#codeObject (readonly)

public



9
10
11
# File 'lib/clever_sdk/data/sso.rb', line 9

def code
  @code
end

#responseObject (readonly)

private



11
12
13
# File 'lib/clever_sdk/data/sso.rb', line 11

def response
  @response
end

Instance Method Details

#access_tokenObject



19
20
21
# File 'lib/clever_sdk/data/sso.rb', line 19

def access_token
  response.body.dig("access_token")
end

#inspectObject



35
36
37
# File 'lib/clever_sdk/data/sso.rb', line 35

def inspect
  "#<#{self.class.name}(#{code}) #{access_token}>"
end

#meObject



27
28
29
# File 'lib/clever_sdk/data/sso.rb', line 27

def me
  @me ||= CleverSDK.authentication.me(access_token)
end

#to_hObject



39
40
41
# File 'lib/clever_sdk/data/sso.rb', line 39

def to_h
  response.body.merge("code" => code, "me" => @me, "user" => @user).delete_if {|_k, v| v.nil?}
end

#token_typeObject



23
24
25
# File 'lib/clever_sdk/data/sso.rb', line 23

def token_type
  response.body.dig("token_type")
end

#userObject



31
32
33
# File 'lib/clever_sdk/data/sso.rb', line 31

def user
  @user ||= CleverSDK.client(access_token).user(me.id)
end