catarse_pagarme 2.7.5 → 2.7.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +17 -1
- data/app/models/catarse_pagarme/credit_card_transaction.rb +3 -1
- data/app/workers/catarse_pagarme/verify_pagarme_worker.rb +43 -0
- data/catarse_pagarme.gemspec +1 -0
- data/lib/catarse_pagarme.rb +2 -1
- data/lib/catarse_pagarme/version.rb +1 -1
- data/spec/dummy/app/models/payment_engines.rb +4 -0
- data/spec/spec_helper.rb +3 -0
- data/spec/workers/catarse_pagarme/verify_pagarme_worker_spec.rb +68 -0
- metadata +18 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f6cf63973dd886ba8c5d27c0b298f30812ffe9e9
|
4
|
+
data.tar.gz: 3ffbcb1761d21d21cbc5ad41015d277d6af966f9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ab663e3744a0c647dedf9aaf15e4be62174213a7d833b0625816871797e1c5d6235bec1c87061997d95d567ea4e347a59b613f5e60a4c055d198bf02f2fb6109
|
7
|
+
data.tar.gz: 02bdb171b420db9455e647dc4d522bc78f51cb8a645835540af593bc31d059e04af7ca9488845e50a10575ca33b39c4150f2a67fbc0e8f3e970ff64a1080973a
|
data/Gemfile.lock
CHANGED
@@ -1,9 +1,10 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
catarse_pagarme (2.7.
|
4
|
+
catarse_pagarme (2.7.6)
|
5
5
|
pagarme (= 1.10.0)
|
6
6
|
rails (~> 4.0)
|
7
|
+
sidekiq
|
7
8
|
weekdays (>= 1.0.2)
|
8
9
|
|
9
10
|
GEM
|
@@ -37,7 +38,10 @@ GEM
|
|
37
38
|
tzinfo (~> 1.1)
|
38
39
|
arel (5.0.1.20140414130214)
|
39
40
|
builder (3.2.2)
|
41
|
+
celluloid (0.16.0)
|
42
|
+
timers (~> 4.0.0)
|
40
43
|
coderay (1.1.0)
|
44
|
+
connection_pool (2.2.0)
|
41
45
|
diff-lcs (1.2.5)
|
42
46
|
domain_name (0.5.24)
|
43
47
|
unf (>= 0.0.5, < 1.0.0)
|
@@ -47,6 +51,7 @@ GEM
|
|
47
51
|
factory_girl_rails (4.4.1)
|
48
52
|
factory_girl (~> 4.4.0)
|
49
53
|
railties (>= 3.0.0)
|
54
|
+
hitimes (1.2.2)
|
50
55
|
http-cookie (1.0.2)
|
51
56
|
domain_name (~> 0.5)
|
52
57
|
i18n (0.6.11)
|
@@ -87,6 +92,9 @@ GEM
|
|
87
92
|
rake (>= 0.8.7)
|
88
93
|
thor (>= 0.18.1, < 2.0)
|
89
94
|
rake (10.3.2)
|
95
|
+
redis (3.2.1)
|
96
|
+
redis-namespace (1.5.2)
|
97
|
+
redis (~> 3.0, >= 3.0.4)
|
90
98
|
rest-client (1.8.0)
|
91
99
|
http-cookie (>= 1.0.2, < 2.0)
|
92
100
|
mime-types (>= 1.16, < 3.0)
|
@@ -103,6 +111,12 @@ GEM
|
|
103
111
|
rspec-core (~> 2.14.0)
|
104
112
|
rspec-expectations (~> 2.14.0)
|
105
113
|
rspec-mocks (~> 2.14.0)
|
114
|
+
sidekiq (3.4.1)
|
115
|
+
celluloid (~> 0.16.0)
|
116
|
+
connection_pool (>= 2.1.1)
|
117
|
+
json
|
118
|
+
redis (>= 3.0.6)
|
119
|
+
redis-namespace (>= 1.3.1)
|
106
120
|
slop (3.6.0)
|
107
121
|
sprockets (3.2.0)
|
108
122
|
rack (~> 1.0)
|
@@ -112,6 +126,8 @@ GEM
|
|
112
126
|
sprockets (>= 2.8, < 4.0)
|
113
127
|
thor (0.19.1)
|
114
128
|
thread_safe (0.3.4)
|
129
|
+
timers (4.0.1)
|
130
|
+
hitimes
|
115
131
|
treetop (1.4.15)
|
116
132
|
polyglot
|
117
133
|
polyglot (>= 0.3.1)
|
@@ -7,11 +7,13 @@ module CatarsePagarme
|
|
7
7
|
self.transaction = PagarMe::Transaction.new(self.attributes)
|
8
8
|
|
9
9
|
payment.update_attributes({
|
10
|
-
gateway: 'Pagarme',
|
10
|
+
gateway: 'Pagarme',
|
11
11
|
payment_method: payment_method
|
12
12
|
})
|
13
13
|
payment.save!
|
14
14
|
|
15
|
+
VerifyPagarmeWorker.perform_in(5.minutes, payment.key)
|
16
|
+
|
15
17
|
self.transaction.charge
|
16
18
|
|
17
19
|
change_payment_state
|
@@ -0,0 +1,43 @@
|
|
1
|
+
class CatarsePagarme::VerifyPagarmeWorker
|
2
|
+
include Sidekiq::Worker
|
3
|
+
sidekiq_options retry: 5
|
4
|
+
|
5
|
+
def perform key
|
6
|
+
source = find_source_by_key key
|
7
|
+
payment = PaymentEngines.find_payment({ key: key })
|
8
|
+
|
9
|
+
raise "payment not found" unless payment.present?
|
10
|
+
raise "source not found" unless source.present? && source.try(:[], "metadata").try(:[], "key") == key
|
11
|
+
|
12
|
+
payment.update_attributes({gateway_id: source["id"]})
|
13
|
+
payment.pagarme_delegator.update_transaction
|
14
|
+
payment.pagarme_delegator.change_status_by_transaction source["status"]
|
15
|
+
end
|
16
|
+
|
17
|
+
private
|
18
|
+
|
19
|
+
def find_source_by_key key
|
20
|
+
::PagarMe.api_key = CatarsePagarme.configuration.api_key
|
21
|
+
request = PagarMe::Request.new('/search', 'GET')
|
22
|
+
query = {
|
23
|
+
type: 'transaction',
|
24
|
+
query: {
|
25
|
+
from: 0,
|
26
|
+
size: 1,
|
27
|
+
query: {
|
28
|
+
bool: {
|
29
|
+
must: {
|
30
|
+
match: {
|
31
|
+
"metadata.key" => key
|
32
|
+
}
|
33
|
+
}
|
34
|
+
}
|
35
|
+
}
|
36
|
+
}.to_json
|
37
|
+
}
|
38
|
+
|
39
|
+
request.parameters.merge!(query)
|
40
|
+
response = request.run
|
41
|
+
response.try(:[], "hits").try(:[], "hits").try(:[], 0).try(:[], "_source")
|
42
|
+
end
|
43
|
+
end
|
data/catarse_pagarme.gemspec
CHANGED
@@ -20,6 +20,7 @@ Gem::Specification.new do |s|
|
|
20
20
|
s.add_dependency "rails", "~> 4.0"
|
21
21
|
s.add_dependency "pagarme", "1.10.0"
|
22
22
|
s.add_dependency "weekdays", ">= 1.0.2"
|
23
|
+
s.add_dependency "sidekiq"
|
23
24
|
|
24
25
|
s.add_development_dependency "rspec-rails", "~> 2.14.0"
|
25
26
|
s.add_development_dependency "factory_girl_rails"
|
data/lib/catarse_pagarme.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
@@ -7,6 +7,7 @@ require 'pagarme'
|
|
7
7
|
require 'open-uri'
|
8
8
|
require 'rspec/rails'
|
9
9
|
require 'factory_girl'
|
10
|
+
require 'sidekiq/testing'
|
10
11
|
# Requires supporting ruby files with custom matchers and macros, etc,
|
11
12
|
# in spec/support/ and its subdirectories.
|
12
13
|
Dir[ File.expand_path("../support/**/*.rb", __FILE__)].each {|f| require f}
|
@@ -33,6 +34,8 @@ RSpec.configure do |config|
|
|
33
34
|
config.before(:each) do
|
34
35
|
PagarMe.stub(:api_key).and_return('ak_test_XLoo19QDn9kg5JFGU70x12IA4NqbAv')
|
35
36
|
PaymentEngines.stub(:configuration).and_return({})
|
37
|
+
Sidekiq::Testing.inline!
|
38
|
+
CatarsePagarme::VerifyPagarmeWorker.stub(:perform_in).and_return(true)
|
36
39
|
end
|
37
40
|
end
|
38
41
|
|
@@ -0,0 +1,68 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe CatarsePagarme::VerifyPagarmeWorker do
|
4
|
+
let(:payment) { create(:contribution).payments.last }
|
5
|
+
let(:fake_transaction) do
|
6
|
+
{
|
7
|
+
"object"=>"transaction", "status"=>"paid", "refuse_reason"=>nil, "id"=>9999,
|
8
|
+
"status_reason"=>"acquirer", "acquirer_name" => 'stone', "tid" => "123123", "acquirer_response_code"=>"0000",
|
9
|
+
"payment_method"=>"credit_card", "antifraud_score"=>nil, "boleto_url"=>nil, "boleto_barcode"=>nil, "boleto_expiration_date"=>nil,
|
10
|
+
"metadata"=>{
|
11
|
+
"key"=> payment.key,
|
12
|
+
"contribution_id"=>"21313"}
|
13
|
+
}
|
14
|
+
end
|
15
|
+
|
16
|
+
before do
|
17
|
+
allow_any_instance_of(CatarsePagarme::VerifyPagarmeWorker).to receive(:find_source_by_key).and_return(fake_transaction)
|
18
|
+
end
|
19
|
+
|
20
|
+
context "When find a valid payment and source" do
|
21
|
+
before do
|
22
|
+
#allow(PaymentEngines).to receive(:find_payment).and_return(payment)
|
23
|
+
allow_any_instance_of(CatarsePagarme::PaymentDelegator).to receive(:update_transaction)
|
24
|
+
allow_any_instance_of(CatarsePagarme::PaymentDelegator).to receive(:change_status_by_transaction)
|
25
|
+
|
26
|
+
expect_any_instance_of(Payment).to receive(:update_attributes).with({gateway_id: fake_transaction["id"]})
|
27
|
+
expect_any_instance_of(CatarsePagarme::PaymentDelegator).to receive(:update_transaction)
|
28
|
+
expect_any_instance_of(CatarsePagarme::PaymentDelegator).to receive(:change_status_by_transaction).with(fake_transaction["status"])
|
29
|
+
end
|
30
|
+
|
31
|
+
it "should satisfy expectations" do
|
32
|
+
CatarsePagarme::VerifyPagarmeWorker.perform_async(payment.key)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
context "When source is not found" do
|
37
|
+
before do
|
38
|
+
allow_any_instance_of(CatarsePagarme::VerifyPagarmeWorker).to receive(:find_source_by_key).and_return(nil)
|
39
|
+
end
|
40
|
+
|
41
|
+
it "should raise an error" do
|
42
|
+
expect {
|
43
|
+
CatarsePagarme::VerifyPagarmeWorker.perform_async(payment.key)
|
44
|
+
}.to raise_error("source not found")
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
context "When source keys not match" do
|
49
|
+
before do
|
50
|
+
allow_any_instance_of(CatarsePagarme::VerifyPagarmeWorker).to receive(:find_source_by_key).and_return(fake_transaction["metadata"].update({"key" => "AFSGSD"}))
|
51
|
+
end
|
52
|
+
|
53
|
+
it "should raise an error" do
|
54
|
+
expect {
|
55
|
+
CatarsePagarme::VerifyPagarmeWorker.perform_async(payment.key)
|
56
|
+
}.to raise_error("source not found")
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
context "When payment is not found" do
|
61
|
+
it "should raise an error" do
|
62
|
+
expect {
|
63
|
+
CatarsePagarme::VerifyPagarmeWorker.perform_async('INVALID KEY')
|
64
|
+
}.to raise_error("payment not found")
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: catarse_pagarme
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.7.
|
4
|
+
version: 2.7.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Antônio Roberto Silva
|
@@ -53,6 +53,20 @@ dependencies:
|
|
53
53
|
- - ">="
|
54
54
|
- !ruby/object:Gem::Version
|
55
55
|
version: 1.0.2
|
56
|
+
- !ruby/object:Gem::Dependency
|
57
|
+
name: sidekiq
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - ">="
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '0'
|
63
|
+
type: :runtime
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - ">="
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
56
70
|
- !ruby/object:Gem::Dependency
|
57
71
|
name: rspec-rails
|
58
72
|
requirement: !ruby/object:Gem::Requirement
|
@@ -133,6 +147,7 @@ files:
|
|
133
147
|
- app/views/catarse_pagarme/pagarme/_terms.html.slim
|
134
148
|
- app/views/catarse_pagarme/pagarme/review.html.slim
|
135
149
|
- app/views/layouts/catarse_pagarme/application.html.erb
|
150
|
+
- app/workers/catarse_pagarme/verify_pagarme_worker.rb
|
136
151
|
- bin/rails
|
137
152
|
- catarse_pagarme.gemspec
|
138
153
|
- config/initializers/register.rb
|
@@ -207,6 +222,7 @@ files:
|
|
207
222
|
- spec/models/catarse_pagarme/slip_transaction_spec.rb
|
208
223
|
- spec/spec_helper.rb
|
209
224
|
- spec/support/factories.rb
|
225
|
+
- spec/workers/catarse_pagarme/verify_pagarme_worker_spec.rb
|
210
226
|
homepage: http://github.com/catarse/catarse_pagarme
|
211
227
|
licenses: []
|
212
228
|
metadata: {}
|
@@ -295,3 +311,4 @@ test_files:
|
|
295
311
|
- spec/models/catarse_pagarme/slip_transaction_spec.rb
|
296
312
|
- spec/spec_helper.rb
|
297
313
|
- spec/support/factories.rb
|
314
|
+
- spec/workers/catarse_pagarme/verify_pagarme_worker_spec.rb
|