Class: GH::TokenCheck

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

Instance Attribute Summary collapse

Attributes inherited from Wrapper

#backend, #options

Instance Method Summary collapse

Methods inherited from Wrapper

[], #[], #frontend, #frontend=, #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.



6
7
8
# File 'lib/gh/token_check.rb', line 6

def client_id
  @client_id
end

#client_secretObject

Returns the value of attribute client_secret.



6
7
8
# File 'lib/gh/token_check.rb', line 6

def client_secret
  @client_secret
end

#tokenObject

Returns the value of attribute token.



6
7
8
# File 'lib/gh/token_check.rb', line 6

def token
  @token
end

Instance Method Details

#check_tokenObject



16
17
18
19
20
21
22
23
24
# File 'lib/gh/token_check.rb', line 16

def check_token
  return unless @check_token and client_id and client_secret and token
  @check_token = false

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

#httpObject



26
27
28
29
# File 'lib/gh/token_check.rb', line 26

def http(*)
  check_token
  super
end

#setup(backend, options) ⇒ Object



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

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