stripe_event 1.8.0 → 1.9.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.gitignore +2 -0
- data/.travis.yml +7 -3
- data/Appraisals +9 -0
- data/CHANGELOG.md +9 -0
- data/gemfiles/rails3.2.gemfile +2 -1
- data/gemfiles/rails4.1.gemfile +1 -1
- data/gemfiles/rails4.2.gemfile +1 -1
- data/gemfiles/rails5.0.gemfile +7 -0
- data/gemfiles/rails5.1.gemfile +7 -0
- data/lib/stripe_event.rb +4 -0
- data/lib/stripe_event/version.rb +1 -1
- data/spec/controllers/webhook_controller_spec.rb +16 -10
- data/spec/dummy/config/application.rb +6 -5
- data/spec/lib/stripe_event_spec.rb +18 -0
- data/stripe_event.gemspec +1 -1
- metadata +9 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 154ef1f07846c2b1a26499b02ed2119c3057636737d61ba6b9bcb234bc897782
|
4
|
+
data.tar.gz: ac4ea8924d5b8c037115131ae9d8e71f1f78a3dbd42da45b916e2584a76f4cdd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: aaff93b989d0ecbf55748c01f029f824802b323966bf2ce78e1dc2b7b607a88585bf76ff45b36eb309a3d00f261cc8c7f36643633d4b58e81332ccb0db9de5b2
|
7
|
+
data.tar.gz: 2afffbfd031029657a1ba839d6dd56c4c809d2e7ba639db27ef5a9c320a533011c93d8163dbe6c353e57db6b3219dc78716c8fc892b89ec04ed1acb6f6ef997f
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
@@ -3,17 +3,21 @@ cache: bundler
|
|
3
3
|
sudo: false
|
4
4
|
|
5
5
|
rvm:
|
6
|
-
- 2.2.
|
7
|
-
- 2.3.
|
6
|
+
- 2.2.8
|
7
|
+
- 2.3.5
|
8
8
|
|
9
9
|
gemfile:
|
10
10
|
- gemfiles/rails4.1.gemfile
|
11
11
|
- gemfiles/rails4.2.gemfile
|
12
|
+
- gemfiles/rails5.0.gemfile
|
13
|
+
- gemfiles/rails5.1.gemfile
|
12
14
|
|
13
15
|
matrix:
|
14
16
|
include:
|
15
|
-
- rvm: 2.1.
|
17
|
+
- rvm: 2.1.10
|
16
18
|
gemfile: gemfiles/rails3.2.gemfile
|
19
|
+
- rvm: 2.4.2
|
20
|
+
gemfile: gemfiles/rails5.1.gemfile
|
17
21
|
fast_finish: true
|
18
22
|
|
19
23
|
notifications:
|
data/Appraisals
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
appraise "rails3.2" do
|
2
2
|
gem "rails", "~> 3.2.0"
|
3
|
+
gem "test-unit", "~> 3.0"
|
3
4
|
end
|
4
5
|
|
5
6
|
appraise "rails4.1" do
|
@@ -9,3 +10,11 @@ end
|
|
9
10
|
appraise "rails4.2" do
|
10
11
|
gem "rails", "~> 4.2.0"
|
11
12
|
end
|
13
|
+
|
14
|
+
appraise "rails5.0" do
|
15
|
+
gem "rails", "~> 5.0.0"
|
16
|
+
end
|
17
|
+
|
18
|
+
appraise "rails5.1" do
|
19
|
+
gem "rails", "~> 5.1.0"
|
20
|
+
end
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
### 1.9.0 (November 30, 2017)
|
2
|
+
|
3
|
+
* Support for Rails 5.1 (#94, Thanks @krasnoukhov and @simplepractice!
|
4
|
+
|
5
|
+
### 1.8.0 (August 29, 2017)
|
6
|
+
|
7
|
+
* Support for [Stripe's Webhook Signature Verification](https://stripe.com/docs/webhooks#signatures) (#83, #90, Thanks @mikeycgto!)
|
8
|
+
* Secure compare during basic authentication check (#91, Thanks @mikeycgto!)
|
9
|
+
|
1
10
|
### 1.7.0 (July 5, 2017)
|
2
11
|
|
3
12
|
* Support stripe v3 gem as a dependency (#87)
|
data/gemfiles/rails3.2.gemfile
CHANGED
data/gemfiles/rails4.1.gemfile
CHANGED
data/gemfiles/rails4.2.gemfile
CHANGED
data/lib/stripe_event.rb
CHANGED
@@ -17,6 +17,10 @@ module StripeEvent
|
|
17
17
|
event = event_retriever.call(params)
|
18
18
|
rescue Stripe::AuthenticationError => e
|
19
19
|
if params[:type] == "account.application.deauthorized"
|
20
|
+
if defined?(ActionController::Parameters) && params.is_a?(ActionController::Parameters)
|
21
|
+
params = params.permit!.to_h
|
22
|
+
end
|
23
|
+
|
20
24
|
event = Stripe::Event.construct_from(params.deep_symbolize_keys)
|
21
25
|
else
|
22
26
|
raise UnauthorizedError.new(e)
|
data/lib/stripe_event/version.rb
CHANGED
@@ -1,14 +1,20 @@
|
|
1
1
|
require 'rails_helper'
|
2
2
|
require 'spec_helper'
|
3
3
|
|
4
|
-
describe StripeEvent::WebhookController do
|
4
|
+
describe StripeEvent::WebhookController, type: :controller do
|
5
5
|
def stub_event(identifier, status = 200)
|
6
6
|
stub_request(:get, "https://api.stripe.com/v1/events/#{identifier}").
|
7
7
|
to_return(status: status, body: File.read("spec/support/fixtures/#{identifier}.json"))
|
8
8
|
end
|
9
9
|
|
10
10
|
def webhook(params)
|
11
|
-
|
11
|
+
data = if Rails::VERSION::MAJOR > 4
|
12
|
+
{ params: params }
|
13
|
+
else
|
14
|
+
params
|
15
|
+
end
|
16
|
+
|
17
|
+
post :event, data
|
12
18
|
end
|
13
19
|
|
14
20
|
routes { StripeEvent::Engine.routes }
|
@@ -53,33 +59,33 @@ describe StripeEvent::WebhookController do
|
|
53
59
|
|
54
60
|
expect { webhook id: 'evt_charge_succeeded' }.to raise_error(Stripe::StripeError, /testing/)
|
55
61
|
end
|
56
|
-
|
62
|
+
|
57
63
|
context "with an authentication secret" do
|
58
64
|
def webhook_with_secret(secret, params)
|
59
65
|
request.env['HTTP_AUTHORIZATION'] = ActionController::HttpAuthentication::Basic.encode_credentials('user', secret)
|
60
66
|
webhook params
|
61
67
|
end
|
62
|
-
|
68
|
+
|
63
69
|
before(:each) { StripeEvent.authentication_secret = "secret" }
|
64
70
|
after(:each) { StripeEvent.authentication_secret = nil }
|
65
|
-
|
71
|
+
|
66
72
|
it "rejects requests with no secret" do
|
67
73
|
stub_event('evt_charge_succeeded')
|
68
|
-
|
74
|
+
|
69
75
|
webhook id: 'evt_charge_succeeded'
|
70
76
|
expect(response.code).to eq '401'
|
71
77
|
end
|
72
|
-
|
78
|
+
|
73
79
|
it "rejects requests with incorrect secret" do
|
74
80
|
stub_event('evt_charge_succeeded')
|
75
|
-
|
81
|
+
|
76
82
|
webhook_with_secret 'incorrect', id: 'evt_charge_succeeded'
|
77
83
|
expect(response.code).to eq '401'
|
78
84
|
end
|
79
|
-
|
85
|
+
|
80
86
|
it "accepts requests with correct secret" do
|
81
87
|
stub_event('evt_charge_succeeded')
|
82
|
-
|
88
|
+
|
83
89
|
webhook_with_secret 'secret', id: 'evt_charge_succeeded'
|
84
90
|
expect(response.code).to eq '200'
|
85
91
|
end
|
@@ -54,11 +54,12 @@ module Dummy
|
|
54
54
|
# parameters by using an attr_accessible or attr_protected declaration.
|
55
55
|
# config.active_record.whitelist_attributes = true
|
56
56
|
|
57
|
-
|
58
|
-
|
57
|
+
if config.respond_to?(:assets)
|
58
|
+
# Enable the asset pipeline
|
59
|
+
config.assets.enabled = true
|
59
60
|
|
60
|
-
|
61
|
-
|
61
|
+
# Version of your assets, change this if you want to expire all your assets
|
62
|
+
config.assets.version = '1.0'
|
63
|
+
end
|
62
64
|
end
|
63
65
|
end
|
64
|
-
|
@@ -83,6 +83,24 @@ describe StripeEvent do
|
|
83
83
|
expect(events.first[:type]).to eq 'account.application.deauthorized'
|
84
84
|
end
|
85
85
|
end
|
86
|
+
|
87
|
+
# Rails 5.1 uses ActionController::Parameters which is not inherited from
|
88
|
+
# ActiveSupport::HashWithIndifferentAccess anymore
|
89
|
+
if Rails::VERSION::MAJOR > 3
|
90
|
+
context "with a subscriber params with indifferent access (controller params)" do
|
91
|
+
it "calls the subscriber with the retrieved event" do
|
92
|
+
StripeEvent.subscribe('account.application.deauthorized', subscriber)
|
93
|
+
|
94
|
+
StripeEvent.instrument(ActionController::Parameters.new(
|
95
|
+
id: 'evt_account_application_deauthorized',
|
96
|
+
type: 'account.application.deauthorized'
|
97
|
+
))
|
98
|
+
|
99
|
+
expect(events.first.type).to eq 'account.application.deauthorized'
|
100
|
+
expect(events.first[:type]).to eq 'account.application.deauthorized'
|
101
|
+
end
|
102
|
+
end
|
103
|
+
end
|
86
104
|
end
|
87
105
|
|
88
106
|
describe "subscribing to a namespace of event types" do
|
data/stripe_event.gemspec
CHANGED
@@ -22,7 +22,7 @@ Gem::Specification.new do |s|
|
|
22
22
|
|
23
23
|
s.add_development_dependency "rails", [">= 3.1"]
|
24
24
|
s.add_development_dependency "rake", "< 11.0"
|
25
|
-
s.add_development_dependency "rspec-rails", "~>
|
25
|
+
s.add_development_dependency "rspec-rails", "~> 3.7"
|
26
26
|
s.add_development_dependency "webmock", "~> 1.9"
|
27
27
|
s.add_development_dependency "appraisal"
|
28
28
|
s.add_development_dependency "coveralls"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stripe_event
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Danny Whalen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-11-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -78,14 +78,14 @@ dependencies:
|
|
78
78
|
requirements:
|
79
79
|
- - "~>"
|
80
80
|
- !ruby/object:Gem::Version
|
81
|
-
version: '
|
81
|
+
version: '3.7'
|
82
82
|
type: :development
|
83
83
|
prerelease: false
|
84
84
|
version_requirements: !ruby/object:Gem::Requirement
|
85
85
|
requirements:
|
86
86
|
- - "~>"
|
87
87
|
- !ruby/object:Gem::Version
|
88
|
-
version: '
|
88
|
+
version: '3.7'
|
89
89
|
- !ruby/object:Gem::Dependency
|
90
90
|
name: webmock
|
91
91
|
requirement: !ruby/object:Gem::Requirement
|
@@ -149,6 +149,8 @@ files:
|
|
149
149
|
- gemfiles/rails3.2.gemfile
|
150
150
|
- gemfiles/rails4.1.gemfile
|
151
151
|
- gemfiles/rails4.2.gemfile
|
152
|
+
- gemfiles/rails5.0.gemfile
|
153
|
+
- gemfiles/rails5.1.gemfile
|
152
154
|
- lib/stripe_event.rb
|
153
155
|
- lib/stripe_event/engine.rb
|
154
156
|
- lib/stripe_event/version.rb
|
@@ -210,7 +212,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
210
212
|
version: '0'
|
211
213
|
requirements: []
|
212
214
|
rubyforge_project:
|
213
|
-
rubygems_version: 2.
|
215
|
+
rubygems_version: 2.7.0
|
214
216
|
signing_key:
|
215
217
|
specification_version: 4
|
216
218
|
summary: Stripe webhook integration for Rails applications.
|
@@ -219,6 +221,8 @@ test_files:
|
|
219
221
|
- gemfiles/rails3.2.gemfile
|
220
222
|
- gemfiles/rails4.1.gemfile
|
221
223
|
- gemfiles/rails4.2.gemfile
|
224
|
+
- gemfiles/rails5.0.gemfile
|
225
|
+
- gemfiles/rails5.1.gemfile
|
222
226
|
- spec/controllers/webhook_controller_spec.rb
|
223
227
|
- spec/dummy/README.rdoc
|
224
228
|
- spec/dummy/Rakefile
|