Module: Shutl::Auth::AuthenticatedRequest

Defined in:
lib/shutl/auth/authenticated_request.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



20
21
22
# File 'lib/shutl/auth/authenticated_request.rb', line 20

def self.included base
  
end

Instance Method Details

#access_tokenObject



31
32
33
34
# File 'lib/shutl/auth/authenticated_request.rb', line 31

def access_token
  return read_token if read_token
  set_token request_access_token
end

#authenticated_request(&blk) ⇒ Object



36
37
38
39
40
41
42
43
44
45
# File 'lib/shutl/auth/authenticated_request.rb', line 36

def authenticated_request &blk
  begin
    yield
  rescue Shutl::UnauthorizedAccess => e
    Shutl::Auth.logger.debug "Shutl::UnauthorizedAccess - resetting access token"
    set_token nil
    access_token
    yield
  end
end

#cacheObject



55
56
57
# File 'lib/shutl/auth/authenticated_request.rb', line 55

def cache
  @cache ||= build_cache
end

#read_tokenObject



47
48
49
# File 'lib/shutl/auth/authenticated_request.rb', line 47

def read_token
  cache.read(:access_token)
end

#request_access_tokenObject



24
25
26
27
28
29
# File 'lib/shutl/auth/authenticated_request.rb', line 24

def request_access_token
  Shutl::Auth.logger.debug "request_access_token: cached? #{!!read_token}"

  Shutl::Auth.logger.debug "requesting new access token"
  Shutl::Auth.access_token!
end

#set_token(token) ⇒ Object



51
52
53
# File 'lib/shutl/auth/authenticated_request.rb', line 51

def set_token(token)
  cache.write(:access_token, token)
end