class Singleplatform::Client
Constants
- BASE_URL
Attributes
base_url[RW]
client_id[RW]
client_secret[RW]
Public Class Methods
new(args = {})
click to toggle source
Initializes a new API Client
Object
@return [Singleplatform::Client]
# File lib/singleplatform/client.rb, line 23 def initialize(args = {}) @base_url = BASE_URL @client_id = args[:client_id] @client_secret = args[:client_secret] raise Error::MissingCredentialsError if credentials_missing? end
Private Instance Methods
credentials_missing?()
click to toggle source
Helper method to determine if credentials are missing and, if
so, raise Error::MissingCredentials
@return [Boolean]
# File lib/singleplatform/client.rb, line 58 def credentials_missing? client_id.nil? || client_secret.nil? end
generate_signature(base_string)
click to toggle source
Calculate the signature, Base64 and URL encode it
@param base_string [String] @return [String]
# File lib/singleplatform/client.rb, line 49 def generate_signature(base_string) key = OpenSSL::HMAC.digest('sha1', client_secret, base_string) CGI::escape(Base64.encode64(key).chomp) end
generate_url(path, params = {})
click to toggle source
Form the complete URL for a given endpoint
@note Signature must be the last parameter
@param path [String] @param params [Hash] @return [String]
# File lib/singleplatform/client.rb, line 39 def generate_url(path, params = {}) params['client'] ||= client_id signature_base_string = "#{path}?#{URI.encode_www_form(params)}" "#{base_url}#{signature_base_string}&signature=#{generate_signature(signature_base_string)}" end
valid_date?(date)
click to toggle source
Helper method to determine if a date is valid
@return [Boolean]
# File lib/singleplatform/client.rb, line 74 def valid_date?(date) return (not DateTime.parse(date).nil?) rescue StandardError => e return false end
valid_params?(*args)
click to toggle source
Helper method to determine if any number of params are nil,
empty or just spaces.
@return [Boolean]
# File lib/singleplatform/client.rb, line 66 def valid_params?(*args) args.map { |a| return false if a.nil? || a.to_s.gsub(/\s/, '').empty? } true end