class Cubscout::Config
The Config
class allows for API client configuration. Basic setup:
require 'cubscout' Cubscout::Config.client_id = 'YOUR_APP_ID' Cubscout::Config.client_secret = 'YOUR_APP_SECRET'
Constants
- DEFAULT_API_PREFIX
Attributes
api_prefix[W]
client_id[W]
client_secret[W]
Public Class Methods
api_prefix()
click to toggle source
@return [String] Base url of Helpscout's API V2.
# File lib/cubscout/config.rb, line 17 def api_prefix @api_prefix ||= DEFAULT_API_PREFIX end
oauth_token()
click to toggle source
@return [String] OAuth token used in every request header:
+Authorization: Bearer #{Cubscout::Config.oauth_token}+
# File lib/cubscout/config.rb, line 31 def oauth_token access_token.token end
reset!()
click to toggle source
Resets client_id
, client_secret
, and oauth_client
to null values, api_prefix
to DEFAULT_API_PREFIX
# File lib/cubscout/config.rb, line 23 def reset! @client_id = @client_secret = nil @access_token = @oauth_client = nil @api_prefix = DEFAULT_API_PREFIX end
Private Class Methods
access_token()
click to toggle source
# File lib/cubscout/config.rb, line 37 def access_token if @access_token && @access_token.expires_at > Time.now.to_i + 30 return @access_token end @access_token = oauth_client.client_credentials.get_token end
oauth_client()
click to toggle source
# File lib/cubscout/config.rb, line 45 def oauth_client @oauth_client ||= begin unless @client_id && @client_secret raise ParameterMissing, <<~TEXT You need to provide a client_id and client secret that you can get from helpscout (In Your profile -> my Apps) Cubscout::Config.client_id = 'your-app-id-here' Cubscout::Config.client_secret = 'your-app-secret-here' TEXT end OAuth2::Client.new(@client_id, @client_secret, site: URI.join(api_prefix, '/').to_s, token_url: "#{URI::parse(api_prefix).path}/oauth2/token") end end