rock_rms 5.7.1 → 5.9.2

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
  SHA256:
3
- metadata.gz: '0285c478d37f3866307aa15c573a900a76c1ba1e502767b0adf4ad8a772bacf0'
4
- data.tar.gz: c93c50ffa1405ed6120ff4c316f1426ec6a37ee53fc26048365d0a1ab021d295
3
+ metadata.gz: 3f32473b27446f60af760e2f113670a7a92bf7126bb27f77aea8eba4d0d71ff3
4
+ data.tar.gz: 7ab84e4e37918f83c6aceddb3a744a7b0af8093425bd7a10073a8d2eb50b42a4
5
5
  SHA512:
6
- metadata.gz: 94abb5223e5ff1a6da0c7ac2b2612e426416594b8346defae8dfb2f7ee072c17aa1caad97a4e768eedc80fa96a0db8a4bba2fb8c54d3f942e502875c1e9cb33e
7
- data.tar.gz: cf8b5521d733ce280698bd3f60288f1a3d7af575c2ca36c1c1f195f5ab86f8d212e427bd2d3a450a4ddaa74e8ce386d790e988403dd178fe1d1591370751ee9c
6
+ metadata.gz: 89cf493e25aa3bf163db43abb8f18c0319c8f1d41c7beedc78afd2b65689163358c75d604966b5eb02a02f73afe2bec115c15079e11f13b6ffa813252182332f
7
+ data.tar.gz: 0c80f3bcfaa5cfb38a87f40e4039494b865fb672e221af7448d7138e441cde9d7ecfcf679f4fc5a9c32efc5609d936db0b2d979491d737b27d817b02bf83ff06
@@ -75,8 +75,20 @@ module RockRMS
75
75
  private
76
76
 
77
77
  def auth
78
+ begin
79
+ auth_request('Auth/Login')
80
+ rescue Faraday::Error::ParsingError => e
81
+ if e.message.include?('Document Moved')
82
+ auth_request('auth/login')
83
+ else
84
+ raise e
85
+ end
86
+ end
87
+ end
88
+
89
+ def auth_request(path)
78
90
  connection.post(
79
- 'Auth/Login',
91
+ path,
80
92
  'Username' => username,
81
93
  'Password' => password,
82
94
  'Persisted' => true
@@ -58,6 +58,10 @@ module RockRMS
58
58
  patch(recurring_donation_path(id), options)
59
59
  end
60
60
 
61
+ def delete_recurring_donation(id)
62
+ delete(recurring_donation_path(id))
63
+ end
64
+
61
65
  def launch_scheduled_transaction_workflow(
62
66
  id,
63
67
  workflow_type_id:,
@@ -1,6 +1,27 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RockRMS
2
4
  class Client
3
5
  module RecurringDonationDetail
6
+ def create_recurring_donation_detail(
7
+ recurring_donation_id:,
8
+ fund_id:,
9
+ amount:
10
+ )
11
+
12
+ options = {
13
+ 'AccountId' => fund_id,
14
+ 'Amount' => amount,
15
+ 'ScheduledTransactionId' => recurring_donation_id
16
+ }
17
+
18
+ post(recurring_donation_detail_path, options)
19
+ end
20
+
21
+ def delete_recurring_donation_detail(id)
22
+ delete(recurring_donation_detail_path(id))
23
+ end
24
+
4
25
  def update_recurring_donation_detail(id, fund_id: nil, amount: nil)
5
26
  options = {}
6
27
  options['AccountId'] = fund_id if fund_id
@@ -97,7 +97,9 @@ module RockRMS
97
97
  funds.map do |fund|
98
98
  {
99
99
  'Amount' => fund[:amount],
100
- 'AccountId' => fund[:fund_id]
100
+ 'AccountId' => fund[:fund_id],
101
+ 'EntityTypeId' => fund[:entity_type_id],
102
+ 'EntityId' => fund[:entity_id]
101
103
  }
102
104
  end
103
105
  end
@@ -11,11 +11,20 @@ module RockRMS
11
11
  Response::TransactionDetail.format(res)
12
12
  end
13
13
 
14
- def update_transaction_detail(id, fund_id: nil, amount: nil, fee_amount: nil)
14
+ def update_transaction_detail(
15
+ id,
16
+ fund_id: nil,
17
+ amount: nil,
18
+ fee_amount: nil,
19
+ entity_type_id: nil,
20
+ entity_id: nil
21
+ )
15
22
  options = {}
16
- options['AccountId'] = fund_id if fund_id
17
- options['Amount'] = amount if amount
18
- options['FeeAmount'] = fee_amount if fee_amount
23
+ options['AccountId'] = fund_id if fund_id
24
+ options['Amount'] = amount if amount
25
+ options['FeeAmount'] = fee_amount if fee_amount
26
+ options['EntityTypeId'] = entity_type_id if entity_type_id
27
+ options['EntityId'] = entity_id if entity_id
19
28
 
20
29
  patch(transaction_detail_path(id), options)
21
30
  end
@@ -13,7 +13,8 @@ module RockRMS
13
13
  person_id: 'AuthorizedPersonAliasId',
14
14
  start_date: 'StartDate',
15
15
  transaction_details: 'ScheduledTransactionDetails',
16
- transaction_code: 'TransactionCode'
16
+ transaction_code: 'TransactionCode',
17
+ summary: 'Summary'
17
18
  }.freeze
18
19
 
19
20
  def format_single(data)
@@ -2,9 +2,11 @@ module RockRMS
2
2
  module Response
3
3
  class RecurringDonationDetails < Base
4
4
  MAP = {
5
+ id: 'Id',
5
6
  amount: 'Amount',
6
7
  fund_id: 'AccountId',
7
- id: 'Id'
8
+ entity_type_id: 'EntityTypeId',
9
+ entity_id: 'EntityId'
8
10
  }.freeze
9
11
 
10
12
  def format_single(data)
@@ -6,7 +6,9 @@ module RockRMS
6
6
  fee_amount: 'FeeAmount',
7
7
  fund: 'Account',
8
8
  fund_id: 'AccountId',
9
- amount: 'Amount'
9
+ amount: 'Amount',
10
+ entity_type_id: 'EntityTypeId',
11
+ entity_id: 'EntityId'
10
12
  }.freeze
