rock_rms 4.1.1 → 4.2.0

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: 4be0432bf911e9a5bbfbac867e90988339cd4228
4
- data.tar.gz: d0feccbc77c6416c9febbeaf084185cf35f18028
3
+ metadata.gz: f94deebae8f83a44ff057457be2836133f2daa29
4
+ data.tar.gz: 30b4c5462c5fa4e0fa2bf74a2de8f46676ea2d87
5
5
  SHA512:
6
- metadata.gz: f0df81d812e962ae9b21e84a8f21ea469827d17d9b76b48ffea385c78dbc5a4ece47133af7ed1328db216a5112ea647a8f8fd05c0045154e60929edb9a95e505
7
- data.tar.gz: 379fe702e79a724a949f95893a86a4af98f748e8a6ac8afbb880482114182e152a2268ba6f4c27154427d1424880e9208875e44a90e10e7c49df8c233f358ecd
6
+ metadata.gz: 5ef3ea8ff291965aa30277fd0fb0b85777e79a0ad2472579fd98f1004639089f7ef0bd0bab01154f21c7b67b044b470c8472534937a1aaf4f4990397e1b49f82
7
+ data.tar.gz: d480a8165f6c29b9378306865151b82bfc4168cdc023479647f384ca3c2d4d909808418939c1a6c43422229d685344962e36e628ef2d052a1b84180703646033
data/README.md CHANGED
@@ -14,7 +14,7 @@ I'm a big fan of Rock so if you have problems using the gem or would like to see
14
14
  Add this line to your application's Gemfile:
15
15
  ````ruby
16
16
  # in your Gemfile
17
- gem 'rock_rms', '~> 4.1'
17
+ gem 'rock_rms', '~> 4.2'
18
18
 
19
19
  # then...
20
20
  bundle install
@@ -6,12 +6,13 @@ module RockRMS
6
6
  Response::PaymentDetail.format(res)
7
7
  end
8
8
 
9
- def create_payment_detail(payment_type:, foreign_key: nil, card_type: nil)
9
+ def create_payment_detail(payment_type:, foreign_key: nil, card_type: nil, last_4: nil)
10
10
  options = {
11
11
  'CurrencyTypeValueId' => cast_payment_type(payment_type),
12
12
  'CreditCardTypeValueId' => cast_card_type(card_type),
13
13
  'ForeignKey' => foreign_key
14
14
  }
15
+ options['AccountNumberMasked'] = "************#{last_4}" if last_4
15
16
 
16
17
  post(payment_detail_path, options)
17
18
  end
@@ -6,6 +6,24 @@ module RockRMS
6
6
  Response::SavedPaymentMethod.format(res)
7
7
  end
8
8
 
9
+ def create_saved_payment_method(
10
+ gateway_id:,
11
+ payment_detail_id:,
12
+ person_alias_id:,
13
+ name:,
14
+ reference_number:
15
+ )
16
+ options = {
17
+ 'FinancialGatewayId' => gateway_id,
18
+ 'FinancialPaymentDetailId' => payment_detail_id,
19
+ 'Name' => name,
20
+ 'PersonAliasId' => person_alias_id,
21
+ 'ReferenceNumber' => reference_number
22
+ }
23
+
24
+ post(saved_payment_method_path, options)
25
+ end
26
+
9
27
  def delete_saved_payment_method(id)
10
28
  delete(saved_payment_method_path(id))
11
29
  end
@@ -1,3 +1,3 @@
1
1
  module RockRMS
2
- VERSION = '4.1.1'.freeze
2
+ VERSION = '4.2.0'.freeze
3
3
  end
@@ -11,6 +11,62 @@ RSpec.describe RockRMS::Client::SavedPaymentMethod, type: :model do
11
11
  end
12
12
  end
13
13
 
14
+ describe '#create_saved_payment_method' do
15
+ context 'arguments' do
16
+ it 'require `gateway_id`' do
17
+ expect { client.create_saved_payment_method }
18
+ .to raise_error(ArgumentError, /gateway_id/)
19
+ end
20
+
21
+ it 'require `payment_detail_id`' do
22
+ expect { client.create_saved_payment_method }
23
+ .to raise_error(ArgumentError, /payment_detail_id/)
24
+ end
25
+
26
+ it 'require `person_alias_id`' do
27
+ expect { client.create_saved_payment_method }
28
+ .to raise_error(ArgumentError, /person_alias_id/)
29
+ end
30
+
31
+ it 'require `name`' do
32
+ expect { client.create_saved_payment_method }
33
+ .to raise_error(ArgumentError, /name/)
34
+ end
35
+
36
+ it 'require `reference_number`' do
37
+ expect { client.create_saved_payment_method }
38
+ .to raise_error(ArgumentError, /reference_number/)
39
+ end
40
+ end
41
+
42
+ subject(:resource) do
43
+ client.create_saved_payment_method(
44
+ gateway_id: 2,
45
+ payment_detail_id: 1,
46
+ person_alias_id: 1,
47
+ name: 'Sapphire Preferred',
48
+ reference_number: 'card_1234'
49
+ )
50
+ end
51
+
52
+ it 'returns integer' do
53
+ expect(resource).to be_a(Integer)
54
+ end
55
+
56
+ it 'passes options' do
57
+ expect(client).to receive(:post)
58
+ .with(
59
+ 'FinancialPersonSavedAccounts',
60
+ 'Name' => 'Sapphire Preferred',
61
+ 'ReferenceNumber' => 'card_1234',
62
+ 'PersonAliasId' => 1,
63
+ 'FinancialGatewayId' => 2,
64
+ 'FinancialPaymentDetailId' => 1
65
+ ).and_call_original
66
+ resource
67
+ end
68
+ end
69
+
14
70
  describe '#delete_saved_payment_method' do
15
71
  it 'returns nothing' do
16
72
  expect(client.delete_saved_payment_method(123)).to eq(nil)
@@ -56,7 +56,8 @@ class RockMock < Sinatra::Base
56
56
  create_batch: 'FinancialBatches',
57
57
  create_recurring_donation: 'FinancialScheduledTransactions',
58
58
  create_refund: 'FinancialTransactionRefunds',
59
- create_refund_reason: 'DefinedValues'
59
+ create_refund_reason: 'DefinedValues',
60
+ create_saved_payment_method: 'FinancialPersonSavedAccounts'
60
61
  }.each do |json, end_point|
61
62
  post "/api/#{end_point}" do
62
63
  json_response 201, "#{json}.json"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rock_rms
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.1.1
4
+ version: 4.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Taylor Brooks
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-04-15 00:00:00.000000000 Z
11
+ date: 2018-05-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -270,6 +270,7 @@ files:
270
270
  - spec/support/fixtures/create_recurring_donation.json
271
271
  - spec/support/fixtures/create_refund.json
272
272
  - spec/support/fixtures/create_refund_reason.json
273
+ - spec/support/fixtures/create_saved_payment_method.json
273
274
  - spec/support/fixtures/create_transaction.json
274
275
  - spec/support/fixtures/defined_values.json
275
276
  - spec/support/fixtures/families.json