rock_rms 0.0.10 → 1.0.0

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: f91cc63d34c6ffff2362373c6ccf1e039f615fff
4
- data.tar.gz: b1daf2cb7f116f061a0943f9e0bf310953644dbf
3
+ metadata.gz: 65005100add8c42685fc4eae6afd72642d839b51
4
+ data.tar.gz: b177de895e8be5949aa3a1c3074479f873271594
5
5
  SHA512:
6
- metadata.gz: d2a7917f9c621012d0b59a23b7cd33231fca966ae0c2f9c2b84188aa891ae5e4600ee502395d46a48c6d8b1490a85fe56402f64c72af04f48526c4b7655aae22
7
- data.tar.gz: d14d491ff89b2696313f567deb772fa6d9bb4ce2988e8babe8777c75eb4f5841c643da975a45ea475e3c9d454ebea5553de4a70090cf2af12bc5f8ab1bd0ac27
6
+ metadata.gz: 7122edcf512009eec7a9cc633c0cc087a1962ee1d533b0b47e03b179e19f8b26cb029e43fc846d31d6b81852928ebc674c3979692bbf395786f256359ea803c6
7
+ data.tar.gz: 74c27a4c0f3a1536a2ede5c220f1cd3584b0586c5b20e8787a224ab7f161641cc25965dc32bd91ad8b7e04d3c6d66c0faa028cf74f5a1cf2c543f137a79d99bc
data/README.md CHANGED
@@ -12,7 +12,7 @@ I'm a big fan of Rock so if you have problems using the gem or would like to see
12
12
  Add this line to your application's Gemfile:
13
13
  ````ruby
14
14
  # in your Gemfile
15
- gem 'rock_rms', '~> 0.1'
15
+ gem 'rock_rms', '~> 1.0'
16
16
 
17
17
  # then...
18
18
  bundle install
@@ -46,4 +46,4 @@ Everyone is encouraged to help improve this project. Here are a few ways you can
46
46
  - Suggest or add new features
47
47
 
48
48
  ### Copyright
49
- Copyright (c) 2017 Taylor Brooks. See LICENSE for details.
49
+ Copyright (c) 2018 Taylor Brooks. See LICENSE for details.
@@ -12,6 +12,7 @@ module RockRMS
12
12
  include RockRMS::Client::Fund
13
13
  include RockRMS::Client::PaymentMethod
14
14
  include RockRMS::Client::Person
15
+ include RockRMS::Client::RecurringDonation
15
16
  include RockRMS::Client::TransactionDetail
16
17
 
17
18
  attr_reader :url, :username, :password, :logger, :cookie, :connection
@@ -32,16 +33,16 @@ module RockRMS
32
33
  connection.get(path, options).body
33
34
  end
34
35
 
35
- def patch(path, req_body)
36
- connection.patch(path, req_body).body
36
+ def patch(path, options = {})
37
+ connection.patch(path, options).body
37
38
  end
38
39
 
39
- def post(path, req_body)
40
- connection.post(path, req_body).body
40
+ def post(path, options = {})
41
+ connection.post(path, options).body
41
42
  end
42
43
 
43
- def put(path, req_body)
44
- connection.put(path, req_body).body
44
+ def put(path, options = {})
45
+ connection.put(path, options).body
45
46
  end
46
47
 
47
48
  private
@@ -17,25 +17,22 @@ module RockRMS
17
17
  end
18
18
 
19
19
  def create_donation(
20
- amount:,
21
20
  authorized_person_id:,
22
21
  batch_id:,
23
22
  date:,
24
- fund_id:,
23
+ funds:,
25
24
  payment_type:,
26
25
  source_type_id: 10,
27
26
  transaction_code: nil
28
27
  )
28
+
29
29
  options = {
30
30
  'AuthorizedPersonAliasId' => authorized_person_id,
31
31
  'BatchId' => batch_id,
32
32
  'FinancialPaymentDetailId' => payment_type,
33
33
  'TransactionCode' => transaction_code,
34
34
  'TransactionDateTime' => date,
35
- 'TransactionDetails' => [{
36
- 'Amount' => amount,
37
- 'AccountId' => fund_id
38
- }],
35
+ 'TransactionDetails' => translate_funds(funds),
39
36
  'TransactionTypeValueId' => 53, # contribution, registration
40
37
  'SourceTypeValueId' => source_type_id, # website, kiosk, mobile app
41
38
  }
