Sha256: 4b19bbcaf4e5c5e2cbc4608b8675a23f115521981a25ad5fa832b1d8f1ee9cec

Contents?: true

Size: 1.77 KB

Versions: 4

Compression:

Stored size: 1.77 KB

Contents

module RockRMS
  class Client
    module Donation
      def list_donations(options = {})
        res = get(transaction_path, options)
        RockRMS::Donation.format(res)
      end

      def find_donations_by_giving_id(id, raw = false)
        res = get("FinancialTransactions/GetByGivingId/#{id}?$expand=TransactionDetails")
        raw ? res : RockRMS::Donation.format(res)
      end

      def find_donation(id)
        res = get(transaction_path(id))
        RockRMS::Donation.format(res)
      end

      def create_donation(
        authorized_person_id:,
        batch_id:,
        date:,
        funds:,
        payment_type:,
        source_type_id: 10,
        transaction_code: nil
      )

        options = {
          'AuthorizedPersonAliasId' => authorized_person_id,
          'BatchId' => batch_id,
          'FinancialPaymentDetailId' => payment_type,
          'TransactionCode' => transaction_code,
          'TransactionDateTime' => date,
          'TransactionDetails'  => translate_funds(funds),
          'TransactionTypeValueId' => 53,        # contribution, registration
          'SourceTypeValueId' => source_type_id, # website, kiosk, mobile app
        }
        post(transaction_path, options)
      end

      def update_donation(id, batch_id:)
        options = {
          'BatchId' => batch_id
        }
        patch(transaction_path(id), options)
      end

      def delete_donation(id)
        delete(transaction_path(id))
      end

      private

      def translate_funds(funds)
        funds.map do |fund|
          {
            'Amount' => fund[:amount],
            'AccountId' => fund[:fund_id]
          }
        end
      end

      def transaction_path(id = nil)
        id ? "FinancialTransactions/#{id}" : 'FinancialTransactions'
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
rock_rms-1.2.0 lib/rock_rms/resources/donation.rb
rock_rms-1.1.0 lib/rock_rms/resources/donation.rb
rock_rms-1.0.1 lib/rock_rms/resources/donation.rb
rock_rms-1.0.0 lib/rock_rms/resources/donation.rb