rock_rms 2.0.0 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (57) hide show
  1. checksums.yaml +4 -4
  2. data/.ruby-version +1 -1
  3. data/lib/rock_rms/client.rb +2 -2
  4. data/lib/rock_rms/resources/batch.rb +4 -2
  5. data/lib/rock_rms/resources/fund.rb +1 -1
  6. data/lib/rock_rms/resources/group.rb +3 -3
  7. data/lib/rock_rms/resources/person.rb +4 -4
  8. data/lib/rock_rms/resources/phone_number.rb +1 -1
  9. data/lib/rock_rms/resources/recurring_donation.rb +2 -2
  10. data/lib/rock_rms/resources/{donation.rb → transaction.rb} +13 -11
  11. data/lib/rock_rms/resources/transaction_detail.rb +2 -2
  12. data/lib/rock_rms/response/base.rb +29 -0
  13. data/lib/rock_rms/response/batch.rb +23 -0
  14. data/lib/rock_rms/{responses → response}/campus.rb +4 -14
  15. data/lib/rock_rms/response/fund.rb +14 -0
  16. data/lib/rock_rms/{responses → response}/group.rb +4 -14
  17. data/lib/rock_rms/response/group_location.rb +22 -0
  18. data/lib/rock_rms/{responses → response}/location.rb +4 -14
  19. data/lib/rock_rms/response/payment_method.rb +16 -0
  20. data/lib/rock_rms/response/person.rb +20 -0
  21. data/lib/rock_rms/response/phone_number.rb +17 -0
  22. data/lib/rock_rms/response/recurring_donation.rb +20 -0
  23. data/lib/rock_rms/response/recurring_donation_details.rb +14 -0
  24. data/lib/rock_rms/response/transaction.rb +28 -0
  25. data/lib/rock_rms/response/transaction_detail.rb +15 -0
  26. data/lib/rock_rms/version.rb +1 -1
  27. data/spec/rock_rms/resources/batch_spec.rb +8 -1
  28. data/spec/rock_rms/resources/group_spec.rb +3 -3
  29. data/spec/rock_rms/resources/person_spec.rb +1 -1
  30. data/spec/rock_rms/resources/phone_number_spec.rb +1 -1
  31. data/spec/rock_rms/resources/recurring_donation_spec.rb +2 -2
  32. data/spec/rock_rms/resources/transaction_detail_spec.rb +1 -1
  33. data/spec/rock_rms/resources/{donation_spec.rb → transaction_spec.rb} +21 -21
  34. data/spec/rock_rms/response/batch_spec.rb +27 -0
  35. data/spec/rock_rms/{responses → response}/campus_spec.rb +1 -1
  36. data/spec/rock_rms/{responses → response}/group_location_spec.rb +2 -2
  37. data/spec/rock_rms/{responses → response}/group_spec.rb +3 -3
  38. data/spec/rock_rms/{responses → response}/location_spec.rb +1 -1
  39. data/spec/rock_rms/{responses → response}/phone_number_spec.rb +1 -1
  40. data/spec/rock_rms/{responses → response}/recurring_donation_details_spec.rb +1 -1
  41. data/spec/rock_rms/{responses → response}/recurring_donation_spec.rb +2 -2
  42. data/spec/rock_rms/{responses → response}/transaction_detail_spec.rb +1 -1
  43. data/spec/rock_rms/{responses/donation_spec.rb → response/transaction_spec.rb} +3 -3
  44. data/spec/support/fixtures/{create_donation.json → create_transaction.json} +0 -0
  45. data/spec/support/fixtures/{donation.json → transaction.json} +0 -0
  46. data/spec/support/fixtures/{donations.json → transactions.json} +0 -0
  47. data/spec/support/rock_mock.rb +3 -3
  48. metadata +32 -29
  49. data/lib/rock_rms/responses/donation.rb +0 -40
  50. data/lib/rock_rms/responses/fund.rb +0 -18
  51. data/lib/rock_rms/responses/group_location.rb +0 -32
  52. data/lib/rock_rms/responses/payment_method.rb +0 -24
  53. data/lib/rock_rms/responses/person.rb +0 -33
  54. data/lib/rock_rms/responses/phone_number.rb +0 -27
  55. data/lib/rock_rms/responses/recurring_donation.rb +0 -32
  56. data/lib/rock_rms/responses/recurring_donation_details.rb +0 -24
  57. data/lib/rock_rms/responses/transaction_detail.rb +0 -25
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 765aea7d65ac938d72b224db13b53ef9a14a01a4
4
- data.tar.gz: e61962b4c4647bd2c0a75a654c6662ab9a3adcd0
3
+ metadata.gz: 65ed9a699a31184f1078ecace1c1b051a1b47cec
4
+ data.tar.gz: 32794e0d15893c90bdf25837bdef55ba091ae849
5
5
  SHA512:
