moneytree-rails 0.1.9 → 0.1.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
  SHA256:
3
- metadata.gz: '079364d1a5759325bd0978da80070be3054ca7833db677991a779b9cf60f40d1'
4
- data.tar.gz: 75dda268ddb18e96f8570ef591b5bb5687743e764a066f0196c8a435b364511d
3
+ metadata.gz: 82a73ef1112fc456b1f7418cad362291d5817be5a4c1ab0d37a315418087584f
4
+ data.tar.gz: b31da6ae5001a28d162b6db90627654ccaa0adb74271aad2160357c971da2c33
5
5
  SHA512:
6
- metadata.gz: d934abaf84e4eb8136807226535cd3659da2cd9ed71b4f8d684c7cf0730aa90cbca25c771203686dce76598961c025c289124dbabb177e2e0c60ad418f979c78
7
- data.tar.gz: 7db374f8ed29d853755e362d60e0ea3fad3ea86d19a846153fb6109dacd787d2a27c8279fc119dc90df98797587334d4e71ff6677b16af7819279ea1e26d500e
6
+ metadata.gz: d8de210345c2d0e8c813eb46b1d4f8f6e332df0b9013b6ced5b770886bc4a3246535f9cf9ad8ead5bcaef4c5cb40c24f20a383310a0407288f08e9dd34a3605e
7
+ data.tar.gz: 1a133c019d8e1a1cfb64b21ea7d2f05a675660b81f6802213072fb38da9ce2c5b7f983be58c8bdb399b62a94916703712bba81c478805c17dbaa91c796ca8e58
@@ -0,0 +1,15 @@
1
+ module Moneytree
2
+ class Card
3
+ include ActiveModel::Model
4
+
5
+ attr_accessor(
6
+ :last4,
7
+ :exp_month,
8
+ :exp_year,
9
+ :fingerprint,
10
+ :brand,
11
+ :address_zip,
12
+ :country
13
+ )
14
+ end
15
+ end
@@ -27,8 +27,6 @@ module Moneytree
27
27
  psp_credentials[:scope] == payment_provider.scope
28
28
  end
29
29
 
30
- private
31
-
32
30
  def payment_provider
33
31
  @payment_provider ||=
34
32
  case psp
@@ -9,8 +9,14 @@ module Moneytree
9
9
 
10
10
  serialize :details
11
11
 
12
+ delegate :payment_provider, to: :payment_gateway
13
+
12
14
  after_create_commit :execute_transaction
13
15
 
16
+ def card
17
+ payment_provider.card_for(self)
18
+ end
19
+
14
20
  def process_response(response)
15
21
  if response.success?
16
22
  update!(
@@ -43,7 +43,10 @@ module Moneytree
43
43
  TransactionResponse.new(
44
44
  { succeeded: :success, pending: :pending, failed: :failed }[response[:status].to_sym],
45
45
  response[:failure_message],
46
- { charge_id: response[:id] }
46
+ {
47
+ charge_id: response[:id],
48
+ card: response[:payment_method_details][:card]
49
+ }
47
50
  )
48
51
  rescue ::Stripe::StripeError => e
49
52
  TransactionResponse.new(:failed, e.message)
@@ -70,6 +73,18 @@ module Moneytree
70
73
  TransactionResponse.new(:failed, e.message)
71
74
  end
72
75
 
76
+ def card_for(transaction)
77
+ Card.new(
78
+ last4: transaction.details[:card][:last4],
79
+ exp_month: transaction.details[:card][:exp_month],
80
+ exp_year: transaction.details[:card][:exp_year],
81
+ fingerprint: transaction.details[:card][:fingerprint],
82
+ brand: transaction.details[:card][:brand],
83
+ address_zip: transaction.details[:card][:address_zip],
84
+ country: transaction.details[:card][:country]
85
+ )
86
+ end
87
+
73
88
  private
74
89
 
75
90
  def credentitals
@@ -1,3 +1,3 @@
1
1
  module Moneytree
2
- VERSION = '0.1.9'.freeze
2
+ VERSION = '0.1.10'.freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: moneytree-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.9
4
+ version: 0.1.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kieran Klaassen
@@ -59,6 +59,7 @@ files:
59
59
  - app/jobs/moneytree/application_job.rb
60
60
  - app/mailers/moneytree/application_mailer.rb
61
61
  - app/models/moneytree/application_record.rb
62
+ - app/models/moneytree/card.rb
62
63
  - app/models/moneytree/payment.rb
63
64
  - app/models/moneytree/payment_gateway.rb
64
65
  - app/models/moneytree/refund.rb