lib/soaspec/o_auth2.rb in soaspec-0.1.10 vs lib/soaspec/o_auth2.rb in soaspec-0.1.11
- old
+ new
@@ -1,19 +1,27 @@
require 'erb'
module Soaspec
# Handles working with OAuth2
class OAuth2
+ class << self
+ # Default token url used across entire suite
+ attr_accessor :token_url
+ end
+
+ # [Hash] OAuth parameters
attr_accessor :params
# Count of tries to obtain access token
attr_accessor :retry_count
- # @param [Hash] params Parameters to make OAuth request
+ # @param [Hash] params_sent Parameters to make OAuth request
# @param [String] api_username Username to use which can be set by Soaspec::ExchangeHandler
- def initialize(params, api_username)
+ def initialize(params_sent, api_username = nil)
+ params = params_sent.transform_keys_to_symbols
+ params[:token_url] ||= Soaspec::OAuth2.token_url
raise 'client_id and client_secret not set' unless params[:client_id] && params[:client_secret]
- raise 'token_url mandatory' unless params[:token_url]
+ raise ArgumentError, 'token_url mandatory' unless params[:token_url]
self.params = params
params[:username] = api_username || ERB.new(params[:username]).result(binding) if params[:username]
params[:security_token] = ERB.new(params[:security_token]).result(binding) if params[:security_token]
params[:token_url] = ERB.new(params[:token_url]).result(binding) if params[:token_url]
params[:password] = ERB.new(params[:password]).result(binding) if params[:password]
@@ -60,8 +68,7 @@
}
else
{ grant_type: 'client_credentials' }
end)
end
-
end
end
\ No newline at end of file