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