catarse_pagarme 2.6.9 → 2.6.10

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 894f90495e7e998b8d2e27c199eae39f6d734d8d
4
- data.tar.gz: fcf3a55791b3c9c082c0e355d8069fe61af9508c
3
+ metadata.gz: 6d92e0110e6013c6c87c538f4a48547dac7202e6
4
+ data.tar.gz: 180227927e1f49caf26b22fdc69c494b2b510020
5
5
  SHA512:
6
- metadata.gz: 20621aeeb2b34e07788941cb199792c4e89de23057b9bd0a7af1f176e19e7fd86c22f1d63664933e7648310c7d8a79bec1713617156fb42661d4a205674763e2
7
- data.tar.gz: a7f03a55bbc46f7b38bb788228c25fc1c749d5aba0180273bb33b64a46098a666783705604501535db7abf2546d5fce20fb6466f679154b22fa3c2e117de60b9
6
+ metadata.gz: 490d4ed9b2618b4bd8c94d73dc4aba675d68b4ac6532833baec2915ca4d1e87ddd8320687b2cb0eb0ed8d03cb8d63910388f63f580561ff039a8ccc207e60459
7
+ data.tar.gz: dd0683eea582a5051ae4b2a505e740d7370a921e46959d084d8b519ddf48c3452242e4bc71a9bec43e53c9ba316d3d66b2fdc65ea5178cc04cb58b8063235dd7
data/Gemfile.lock CHANGED
@@ -1,8 +1,8 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- catarse_pagarme (2.6.9)
5
- pagarme (~> 1.9.8)
4
+ catarse_pagarme (2.6.10)
5
+ pagarme (= 1.10.0)
6
6
  rails (~> 4.0)
7
7
  weekdays (>= 1.0.2)
8
8
 
@@ -57,7 +57,7 @@ GEM
57
57
  minitest (5.4.0)
58
58
  multi_json (1.11.0)
59
59
  netrc (0.10.3)
60
- pagarme (1.9.9)
60
+ pagarme (1.10.0)
61
61
  multi_json
62
62
  rest-client
63
63
  pg (0.17.1)
@@ -97,7 +97,7 @@ GEM
97
97
  rspec-core (~> 2.14.0)
98
98
  rspec-expectations (~> 2.14.0)
99
99
  rspec-mocks (~> 2.14.0)
100
- sprockets (3.1.0)
100
+ sprockets (3.2.0)
101
101
  rack (~> 1.0)
102
102
  sprockets-rails (2.3.1)
103
103
  actionpack (>= 3.0)
@@ -70,7 +70,7 @@ module CatarsePagarme
70
70
 
71
71
  def transaction
72
72
  @transaction ||= ::PagarMe::Transaction.find_by_id(self.payment.gateway_id)
73
- if @transaction.kind_of?(Array)
73
+ if @transaction.kind_of?(Array)
74
74
  @transaction.last
75
75
  else
76
76
  @transaction
@@ -78,8 +78,8 @@ module CatarsePagarme
78
78
  end
79
79
 
80
80
  def get_installment(installment_number)
81
- installment = get_installments['installments'].select do |installment|
82
- !installment[installment_number.to_s].nil?
81
+ installment = get_installments['installments'].select do |_installment|
82
+ !_installment[installment_number.to_s].nil?
83
83
  end
84
84
 
85
85
  installment[installment_number.to_s]
@@ -92,6 +92,29 @@ module CatarsePagarme
92
92
  })
93
93
  end
94
94
 
95
+ # Transfer payment amount to payer bank account via transfers API
96
+ # Params:
97
+ # +authorized_by+:: +User+ object that authorize this transfer
98
+ def transfer_funds(authorized_by)
99
+ raise 'must be admin to perform this action' unless authorized_by.try(:admin?)
100
+
101
+ bank_account = PagarMe::BankAccount.new(bank_account_attributes.delete(:bank_account))
102
+ bank_account.create
103
+ raise "unable to create an bank account" unless bank_account.id.present?
104
+
105
+ transfer = PagarMe::Transfer.new({
106
+ bank_account_id: bank_account.id,
107
+ amount: value_for_transaction
108
+ })
109
+ transfer.create
110
+
111
+ payment.payment_transfers.create!({
112
+ user: authorized_by,
113
+ transfer_id: transfer.id,
114
+ transfer_data: transfer.to_json
115
+ })
116
+ end
117
+
95
118
  protected
96
119
 
97
120
  def bank_account_attributes
@@ -24,10 +24,10 @@
24
24
  .w-col.w-col-1.w-sub-col
25
25
  .w-radio.w-clearfix.back-payment-credit-card-radio-field
26
26
  = radio_button_tag :payment_subscription_card, credit_card.card_key, i == 0, {"data-stored" => true}
27
- .w-col.w-col-2.w-sub-col
27
+ .w-col.w-col-2.w-sub-col.w-sub-col-middle
28
28
  .fontsize-small.fontweight-semibold.text-success
29
29
  = credit_card.card_brand.upcase
30
- .w-col.w-col-5.w-sub-col
30
+ .w-col.w-col-5.w-sub-col.w-sub-col-middle
31
31
  .fontsize-small.fontweight-semibold.u-marginbottom-20
32
32
  = "XXXX.XXXX.XXXX.#{credit_card.last_digits}"
33
33
  .w-col.w-col-4
@@ -18,7 +18,7 @@ Gem::Specification.new do |s|
18
18
  s.test_files = s.files.grep(%r{^(test|spec|features)/})
