Module: RockRMS::Client::RecurringDonation

Included in:
RockRMS::Client
Defined in:
lib/rock_rms/resources/recurring_donation.rb

Instance Method Summary collapse

Instance Method Details

#create_recurring_donation(active: true, authorized_person_id:, foreign_key: nil, frequency:, funds:, gateway_id: nil, gateway_schedule_id: nil, next_payment_date:, source_type_id: 10, transaction_code: nil, start_date:) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/rock_rms/resources/recurring_donation.rb', line 14

def create_recurring_donation(
  active: true,
  authorized_person_id:,
  foreign_key: nil,
  frequency:,
  funds:,
  gateway_id: nil,
  gateway_schedule_id: nil,
  next_payment_date:,
  source_type_id: 10,
  transaction_code: nil,
  start_date:
)

  options = {
    'AuthorizedPersonAliasId'     => authorized_person_id,
    'TransactionFrequencyValueId' => RecurringFrequencies::RECURRING_FREQUENCIES[frequency],
    'StartDate'                   => start_date,
    'NextPaymentDate'             => next_payment_date,
    'IsActive'                    => active,
    'FinancialGatewayId'          => gateway_id,
    'TransactionCode'             => transaction_code,
    'ScheduledTransactionDetails' => translate_funds(funds),
    'GatewayScheduleId'           => gateway_schedule_id,
    'SourceTypeValueId'           => source_type_id,
    'ForeignKey'                  => foreign_key
  }
  post(recurring_donation_path, options)
end

#find_recurring_donation(id) ⇒ Object



9
10
11
12
# File 'lib/rock_rms/resources/recurring_donation.rb', line 9

def find_recurring_donation(id)
  res = get(recurring_donation_path(id))
  Response::RecurringDonation.format(res)
end

#list_recurring_donations(options = {}) ⇒ Object



4
5
6
7
# File 'lib/rock_rms/resources/recurring_donation.rb', line 4

def list_recurring_donations(options = {})
  res = get(recurring_donation_path, options)
  Response::RecurringDonation.format(res)
end

#update_recurring_donation(id, next_payment_date:, transaction_code: nil, active: nil) ⇒ Object



44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/rock_rms/resources/recurring_donation.rb', line 44

def update_recurring_donation(
  id,
  next_payment_date:,
  transaction_code: nil,
  active: nil
)
  options = { 'NextPaymentDate' => next_payment_date }
  options['TransactionCode'] = transaction_code if transaction_code
  options['IsActive']        = active           if !active.nil?

  patch(recurring_donation_path(id), options)
end