11
13
 
12
14
  def format_single(response)
@@ -1,3 +1,3 @@
1
1
  module RockRMS
2
- VERSION = '5.7.1'.freeze
2
+ VERSION = '5.9.2'.freeze
3
3
  end
data/rock_rms.gemspec CHANGED
@@ -28,7 +28,7 @@ Gem::Specification.new do |s|
28
28
  s.add_development_dependency 'bundler', '~> 2.0'
29
29
  s.add_development_dependency 'dotenv'
30
30
  s.add_development_dependency 'pry'
31
- s.add_development_dependency 'rake', '~> 10.4'
31
+ s.add_development_dependency 'rake', '~> 12.3.3'
32
32
  s.add_development_dependency 'rspec', '~> 3.7'
33
33
  s.add_development_dependency 'sinatra', '~> 2.0'
34
34
  s.add_development_dependency 'webmock', '~> 3.1'
@@ -3,6 +3,50 @@ require 'spec_helper'
3
3
  RSpec.describe RockRMS::Client::RecurringDonationDetail, type: :model do
4
4
  include_context 'resource specs'
5
5
 
6
+ describe '#create_recurring_donation_detail' do
7
+ context 'arguments' do
8
+ it 'require `fund_id`' do
9
+ expect { client.create_recurring_donation_detail }
10
+ .to raise_error(ArgumentError, /fund_id/)
11
+ end
12
+
13
+ it 'require `amount`' do
14
+ expect { client.create_recurring_donation_detail }
15
+ .to raise_error(ArgumentError, /amount/)
16
+ end
17
+
18
+ it 'require `recurring_donation_id`' do
19
+ expect { client.create_recurring_donation_detail }
20
+ .to raise_error(ArgumentError, /recurring_donation_id/)
21
+ end
22
+
23
+ end
24
+
25
+ subject(:resource) do
26
+ client.create_recurring_donation_detail(
27
+ fund_id: 1,
28
+ amount: 5.00,
29
+ recurring_donation_id: 1
30
+ )
31
+ end
32
+
33
+ it 'returns integer' do
34
+ expect(resource).to be_a(Integer)
35
+ end
36
+
37
+ it 'passes options' do
38
+ expect(client).to receive(:post)
39
+ .with(
40
+ 'FinancialScheduledTransactionDetails',
41
+ 'AccountId' => 1,
42
+ 'ScheduledTransactionId' => 1,
43
+ 'Amount' => 5.00,
44
+ )
45
+ .and_call_original
46
+ resource
47
+ end
48
+ end
49
+
6
50
  describe '#update_recurring_donation_detail' do
7
51
  subject(:resource) do
