class Helpscout::Api::Auth::Token
Attributes
access_token[R]
Public Class Methods
new(endpoint: 'https://api.helpscout.net/v2/oauth2/token', client_id:, client_secret:, expires_in: 300)
click to toggle source
# File lib/helpscout/api/auth/token.rb, line 12 def initialize(endpoint: 'https://api.helpscout.net/v2/oauth2/token', client_id:, client_secret:, expires_in: 300) @endpoint = endpoint @expires_in = Time.now + expires_in @credentials = URI.encode_www_form(client_id: client_id, client_secret: client_secret, grant_type: 'client_credentials') get_token end
Public Instance Methods
refresh()
click to toggle source
# File lib/helpscout/api/auth/token.rb, line 19 def refresh get_token if is_expired? || @access_token.nil? @access_token end
to_s()
click to toggle source
# File lib/helpscout/api/auth/token.rb, line 24 def to_s "Bearer #{@access_token}" end
Private Instance Methods
get_token()
click to toggle source
# File lib/helpscout/api/auth/token.rb, line 30 def get_token res = Net::HTTP.post(URI(@endpoint), @credentials, { 'Content-Type': 'application/x-www-form-urlencoded' }.freeze) parsed = JSON.parse(res.body) @expires_in = Time.now.to_i + parsed['expires_in'].to_i @access_token = parsed['access_token'] end
is_expired?()
click to toggle source
# File lib/helpscout/api/auth/token.rb, line 37 def is_expired? @expires_in.to_i <= Time.now.to_i end