@@ -55,6 +52,15 @@ module RockRMS
55
52
 
56
53
  private
57
54
 
55
+ def translate_funds(funds)
56
+ funds.map do |fund|
57
+ {
58
+ 'Amount' => fund[:amount],
59
+ 'AccountId' => fund[:fund_id]
60
+ }
61
+ end
62
+ end
63
+
58
64
  def transaction_path(id = nil)
59
65
  id ? "FinancialTransactions/#{id}" : 'FinancialTransactions'
60
66
  end
@@ -0,0 +1,21 @@
1
+ module RockRMS
2
+ class Client
3
+ module RecurringDonation
4
+ def list_recurring_donations(options = {})
5
+ res = get(recurring_donation_path, options)
6
+ RockRMS::RecurringDonation.format(res)
7
+ end
8
+
9
+ def find_recurring_donation(id)
10
+ res = get(recurring_donation_path(id))
11
+ RockRMS::RecurringDonation.format(res)
12
+ end
13
+
14
+ private
15
+
16
+ def recurring_donation_path(id = nil)
17
+ id ? "FinancialScheduledTransactions/#{id}" : 'FinancialScheduledTransactions'
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,27 @@
1
+ module RockRMS
2
+ class RecurringDonation
3
+ MAP = {
4
+ id: 'Id',
5
+ person_id: 'AuthorizedPersonAliasId',
6
+ transaction_details: 'ScheduledTransactionDetails'
7
+ }.freeze
8
+
9
+ def self.format(data)
10
+ if data.is_a?(Array)
11
+ data.map { |object| format_single(object) }
12
+ else
13
+ format_single(data)
14
+ end
15
+ end
16
+
17
+ def self.format_single(data)
18
+ MAP.each.with_object({}) do |(l, r), object|
19
+ object[l] = if l == :transaction_details
20
+ RockRMS::RecurringDonationDetails.format(data[r])
21
+ else
22
+ data[r]
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,22 @@
1
+ module RockRMS
2
+ class RecurringDonationDetails
3
+ MAP = {
4
+ fund_id: 'AccountId',
5
+ amount: 'Amount'
6
+ }.freeze
7
+
8
+ def self.format(data)
9
+ if data.is_a?(Array)
10
+ data.map { |object| format_single(object) }
11
+ else
12
+ format_single(data)
13
+ end
14
+ end
15
+
16
+ def self.format_single(data)
17
+ MAP.each.with_object({}) do |(l, r), object|
18
+ object[l] = data[r]
19
+ end
20
+ end
21
+ end
22
+ end
@@ -1,3 +1,3 @@
1
1
  module RockRMS
2
- VERSION = '0.0.10'.freeze
2
+ VERSION = '1.0.0'.freeze
3
3
  end
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: 0.0.10
4
+ version: 1.0.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: 2017-12-12 00:00:00.000000000 Z
11
+ date: 2017-12-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -188,10 +188,13 @@ files:
188
188
  - lib/rock_rms/resources/fund.rb
189
189
  - lib/rock_rms/resources/payment_method.rb
190
190
  - lib/rock_rms/resources/person.rb
191
+ - lib/rock_rms/resources/recurring_donation.rb
191
192
  - lib/rock_rms/resources/transaction_detail.rb
192
193
  - lib/rock_rms/responses/donation.rb
193
194
  - lib/rock_rms/responses/fund.rb
194
195
  - lib/rock_rms/responses/person.rb
196
+ - lib/rock_rms/responses/recurring_donation.rb
197
+ - lib/rock_rms/responses/recurring_donation_details.rb
195
198
  - lib/rock_rms/version.rb
196
199
  - rock_rms.gemspec
197
200
  - spec/rock_rms/client_spec.rb