19
19
 
20
20
  s.add_dependency "rails", "~> 4.0"
21
- s.add_dependency "pagarme", "~> 1.9.8"
21
+ s.add_dependency "pagarme", "1.10.0"
22
22
  s.add_dependency "weekdays", ">= 1.0.2"
23
23
 
24
24
  s.add_development_dependency "rspec-rails", "~> 2.14.0"
@@ -1,3 +1,3 @@
1
1
  module CatarsePagarme
2
- VERSION = "2.6.9"
2
+ VERSION = "2.6.10"
3
3
  end
@@ -3,4 +3,8 @@ class BankAccount < ActiveRecord::Base
3
3
  belongs_to :bank
4
4
 
5
5
  validates :bank_id, :agency, :agency_digit, :account, :owner_name, :owner_document, :account_digit, presence: true
6
+
7
+ def bank_code
8
+ self.bank.code
9
+ end
6
10
  end
@@ -1,5 +1,6 @@
1
1
  class Payment < ActiveRecord::Base
2
2
  has_many :payment_notifications
3
+ has_many :payment_transfers
3
4
  belongs_to :contribution
4
5
  delegate :user, :project, to: :contribution
5
6
 
@@ -0,0 +1,5 @@
1
+ class PaymentTransfer < ActiveRecord::Base
2
+ # this user is the admin that authorized the transfer
3
+ belongs_to :user
4
+ belongs_to :payment
5
+ end
@@ -100,6 +100,24 @@ describe CatarsePagarme::PaymentDelegator do
100
100
  end
101
101
  end
102
102
 
103
+ describe "#transfer_funds" do
104
+ let(:admin_user) { create(:user, admin: true) }
105
+ before do
106
+ create(:bank_account, user: payment.user)
107
+ allow(payment.user).to receive(:admin?).and_return(true)
108
+ end
109
+
110
+ it do
111
+ transfer = delegator.transfer_funds(admin_user)
112
+
113
+ expect(payment.payment_transfers.count).to eq(1)
114
+ expect(transfer.payment).to eq(payment)
115
+ expect(transfer.user).to eq(admin_user)
116
+ expect(transfer.transfer_id).to eq(transfer.transfer_data["id"])
117
+ end
118
+ end
119
+
120
+
103
121
  describe "#change_status_by_transaction" do
104
122
 
105
123
  %w(paid authorized).each do |status|
@@ -33,17 +33,17 @@ FactoryGirl.define do
33
33
 
34
34
  factory :bank do |f|
35
35
  f.name { generate(:uid) }
36
- f.code { generate(:uid) }
36
+ f.code '237'
37
37
  end
38
38
 
39
39
  factory :bank_account do |f|
40
40
  f.association :bank
41
- f.account '1234'
42
- f.account_digit '1'
43
- f.agency '1'
41
+ f.account '25334'
42
+ f.account_digit '2'
43
+ f.agency '1432'
44
44
  f.agency_digit '2'
45
- f.owner_name 'fooo'
46
- f.owner_document '9889'
45
+ f.owner_name 'Lorem amenori'
46
+ f.owner_document '11111111111'
47
47
  end
48
48
 
49
49
  factory :project do |f|
@@ -64,6 +64,9 @@ FactoryGirl.define do
64
64
  f.association :project, factory: :project
65
65
  f.association :user, factory: :user
66
66
  f.value 10.00
67
+ f.payer_name 'Foo Bar'
68
+ f.payer_email 'foo@bar.com'
69
+ f.anonymous false
67
70
  after :create do |contribution|
68
71
  create(:payment, paid_at: Time.now, gateway_id: '1.2.3', state: 'paid', value: contribution.value, contribution: contribution)
69
72
  end
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.6.9
4
+ version: 2.6.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Antônio Roberto Silva
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-05-29 00:00:00.000000000 Z
12
+ date: 2015-06-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -29,16 +29,16 @@ dependencies:
29
29
  name: pagarme
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
- - - "~>"
32
+ - - '='
33
33
  - !ruby/object:Gem::Version
34
- version: 1.9.8
34
+ version: 1.10.0
35
35
  type: :runtime
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
- - - "~>"
39
+ - - '='
40
40
  - !ruby/object:Gem::Version
41
- version: 1.9.8
41
+ version: 1.10.0
42
42
  - !ruby/object:Gem::Dependency
43
43
  name: weekdays
44
44
  requirement: !ruby/object:Gem::Requirement
@@ -166,6 +166,7 @@ files:
166
166
  - spec/dummy/app/models/payment.rb
167
167
  - spec/dummy/app/models/payment_engines.rb
168
168
  - spec/dummy/app/models/payment_notification.rb
169
+ - spec/dummy/app/models/payment_transfer.rb
169
170
  - spec/dummy/app/models/project.rb
170
171
  - spec/dummy/app/models/user.rb
171
172
  - spec/dummy/app/models/user_total.rb
@@ -253,6 +254,7 @@ test_files:
253
254
  - spec/dummy/app/models/payment.rb
254
255
  - spec/dummy/app/models/payment_engines.rb
255
256
  - spec/dummy/app/models/payment_notification.rb
257
+ - spec/dummy/app/models/payment_transfer.rb
256
258
  - spec/dummy/app/models/project.rb
257
259
  - spec/dummy/app/models/user.rb
258
260
  - spec/dummy/app/models/user_total.rb