catarse_paypal_express 2.2.0 → 2.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/app/controllers/catarse_paypal_express/paypal_express_controller.rb +1 -22
- data/config/initializers/register.rb +3 -2
- data/config/routes.rb +0 -1
- data/lib/catarse_paypal_express.rb +2 -0
- data/lib/catarse_paypal_express/contribution_actions.rb +20 -0
- data/lib/catarse_paypal_express/gateway.rb +36 -0
- data/lib/catarse_paypal_express/version.rb +1 -1
- data/spec/controllers/catarse_paypal_express/paypal_express_controller_spec.rb +0 -15
- data/spec/lib/catarse_paypal_express/contribution_actions_spec.rb +41 -0
- data/test/dummy/config/database.yml +3 -0
- metadata +26 -36
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 07eed4533c5542caa215045ca70b7f41d716d322
|
4
|
+
data.tar.gz: 019bca2925c07d4c5bfcc43934b099d926f5d81e
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 18032dd6c34667a2b1ce5b5375cf7033e1c7926ee88f3be84b0933b88a7ba9c0750231b8b1d9903581cc19c042c55f742f318a37c6f6e6cc3bf9b7479f0bac36
|
7
|
+
data.tar.gz: a41ae452e1c547953a9316cc7f2d7742e5e637cb20ecfb0c4dc6ba988805baa1485e79acd2e2fe1eae474833d6f01abce5d304222501d0df2ee8b209f1412845
|
@@ -8,19 +8,6 @@ class CatarsePaypalExpress::PaypalExpressController < ApplicationController
|
|
8
8
|
def review
|
9
9
|
end
|
10
10
|
|
11
|
-
def refund
|
12
|
-
refund_request = gateway.refund(nil, contribution.payment_id)
|
13
|
-
|
14
|
-
|
15
|
-
if refund_request.success?
|
16
|
-
flash[:notice] = I18n.t('projects.contributions.refund.success')
|
17
|
-
else
|
18
|
-
flash[:alert] = refund_request.try(:message) || I18n.t('projects.contributions.refund.error')
|
19
|
-
end
|
20
|
-
|
21
|
-
redirect_to main_app.admin_contributions_path
|
22
|
-
end
|
23
|
-
|
24
11
|
def ipn
|
25
12
|
if contribution && notification.acknowledge && (contribution.payment_method == 'PayPal' || contribution.payment_method.nil?)
|
26
13
|
process_paypal_message params
|
@@ -115,15 +102,7 @@ class CatarsePaypalExpress::PaypalExpressController < ApplicationController
|
|
115
102
|
end
|
116
103
|
|
117
104
|
def gateway
|
118
|
-
|
119
|
-
@gateway ||= ActiveMerchant::Billing::PaypalExpressGateway.new({
|
120
|
-
login: PaymentEngines.configuration[:paypal_username],
|
121
|
-
password: PaymentEngines.configuration[:paypal_password],
|
122
|
-
signature: PaymentEngines.configuration[:paypal_signature]
|
123
|
-
})
|
124
|
-
else
|
125
|
-
puts "[PayPal] An API Certificate or API Signature is required to make requests to PayPal"
|
126
|
-
end
|
105
|
+
@gateway ||= CatarsePaypalExpress::Gateway.instance
|
127
106
|
end
|
128
107
|
|
129
108
|
protected
|
@@ -4,8 +4,9 @@ begin
|
|
4
4
|
review_path: ->(contribution) {
|
5
5
|
CatarsePaypalExpress::Engine.routes.url_helpers.review_paypal_express_path(contribution)
|
6
6
|
},
|
7
|
-
|
8
|
-
|
7
|
+
can_do_refund?: true,
|
8
|
+
direct_refund: ->(contribution) {
|
9
|
+
CatarsePaypalExpress::ContributionActions.new(contribution).refund
|
9
10
|
},
|
10
11
|
locale: 'en'
|
11
12
|
})
|
data/config/routes.rb
CHANGED
@@ -0,0 +1,20 @@
|
|
1
|
+
module CatarsePaypalExpress
|
2
|
+
class ContributionActions
|
3
|
+
|
4
|
+
def initialize contribution
|
5
|
+
@contribution = contribution
|
6
|
+
end
|
7
|
+
|
8
|
+
def refund
|
9
|
+
refund_request = gateway.refund(nil, @contribution.payment_id)
|
10
|
+
refund_request.success?
|
11
|
+
end
|
12
|
+
|
13
|
+
private
|
14
|
+
|
15
|
+
def gateway
|
16
|
+
@gateway ||= CatarsePaypalExpress::Gateway.instance
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
module CatarsePaypalExpress
|
2
|
+
class Gateway
|
3
|
+
include ActiveMerchant::Billing::Integrations
|
4
|
+
|
5
|
+
def initialize configuration = PaymentEngines.configuration
|
6
|
+
@configuration = configuration
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.instance
|
10
|
+
new.setup_gateway
|
11
|
+
rescue Exception => e
|
12
|
+
puts e.message
|
13
|
+
end
|
14
|
+
|
15
|
+
def setup_gateway
|
16
|
+
check_default_configurations!
|
17
|
+
ActiveMerchant::Billing::PaypalExpressGateway.new({
|
18
|
+
login: @configuration[:paypal_username],
|
19
|
+
password: @configuration[:paypal_password],
|
20
|
+
signature: @configuration[:paypal_signature]
|
21
|
+
})
|
22
|
+
end
|
23
|
+
|
24
|
+
private
|
25
|
+
|
26
|
+
def check_default_configurations!
|
27
|
+
%i(paypal_username paypal_password paypal_signature).each do |key|
|
28
|
+
raise pending_configuration_message unless @configuration[key].present?
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def pending_configuration_message
|
33
|
+
"[PayPal] An API Certificate or API Signature is required to make requests to PayPal"
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -41,21 +41,6 @@ describe CatarsePaypalExpress::PaypalExpressController do
|
|
41
41
|
payment_method: 'PayPal'
|
42
42
|
}) }
|
43
43
|
|
44
|
-
describe "POST refund" do
|
45
|
-
before do
|
46
|
-
success_refund = double
|
47
|
-
success_refund.stub(:success?).and_return(true)
|
48
|
-
|
49
|
-
main_app.should_receive(:admin_contributions_path).and_return('admin_contributions_path')
|
50
|
-
|
51
|
-
gateway.should_receive(:refund).with(nil, contribution.payment_id).and_return(success_refund)
|
52
|
-
|
53
|
-
post :refund, id: contribution.id, use_route: 'catarse_paypal_express'
|
54
|
-
end
|
55
|
-
|
56
|
-
it { should redirect_to('admin_contributions_path') }
|
57
|
-
end
|
58
|
-
|
59
44
|
describe "GET review" do
|
60
45
|
before do
|
61
46
|
get :review, id: contribution.id, use_route: 'catarse_paypal_express'
|
@@ -0,0 +1,41 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe CatarsePaypalExpress::ContributionActions do
|
4
|
+
let(:contribution_actions) { CatarsePaypalExpress::ContributionActions.new(contribution) }
|
5
|
+
let(:gateway) { double('gateway') }
|
6
|
+
let(:contribution) {
|
7
|
+
double(:contribution, {id: 1, payment_id: '123a'})
|
8
|
+
}
|
9
|
+
let(:refund_return) { double }
|
10
|
+
|
11
|
+
before do
|
12
|
+
CatarsePaypalExpress::Gateway.stub(:instance).and_return(gateway)
|
13
|
+
end
|
14
|
+
|
15
|
+
describe '#refund' do
|
16
|
+
subject do
|
17
|
+
contribution_actions.refund
|
18
|
+
end
|
19
|
+
|
20
|
+
before do
|
21
|
+
contribution_actions.should_receive(:gateway).and_call_original
|
22
|
+
gateway.should_receive(:refund).with(nil, contribution.payment_id).and_return(refund_return)
|
23
|
+
end
|
24
|
+
|
25
|
+
context "success refund" do
|
26
|
+
before do
|
27
|
+
refund_return.stub(:success?).and_return(true)
|
28
|
+
end
|
29
|
+
|
30
|
+
it { should be_true }
|
31
|
+
end
|
32
|
+
|
33
|
+
context "failed refund" do
|
34
|
+
before do
|
35
|
+
refund_return.stub(:success?).and_return(false)
|
36
|
+
end
|
37
|
+
|
38
|
+
it { should be_false }
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -9,6 +9,7 @@
|
|
9
9
|
# Choose the win32 build.
|
10
10
|
# Install PostgreSQL and put its /bin directory on your path.
|
11
11
|
development:
|
12
|
+
host: localhost
|
12
13
|
adapter: postgresql
|
13
14
|
encoding: utf-8
|
14
15
|
database: catarse_development
|
@@ -35,6 +36,7 @@ development:
|
|
35
36
|
# re-generated from your development database when you run "rake".
|
36
37
|
# Do not set this db to the same as development or production.
|
37
38
|
test: &test
|
39
|
+
host: localhost
|
38
40
|
adapter: postgresql
|
39
41
|
encoding: utf-8
|
40
42
|
database: catarse_test
|
@@ -43,6 +45,7 @@ test: &test
|
|
43
45
|
|
44
46
|
|
45
47
|
production:
|
48
|
+
host: localhost
|
46
49
|
adapter: postgresql
|
47
50
|
encoding: utf-8
|
48
51
|
database: catarse_production
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: catarse_paypal_express
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.2.
|
5
|
-
prerelease:
|
4
|
+
version: 2.2.1
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Antônio Roberto Silva
|
@@ -11,102 +10,90 @@ authors:
|
|
11
10
|
autorequire:
|
12
11
|
bindir: bin
|
13
12
|
cert_chain: []
|
14
|
-
date: 2014-
|
13
|
+
date: 2014-03-13 00:00:00.000000000 Z
|
15
14
|
dependencies:
|
16
15
|
- !ruby/object:Gem::Dependency
|
17
16
|
name: rails
|
18
17
|
requirement: !ruby/object:Gem::Requirement
|
19
|
-
none: false
|
20
18
|
requirements:
|
21
|
-
- - ~>
|
19
|
+
- - "~>"
|
22
20
|
- !ruby/object:Gem::Version
|
23
21
|
version: '4.0'
|
24
22
|
type: :runtime
|
25
23
|
prerelease: false
|
26
24
|
version_requirements: !ruby/object:Gem::Requirement
|
27
|
-
none: false
|
28
25
|
requirements:
|
29
|
-
- - ~>
|
26
|
+
- - "~>"
|
30
27
|
- !ruby/object:Gem::Version
|
31
28
|
version: '4.0'
|
32
29
|
- !ruby/object:Gem::Dependency
|
33
30
|
name: activemerchant
|
34
31
|
requirement: !ruby/object:Gem::Requirement
|
35
|
-
none: false
|
36
32
|
requirements:
|
37
|
-
- -
|
33
|
+
- - ">="
|
38
34
|
- !ruby/object:Gem::Version
|
39
35
|
version: 1.34.0
|
40
36
|
type: :runtime
|
41
37
|
prerelease: false
|
42
38
|
version_requirements: !ruby/object:Gem::Requirement
|
43
|
-
none: false
|
44
39
|
requirements:
|
45
|
-
- -
|
40
|
+
- - ">="
|
46
41
|
- !ruby/object:Gem::Version
|
47
42
|
version: 1.34.0
|
48
43
|
- !ruby/object:Gem::Dependency
|
49
44
|
name: slim-rails
|
50
45
|
requirement: !ruby/object:Gem::Requirement
|
51
|
-
none: false
|
52
46
|
requirements:
|
53
|
-
- -
|
47
|
+
- - ">="
|
54
48
|
- !ruby/object:Gem::Version
|
55
49
|
version: '0'
|
56
50
|
type: :runtime
|
57
51
|
prerelease: false
|
58
52
|
version_requirements: !ruby/object:Gem::Requirement
|
59
|
-
none: false
|
60
53
|
requirements:
|
61
|
-
- -
|
54
|
+
- - ">="
|
62
55
|
- !ruby/object:Gem::Version
|
63
56
|
version: '0'
|
64
57
|
- !ruby/object:Gem::Dependency
|
65
58
|
name: rspec-rails
|
66
59
|
requirement: !ruby/object:Gem::Requirement
|
67
|
-
none: false
|
68
60
|
requirements:
|
69
|
-
- - ~>
|
61
|
+
- - "~>"
|
70
62
|
- !ruby/object:Gem::Version
|
71
63
|
version: 2.14.0
|
72
64
|
type: :development
|
73
65
|
prerelease: false
|
74
66
|
version_requirements: !ruby/object:Gem::Requirement
|
75
|
-
none: false
|
76
67
|
requirements:
|
77
|
-
- - ~>
|
68
|
+
- - "~>"
|
78
69
|
- !ruby/object:Gem::Version
|
79
70
|
version: 2.14.0
|
80
71
|
- !ruby/object:Gem::Dependency
|
81
72
|
name: factory_girl_rails
|
82
73
|
requirement: !ruby/object:Gem::Requirement
|
83
|
-
none: false
|
84
74
|
requirements:
|
85
|
-
- -
|
75
|
+
- - ">="
|
86
76
|
- !ruby/object:Gem::Version
|
87
77
|
version: '0'
|
88
78
|
type: :development
|
89
79
|
prerelease: false
|
90
80
|
version_requirements: !ruby/object:Gem::Requirement
|
91
|
-
none: false
|
92
81
|
requirements:
|
93
|
-
- -
|
82
|
+
- - ">="
|
94
83
|
- !ruby/object:Gem::Version
|
95
84
|
version: '0'
|
96
85
|
- !ruby/object:Gem::Dependency
|
97
86
|
name: database_cleaner
|
98
87
|
requirement: !ruby/object:Gem::Requirement
|
99
|
-
none: false
|
100
88
|
requirements:
|
101
|
-
- -
|
89
|
+
- - ">="
|
102
90
|
- !ruby/object:Gem::Version
|
103
91
|
version: '0'
|
104
92
|
type: :development
|
105
93
|
prerelease: false
|
106
94
|
version_requirements: !ruby/object:Gem::Requirement
|
107
|
-
none: false
|
108
95
|
requirements:
|
109
|
-
- -
|
96
|
+
- - ">="
|
110
97
|
- !ruby/object:Gem::Version
|
111
98
|
version: '0'
|
112
99
|
description: PaypalExpress integration with Catarse crowdfunding platform
|
@@ -118,9 +105,9 @@ executables: []
|
|
118
105
|
extensions: []
|
119
106
|
extra_rdoc_files: []
|
120
107
|
files:
|
121
|
-
- .gitignore
|
122
|
-
- .rspec
|
123
|
-
- .travis.yml
|
108
|
+
- ".gitignore"
|
109
|
+
- ".rspec"
|
110
|
+
- ".travis.yml"
|
124
111
|
- Gemfile
|
125
112
|
- Gemfile.lock
|
126
113
|
- MIT-LICENSE
|
@@ -139,12 +126,15 @@ files:
|
|
139
126
|
- config/locales/pt.yml
|
140
127
|
- config/routes.rb
|
141
128
|
- lib/catarse_paypal_express.rb
|
129
|
+
- lib/catarse_paypal_express/contribution_actions.rb
|
142
130
|
- lib/catarse_paypal_express/engine.rb
|
131
|
+
- lib/catarse_paypal_express/gateway.rb
|
143
132
|
- lib/catarse_paypal_express/version.rb
|
144
133
|
- lib/tasks/catarse_paypal_express_tasks.rake
|
145
134
|
- script/rails
|
146
135
|
- spec/controllers/catarse_paypal_express/paypal_express_controller_spec.rb
|
147
136
|
- spec/fixtures/ipn_data.txt
|
137
|
+
- spec/lib/catarse_paypal_express/contribution_actions_spec.rb
|
148
138
|
- spec/spec_helper.rb
|
149
139
|
- spec/support/payment_engines.rb
|
150
140
|
- test/dummy/README.rdoc
|
@@ -182,31 +172,31 @@ files:
|
|
182
172
|
- test/dummy/script/rails
|
183
173
|
homepage: http://github.com/catarse/catarse_paypal_express
|
184
174
|
licenses: []
|
175
|
+
metadata: {}
|
185
176
|
post_install_message:
|
186
177
|
rdoc_options: []
|
187
178
|
require_paths:
|
188
179
|
- lib
|
189
180
|
required_ruby_version: !ruby/object:Gem::Requirement
|
190
|
-
none: false
|
191
181
|
requirements:
|
192
|
-
- -
|
182
|
+
- - ">="
|
193
183
|
- !ruby/object:Gem::Version
|
194
184
|
version: '0'
|
195
185
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
196
|
-
none: false
|
197
186
|
requirements:
|
198
|
-
- -
|
187
|
+
- - ">="
|
199
188
|
- !ruby/object:Gem::Version
|
200
189
|
version: '0'
|
201
190
|
requirements: []
|
202
191
|
rubyforge_project:
|
203
|
-
rubygems_version:
|
192
|
+
rubygems_version: 2.2.0
|
204
193
|
signing_key:
|
205
|
-
specification_version:
|
194
|
+
specification_version: 4
|
206
195
|
summary: PaypalExpress integration with Catarse
|
207
196
|
test_files:
|
208
197
|
- spec/controllers/catarse_paypal_express/paypal_express_controller_spec.rb
|
209
198
|
- spec/fixtures/ipn_data.txt
|
199
|
+
- spec/lib/catarse_paypal_express/contribution_actions_spec.rb
|
210
200
|
- spec/spec_helper.rb
|
211
201
|
- spec/support/payment_engines.rb
|
212
202
|
- test/dummy/README.rdoc
|