class Smileback::Client
Attributes
access_token[RW]
Public Class Methods
new(token:, refresh_token:, expires_at:, expires: true)
click to toggle source
# File lib/smileback.rb, line 15 def initialize(token:, refresh_token:, expires_at:, expires: true) self.class.base_uri Smileback.configuration.api_base_url @access_token = OAuth2::AccessToken.new( oauth2_client, token, { expires_at: expires_at, refresh_token: refresh_token } ) end
Public Instance Methods
credentials()
click to toggle source
Latest OAuth2 credentials based on access_token. The original token may need to be refreshed during usage, so always check here for the latest values when finished.
@return [Hash]
# File lib/smileback.rb, line 28 def credentials { token: access_token.token, refresh_token: access_token.refresh_token, expires_at: access_token.expires_at, expires: true } end
get(path, query = {})
click to toggle source
Make a GET request to the API.
@param path [String] endpoint; '/v3/reviews/' @param query [Hash] query params; { modified_since: '2017-10-27T07:43:15Z' } @return [HTTParty::Response]
# File lib/smileback.rb, line 42 def get(path, query = {}) refresh_access_token self.class.get(path, { headers: { Authorization: "Bearer #{access_token.token}" }, query: query }) end
Private Instance Methods
oauth2_client()
click to toggle source
# File lib/smileback.rb, line 53 def oauth2_client @oauth2_client ||= OAuth2::Client.new( Smileback.configuration.client_id, Smileback.configuration.client_secret, { token_url: "#{Smileback.configuration.api_base_url}/token/" } ) end
refresh_access_token()
click to toggle source
# File lib/smileback.rb, line 62 def refresh_access_token self.access_token = access_token.refresh! if access_token.expired? end