From a49265b6c5e3f8e806ff71af9b88938c9a2694ec Mon Sep 17 00:00:00 2001 From: Dolgishev Victor Date: Tue, 9 Jun 2015 23:18:03 +0300 Subject: [PATCH 1/3] fixes issue connected with absence of 'auth_token_params' --- lib/omniauth/strategies/square.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/omniauth/strategies/square.rb b/lib/omniauth/strategies/square.rb index 924e05e..d1681b3 100644 --- a/lib/omniauth/strategies/square.rb +++ b/lib/omniauth/strategies/square.rb @@ -36,7 +36,8 @@ def build_access_token parsed_response = fetch_access_token parsed_response['expires_at'] = Time.parse(parsed_response['expires_at']).to_i - parsed_response.merge!(deep_symbolize(options.auth_token_params)) + auth_token_params = options.auth_token_params || {} + parsed_response.merge!(deep_symbolize(auth_token_params)) connect_client = client.dup connect_client.site = options.client_options.connect_site From 94c711537c707d342d0326f0eea7ab4f5074b1cf Mon Sep 17 00:00:00 2001 From: Dolgishev Victor Date: Fri, 24 Jul 2015 14:24:14 +0300 Subject: [PATCH 2/3] adds parsing of `plan_id` parameter --- .gitignore | 1 + lib/omniauth/strategies/square.rb | 10 ++++++++++ omniauth-square.gemspec | 1 + spec/omniauth/strategies/square_spec.rb | 14 +++++++++++++- spec/spec_helper.rb | 1 + 5 files changed, 26 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 1a27888..d3f49c0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ *.gem .bundle +.idea Gemfile.lock pkg/* coverage diff --git a/lib/omniauth/strategies/square.rb b/lib/omniauth/strategies/square.rb index d1681b3..4539cf2 100644 --- a/lib/omniauth/strategies/square.rb +++ b/lib/omniauth/strategies/square.rb @@ -30,6 +30,16 @@ def raw_info @raw_info ||= access_token.get('/v1/me').parsed end + alias :old_request_phase :request_phase + + def request_phase + if request.params['plan_id'] + options[:authorize_params][:plan_id] = request.params['plan_id'] + end + + old_request_phase + end + protected def build_access_token diff --git a/omniauth-square.gemspec b/omniauth-square.gemspec index a8f18fb..03fd374 100644 --- a/omniauth-square.gemspec +++ b/omniauth-square.gemspec @@ -24,4 +24,5 @@ Gem::Specification.new do |s| s.add_development_dependency 'rack-test' s.add_development_dependency 'simplecov' s.add_development_dependency 'webmock' + s.add_development_dependency 'pry' end diff --git a/spec/omniauth/strategies/square_spec.rb b/spec/omniauth/strategies/square_spec.rb index 330a446..91a2c3f 100644 --- a/spec/omniauth/strategies/square_spec.rb +++ b/spec/omniauth/strategies/square_spec.rb @@ -2,7 +2,7 @@ describe OmniAuth::Strategies::Square do before :each do - @request = double('Request', :scheme => '', :url => '') + @request = double('Request', :scheme => '', :url => '', :params => {}, :cookies => {}, :env => {}) @request.stub(:params) { {} } end @@ -150,6 +150,18 @@ end end + describe '#request_phase' do + before do + @request.stub(:params).and_return('plan_id' => 'test_plan_id') + subject.stub(:old_request_phase).and_return(:something) + end + + it 'adds `plan_id` parameter to `authorize_params`' do + expect { subject.request_phase }.to change { subject.options.authorize_params.plan_id }. + from(nil).to('test_plan_id') + end + end + describe '#access_token_request_payload' do before do @request.stub(:params).and_return('code' => '11111') diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index c18d39e..4a70d94 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -5,6 +5,7 @@ require 'webmock/rspec' require 'omniauth' require 'omniauth-square' +require 'pry' RSpec.configure do |config| config.include WebMock::API From 022dca8eb2bac76e72c34635e261bb4ead7425e9 Mon Sep 17 00:00:00 2001 From: Dolgishev Victor Date: Fri, 24 Jul 2015 15:10:19 +0300 Subject: [PATCH 3/3] bumps version --- lib/omniauth-square/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/omniauth-square/version.rb b/lib/omniauth-square/version.rb index f28edae..340a66f 100644 --- a/lib/omniauth-square/version.rb +++ b/lib/omniauth-square/version.rb @@ -1,5 +1,5 @@ module Omniauth module Square - VERSION = "1.0.2" + VERSION = "1.0.3" end end