8
52
  client.update_recurring_donation_detail(
@@ -26,4 +70,19 @@ RSpec.describe RockRMS::Client::RecurringDonationDetail, type: :model do
26
70
  resource
27
71
  end
28
72
  end
73
+
74
+ describe '#delete_recurring_donation_detail' do
75
+ subject(:resource) do
76
+ client.delete_recurring_donation_detail(123)
77
+ end
78
+
79
+ it 'returns nothing' do
80
+ expect(client.delete_recurring_donation_detail(123)).to eq(nil)
81
+ end
82
+
83
+ it 'passes options' do
84
+ expect(client).to receive(:delete).with('FinancialScheduledTransactionDetails/123').and_call_original
85
+ resource
86
+ end
87
+ end
29
88
  end
@@ -139,7 +139,7 @@ RSpec.describe RockRMS::Client::RecurringDonation, type: :model do
139
139
  'FinancialGatewayId' => nil,
140
140
  'FinancialPaymentDetailId' => nil,
141
141
  'TransactionCode' => 'asdf',
142
- 'ScheduledTransactionDetails' => [{ 'Amount' => 450, 'AccountId' => 2 }],
142
+ 'ScheduledTransactionDetails' => [{ 'Amount' => 450, 'AccountId' => 2, 'EntityId' => nil, 'EntityTypeId' => nil }],
143
143
  'GatewayScheduleId' => nil,
144
144
  'SourceTypeValueId' => 10,
145
145
  'ForeignKey' => nil
@@ -85,7 +85,7 @@ RSpec.describe RockRMS::Client::Transaction, type: :model do
85
85
  'FinancialPaymentDetailId' => 1,
86
86
  'TransactionCode' => 'asdf',
87
87
  'TransactionDateTime' => 1,
88
- 'TransactionDetails' => [{ 'Amount' => 450, 'AccountId' => 2 }],
88
+ 'TransactionDetails' => [{ 'Amount' => 450, 'AccountId' => 2, 'EntityTypeId' => nil, 'EntityId' => nil }],
89
89
  'TransactionTypeValueId' => 53,
90
90
  'SourceTypeValueId' => 10,
91
91
  'Summary' => 'taco tuesday'
@@ -27,6 +27,7 @@ RSpec.describe RockRMS::Response::RecurringDonation, type: :model do
27
27
  start_date
28
28
  transaction_details
29
29
  transaction_code
30
+ summary
30
31
  ]
31
32
 
32
33
  expect(response.keys).to eq(expected_keys)
@@ -17,6 +17,8 @@ RSpec.describe RockRMS::Response::TransactionDetail, type: :model do
17
17
  expect(r[:id]).to eq(p['Id'])
18
18
  expect(r[:fund_id]).to eq(p['AccountId'])
19
19
  expect(r[:amount]).to eq(p['Amount'])
20
+ expect(r[:entity_type_id]).to eq(p['EntityTypeId'])
21
+ expect(r[:entity_id]).to eq(p['EntityId'])
20
22
  end
21
23
  end
22
24
  end
@@ -9,6 +9,7 @@ class RockMock < Sinatra::Base
9
9
  'FinancialPaymentDetails/:id',
10
10
  'FinancialPersonSavedAccounts/:id',
11
11
  'FinancialTransactions/:id',
12
+ 'FinancialScheduledTransactionDetails/:id',
12
13
  'GroupMembers/:id'
13
14
  ].each do |end_point|
14
15
  delete "/api/#{end_point}" do
@@ -64,7 +65,8 @@ class RockMock < Sinatra::Base
64
65
  create_recurring_donation: 'FinancialScheduledTransactions',
65
66
  create_refund: 'FinancialTransactionRefunds',
66
67
  create_refund_reason: 'DefinedValues',
67
- create_saved_payment_method: 'FinancialPersonSavedAccounts'
68
+ create_saved_payment_method: 'FinancialPersonSavedAccounts',
69
+ create_recurring_donation_detail: 'FinancialScheduledTransactionDetails',
68
70
  }.each do |json, end_point|
69
71
  post "/api/#{end_point}" do
70
72
  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: 5.7.1
4
+ version: 5.9.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Taylor Brooks
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-11-14 00:00:00.000000000 Z
11
+ date: 2021-04-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -114,14 +114,14 @@ dependencies:
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: '10.4'
117
+ version: 12.3.3
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: '10.4'
124
+ version: 12.3.3
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: rspec
127
127
  requirement: !ruby/object:Gem::Requirement
@@ -300,6 +300,7 @@ files:
300
300
  - spec/support/fixtures/create_payment_detail.json
301
301
  - spec/support/fixtures/create_phone_number.json
302
302
  - spec/support/fixtures/create_recurring_donation.json
303
+ - spec/support/fixtures/create_recurring_donation_detail.json
303
304
  - spec/support/fixtures/create_refund.json
304
305
  - spec/support/fixtures/create_refund_reason.json
305
306
  - spec/support/fixtures/create_saved_payment_method.json