6
- metadata.gz: 2fbbab71f6c18d1ee19ec069ac1eec9223240bff7a9e38dfcf7256e9d6f4d018af61f1c7be2a15ee07f886eeb950637ae2f210ebfd20136bf7a311882ae61ca4
7
- data.tar.gz: ae2d0c9953da765fe8af28c1b672bfb97006c260d97254447e945776f8c1ea77657562280d45463dcaa52b576b1df3fe4fa253d0864bf7c92888ea11ef06ba4f
6
+ metadata.gz: df5926061ebb2526b41a1628b028e77925ec7e9708cbf7e452762b9c840a7bc266a2bf84885cbd1526f9f202b70e9d5f56a727f3aec3bda9fea1ca9a925824a1
7
+ data.tar.gz: bf1cd9228b9196b391419cd287b42a59340dd5320dc82d4d4259f0317d9da25f3cc29bf2a906e64a21f2d85fa14e4d541c4a52deb75907c6529a9894be4661be
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.2.2
1
+ 2.3.6
@@ -3,12 +3,11 @@ require 'faraday_middleware'
3
3
  require 'faraday_middleware/parse_oj'
4
4
 
5
5
  Dir[File.expand_path('../resources/*.rb', __FILE__)].each { |f| require f }
6
- Dir[File.expand_path('../responses/*.rb', __FILE__)].each { |f| require f }
6
+ Dir[File.expand_path('../response/*.rb', __FILE__)].each { |f| require f }
7
7
 
8
8
  module RockRMS
9
9
  class Client
10
10
  include RockRMS::Client::Batch
11
- include RockRMS::Client::Donation
12
11
  include RockRMS::Client::Fund
13
12
  include RockRMS::Client::Group
14
13
  include RockRMS::Client::GroupMember
@@ -16,6 +15,7 @@ module RockRMS
16
15
  include RockRMS::Client::Person
17
16
  include RockRMS::Client::PhoneNumber
18
17
  include RockRMS::Client::RecurringDonation
18
+ include RockRMS::Client::Transaction
19
19
  include RockRMS::Client::TransactionDetail
20
20
 
21
21
  attr_reader :url, :username, :password, :logger, :cookie, :connection
@@ -2,11 +2,13 @@ module RockRMS
2
2
  class Client
3
3
  module Batch
4
4
  def list_batches(options = {})
5
- get(batches_path, options)
5
+ res = get(batches_path, options)
6
+ Response::Batch.format(res)
6
7
  end
7
8
 
8
9
  def find_batch(id)
9
- get(batches_path(id))
10
+ res = get(batches_path(id))
11
+ Response::Batch.format(res)
10
12
  end
11
13
 
12
14
  def create_batch(name:, start_time:, end_time:, foreign_key: nil)
@@ -3,7 +3,7 @@ module RockRMS
3
3
  module Fund
4
4
  def list_funds(options = {})
5
5
  res = get(fund_path, options)
6
- RockRMS::Fund.format(res)
6
+ Response::Fund.format(res)
7
7
  end
8
8
 
9
9
  private
@@ -2,11 +2,11 @@ module RockRMS
2
2
  class Client
