Class: GH::TokenCheck

Inherits:
Wrapper show all
Defined in:
lib/gh/token_check.rb

Instance Attribute Summary collapse

Attributes inherited from Wrapper

#backend, #frontend, #options

Instance Method Summary collapse

Methods inherited from Wrapper

#[], [], double_dispatch, #generate_response, #initialize, #inspect, #load, #prefixed, #reset, wraps

Constructor Details

This class inherits a constructor from GH::Wrapper

Instance Attribute Details

#client_idObject

Returns the value of attribute client_id.



8
9
10
# File 'lib/gh/token_check.rb', line 8

def client_id
  @client_id
end

#client_secretObject

Returns the value of attribute client_secret.



8
9
10
# File 'lib/gh/token_check.rb', line 8

def client_secret
  @client_secret
end

#tokenObject

Returns the value of attribute token.



8
9
10
# File 'lib/gh/token_check.rb', line 8

def token
  @token
end

Instance Method Details

#check_tokenObject



18
19
20
21
22
23
24
25
26
27
28
# File 'lib/gh/token_check.rb', line 18

def check_token
  return unless @check_token && client_id && client_secret && token

  @check_token = false

  auth_header = 'Basic %s' % Base64.strict_encode64("#{client_id}:#{client_secret}")
  http :post, path_for("/applications/#{client_id}/token"), body: "{\"access_token\": \"#{token}\"}",
                                                            'Authorization' => auth_header
rescue GH::Error(response_status: 404) => e
  raise GH::TokenInvalid, e
end

#httpObject



30
31
32
33
# File 'lib/gh/token_check.rb', line 30

def http(*)
  check_token
  super
end

#setup(backend, options) ⇒ Object



10
11
12
13
14
15
16
# File 'lib/gh/token_check.rb', line 10

def setup(backend, options)
  @client_secret = options[:client_secret]
  @client_id = options[:client_id]
  @token = options[:token]
  @check_token = true
  super
end