Class: CleverSDK::Authentication

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(configuration = CleverSDK.configuration) {|configuration| ... } ⇒ Authentication

Returns a new instance of Authentication.

Yields:



13
14
15
16
17
# File 'lib/clever_sdk/authentication.rb', line 13

def initialize(configuration = CleverSDK.configuration)
  yield configuration if block_given?

  @configuration = configuration
end

Instance Attribute Details

#configurationObject

Returns the value of attribute configuration.



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

def configuration
  @configuration
end

Instance Method Details

#inspectObject



63
64
65
# File 'lib/clever_sdk/authentication.rb', line 63

def inspect
  "#<#{self.class.name}:0x#{(object_id * 2).to_s(16).rjust(16, "0")}>"
end

#me(access_token) ⇒ Object



42
43
44
45
46
# File 'lib/clever_sdk/authentication.rb', line 42

def me(access_token)
  response = Api.new.me(access_token: access_token)
  data = response.body.dig("data")
  CleverSDK::Data::Me.new(data, response)
end

#sso(code) ⇒ Object



48
49
50
51
52
53
54
55
56
57
# File 'lib/clever_sdk/authentication.rb', line 48

def sso(code)
  response = Api.new.tokens!(
    code: code,
    grant_type: "authorization_code",
    client_id: configuration.client_id,
    client_secret: configuration.client_secret,
    redirect_uri: configuration.redirect_uri
  )
  CleverSDK::Data::SSO.new(code, response)
end

#sso_redirect_uriObject



59
60
61
# File 'lib/clever_sdk/authentication.rb', line 59

def sso_redirect_uri
  "https://clever.com/oauth/authorize?response_type=code&redirect_uri=#{configuration.redirect_uri}&client_id=#{configuration.client_id}"
end

#token(district_id) ⇒ Object



27
28
29
30
31
32
33
34
35
# File 'lib/clever_sdk/authentication.rb', line 27

def token(district_id)
  response = Api.new.tokens(
    client_id: configuration.client_id,
    client_secret: configuration.client_secret,
    district: district_id
  )
  data = Array(response.body.dig("data")).first
  CleverSDK::Data::Token.new(data, response)
end

#tokeninfo(access_token) ⇒ Object



37
38
39
40
# File 'lib/clever_sdk/authentication.rb', line 37

def tokeninfo(access_token)
  response = Api.new.tokeninfo(access_token: access_token)
  CleverSDK::Data::Tokeninfo.new(response.body, response)
end

#tokensObject



19
20
21
22
23
24
25
# File 'lib/clever_sdk/authentication.rb', line 19

def tokens
  response = Api.new.tokens(
    client_id: configuration.client_id,
    client_secret: configuration.client_secret
  )
  CleverSDK::Data::Tokens.new(response)
end