catarse_pagarme 2.6.9 → 2.6.10

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 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