catarse_pagarme 2.7.5 → 2.7.6
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 +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
|