3
3
  module Group
4
4
  def list_groups(options = {})
5
- RockRMS::Responses::Group.format(get(group_path, options))
5
+ Response::Group.format(get(group_path, options))
6
6
  end
7
7
 
8
8
  def find_group(id)
9
- RockRMS::Responses::Group.format(get(group_path(id)))
9
+ Response::Group.format(get(group_path(id)))
10
10
  end
11
11
 
12
12
  def list_groups_for_person(person_id, options = {})
@@ -20,7 +20,7 @@ module RockRMS
20
20
  end
21
21
 
22
22
  def list_families_for_person(person_id, options = {})
23
- RockRMS::Responses::Group.format(
23
+ Response::Group.format(
24
24
  get("Groups/GetFamilies/#{person_id}", options)
25
25
  )
26
26
  end
@@ -3,17 +3,17 @@ module RockRMS
3
3
  module Person
4
4
  def list_people(options = {})
5
5
  res = get(people_path, options)
6
- RockRMS::Responses::Person.format(res)
6
+ Response::Person.format(res)
7
7
  end
8
8
 
9
9
  def find_person(id)
10
10
  res = get(people_path(id))
11
- RockRMS::Responses::Person.format(res)
11
+ Response::Person.format(res)
12
12
  end
13
13
 
14
14
  def find_person_by_email(email)
15
15
  res = get("People/GetByEmail/#{email}")
16
- RockRMS::Responses::Person.format(res)
16
+ Response::Person.format(res)
17
17
  end
18
18
 
19
19
  NAME_SEARCH_DEFAULTS = {
@@ -26,7 +26,7 @@ module RockRMS
26
26
  def find_person_by_name(full_name, options = {})
27
27
  priority = options.merge(name: full_name)
28
28
 
29
- RockRMS::Responses::Person.format(
29
+ Response::Person.format(
30
30
  get('People/Search', NAME_SEARCH_DEFAULTS.merge(priority))
31
31
  )
32
32
  end
@@ -2,7 +2,7 @@ module RockRMS
2
2
  class Client
3
3
  module PhoneNumber
4
4
  def list_phone_numbers(options = {})
5
- RockRMS::Responses::PhoneNumber.format(get(phone_number_path, options))
5
+ Response::PhoneNumber.format(get(phone_number_path, options))
6
6
  end
7
7
 
8
8
  private
@@ -3,12 +3,12 @@ module RockRMS
3
3
  module RecurringDonation
4
4
  def list_recurring_donations(options = {})
5
5
  res = get(recurring_donation_path, options)
6
- RockRMS::Responses::RecurringDonation.format(res)
6
+ Response::RecurringDonation.format(res)
7
7
  end
8
8
 
9
9
  def find_recurring_donation(id)
10
10
  res = get(recurring_donation_path(id))
11
- RockRMS::Responses::RecurringDonation.format(res)
11
+ Response::RecurringDonation.format(res)
12
12
  end
13
13
 
14
14
  def update_recurring_donation(
@@ -1,22 +1,24 @@
1
1
  module RockRMS
2
2
  class Client
3
- module Donation
4
- def list_donations(options = {})
3
+ module Transaction
4
+ PATH = 'FinancialTransactions'.freeze
5
+
6
+ def list_transactions(options = {})
5
7
  res = get(transaction_path, options)
6
- RockRMS::Responses::Donation.format(res)
8
+ Response::Transaction.format(res)
7
9
  end
8
10
 
9
11
  def find_donations_by_giving_id(id, raw = false)
10
- res = get("FinancialTransactions/GetByGivingId/#{id}?$expand=TransactionDetails")
11
- raw ? res : RockRMS::Responses::Donation.format(res)
12
+ res = get("#{PATH}/GetByGivingId/#{id}?$expand=TransactionDetails")
13
+ raw ? res : Response::Transaction.format(res)
12
14
  end
13
15
 
14
- def find_donation(id)
16
+ def find_transaction(id)
15
17
  res = get(transaction_path(id))
16
- RockRMS::Responses::Donation.format(res)
18
+ Response::Transaction.format(res)
17
19
  end
18
20
 
19
- def create_donation(
21
+ def create_transaction(
20
22
  authorized_person_id:,
21
23
  batch_id:,
22
24
  date:,
@@ -43,7 +45,7 @@ module RockRMS
43
45
  post(transaction_path, options)
44
46
  end
45
47
 
46
- def update_donation(id, batch_id: nil, summary: nil, recurring_donation_id: nil)
48
+ def update_transaction(id, batch_id: nil, summary: nil, recurring_donation_id: nil)
47
49
  options = {}
48
50
 
49
51
  options['Summary'] = summary if summary
@@ -53,7 +55,7 @@ module RockRMS
53
55
  patch(transaction_path(id), options)
54
56
  end
55
57
 
56
- def delete_donation(id)
58
+ def delete_transaction(id)
57
59
  delete(transaction_path(id))
58
60
  end
59
61
 
@@ -69,7 +71,7 @@ module RockRMS
69
71
  end
70
72
 
71
73
  def transaction_path(id = nil)
72
- id ? "FinancialTransactions/#{id}" : 'FinancialTransactions'
74
+ id ? "#{PATH}/#{id}" : PATH
73
75
  end
74
76
  end
75
77
  end
@@ -3,12 +3,12 @@ module RockRMS
3
3
  module TransactionDetail
4
4
  def list_transaction_details(options = {})
5
5
  res = get(transaction_detail_path, options)
6
- RockRMS::Responses::TransactionDetail.format(res)
6
+ Response::TransactionDetail.format(res)
7
7
  end
8
8
 
9
9
  def find_transaction_detail(id)
10
10
  res = get(transaction_detail_path(id))
11
- RockRMS::Responses::TransactionDetail.format(res)
11
+ Response::TransactionDetail.format(res)
12
12
  end
13
13
 
14
14
  def update_transaction_detail(id, fund_id:)
@@ -0,0 +1,29 @@
1
+ module RockRMS
2
+ module Response
3
+ class Base
4
+ attr_reader :data
5
+
6
+ def self.format(data)
7
+ new(data).format
8
+ end
9
+
10
+ def initialize(data)
11
+ @data = data
12
+ end
13
+
14
+ def format
15
+ if data.is_a?(Array)
16
+ data.map { |item| format_single(item) }
17
+ else
18
+ format_single(data)
19
+ end
20
+ end
21
+
22
+ def to_h(dict, data)
23
+ dict.each_with_object({}) do |(l, r), object|
24
+ object[l] = data[r]
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,23 @@
1
+ module RockRMS
2
+ module Response
3
+ class Batch < Base
4
+ MAP = {
5
+ id: 'Id',
6
+ name: 'Name',
7
+ control_amount: 'ControlAmount',
8
+ transactions: 'Transactions'
9
+ }.freeze
10
+
11
+ def format_single(data)
12
+ response = to_h(MAP, data)
13
+ response[:transactions] = Transaction.format(response[:transactions])
14
+ response[:amount] = calculate_total(response[:transactions])
15
+ response
16
+ end
17
+
18
+ def calculate_total(transactions)
19
+ transactions.reduce(0) { |sum, txn| sum + txn[:amount] }
20
+ end
21
+ end
22
+ end
23
+ end
@@ -1,6 +1,6 @@
1
1
  module RockRMS
2
- module Responses
3
- class Campus
2
+ module Response
3
+ class Campus < Base
4
4
  MAP = {
5
5
  id: 'Id',
6
6
  name: 'Name',
@@ -14,18 +14,8 @@ module RockRMS
14
14
  guid: 'Guid'
15
15
  }.freeze
16
16
 
17
- def self.format(data)
18
- if data.is_a?(Array)
19
- data.map { |object| format_single(object) }
20
- else
21
- format_single(data)
22
- end
23
- end
24
-
25
- def self.format_single(data)
26
- MAP.each.with_object({}) do |(l, r), object|
27
- object[l] = data[r]
28
- end
17
+ def format_single(data)
18
+ to_h(MAP, data)
29
19
  end
30
20
  end
31
21
  end
@@ -0,0 +1,14 @@
1
+ module RockRMS
2
+ module Response
3
+ class Fund < Base
4
+ MAP = {
5
+ id: 'Id',
6
+ name: 'Name'
7
+ }.freeze
8
+
9
+ def format_single(data)
10
+ to_h(MAP, data)
11
+ end
12
+ end
13
+ end
14
+ end
@@ -1,6 +1,6 @@
1
1
  module RockRMS
2
- module Responses
3
- class Group
2
+ module Response
3
+ class Group < Base
4
4
  MAP = {
5
5
  id: 'Id',
6
6
  name: 'Name',
@@ -12,18 +12,8 @@ module RockRMS
12
12
  members: 'Members'
13
13
  }.freeze
14
14
 
15
- def self.format(data)
16
- if data.is_a?(Array)
17
- data.map { |object| format_single(object) }
18
- else
19
- format_single(data)
20
- end
21
- end
22
-
23
- def self.format_single(data)
24
- result = MAP.each.with_object({}) do |(l, r), object|
25
- object[l] = data[r]
26
- end
15
+ def format_single(data)
16
+ result = to_h(MAP, data)
27
17
 
28
18
  if group_locations = data['GroupLocations']
29
19
  result[:group_locations] = GroupLocation.format(group_locations)
@@ -0,0 +1,22 @@
1
+ module RockRMS
2
+ module Response
3
+ class GroupLocation < Base
4
+ MAP = {
5
+ id: 'Id',
6
+ group_id: 'GroupId',
7
+ location_id: 'LocationId',
8
+ guid: 'Guid'
9
+ }.freeze
10
+
11
+ def format_single(data)
12
+ result = to_h(MAP, data)
13
+
14
+ if location = data['Location']
15
+ result[:location] = Location.format(location)
16
+ end
17
+
18
+ result
19
+ end
20
+ end
21
+ end
22
+ end
@@ -1,6 +1,6 @@
1
1
  module RockRMS
2
- module Responses
3
- class Location
2
+ module Response
3
+ class Location < Base
4
4
  MAP = {
5
5
  id: 'Id',
6
6
  name: 'Name',
@@ -17,18 +17,8 @@ module RockRMS
17
17
  guid: 'Guid'
18
18
  }.freeze
19
19
 
20
- def self.format(data)
21
- if data.is_a?(Array)
22
- data.map { |object| format_single(object) }
23
- else
24
- format_single(data)
25
- end
26
- end
27
-
28
- def self.format_single(data)
29
- MAP.each.with_object({}) do |(l, r), object|
30
- object[l] = data[r]
31
- end
20
+ def format_single(data)
21
+ to_h(MAP, data)
32
22
  end
33
23
  end
34
24
  end
@@ -0,0 +1,16 @@
1
+ module RockRMS
2
+ module Response
3
+ class PaymentMethod < Base
4
+ MAP = {
5
+ id: 'Id',
6
+ foreign_key: 'ForeignKey',
7
+ payment_type_id: 'CurrencyTypeValueId',
8
+ masked_number: 'AccountNumberMasked'
9
+ }.freeze
10
+
11
+ def format_single(data)
12
+ to_h(MAP, data)
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,20 @@
1
+ module RockRMS
2
+ module Response
3
+ class Person < Base
4
+ MAP = {
5
+ id: 'Id',
6
+ name: 'FullName',
7
+ email: 'Email',
8
+ first_name: 'FirstName',
9
+ last_name: 'LastName',
10
+ giving_id: 'GivingId',
11
+ alias_id: 'PrimaryAliasId',
12
+ connection_status_value_id: 'ConnectionStatusValueId'
13
+ }.freeze
14
+
15
+ def format_single(data)
16
+ to_h(MAP, data)
17
+ end
18
+ end
19
+ end
20
+ end