Sha256: f41269ceb7795ffba66206ae5a81fa84b62ebaf3dedfb92dad9c939d6db552be

Contents?: true

Size: 1.96 KB

Versions: 18

Compression:

Stored size: 1.96 KB

Contents

module RockRMS
  class Client
    module PaymentDetail
      def list_payment_details(options = {})
        res = get(payment_detail_path, options)
        Response::PaymentDetail.format(res)
      end

      def create_payment_detail(
        payment_type: nil,
        foreign_key: nil,
        card_type: nil,
        last_4: nil,
        currency_type_value_id: nil
      )
        options = {
          'CurrencyTypeValueId' => currency_type_value_id || cast_payment_type(payment_type),
          'CreditCardTypeValueId' => cast_card_type(card_type),
          'ForeignKey' => foreign_key
        }

        options['AccountNumberMasked'] = "************#{last_4}" if last_4

        post(payment_detail_path, options)
      end

      def update_payment_detail(id, foreign_key: nil, card_type: nil, last_4: nil, currency_type_value_id: nil)
        options = {}

        options['CreditCardTypeValueId'] = cast_card_type(card_type) if card_type
        options['ForeignKey'] = foreign_key if foreign_key
        options['AccountNumberMasked'] = "************#{last_4}" if last_4
        options['CurrencyTypeValueId'] = currency_type_value_id if currency_type_value_id

        patch(payment_detail_path(id), options)
      end

      def delete_payment_detail(id)
        delete(payment_detail_path(id))
      end

      private

      def cast_payment_type(payment_type)
        case payment_type
        when 'cash'
          6
        when 'check'
          9
        when 'card'
          156
        when 'bank account', 'ach'
          157
        end
      end

      def cast_card_type(card_type)
        case card_type
        when 'visa'
          7
        when 'mastercard'
          8
        when 'amex'
          159
        when 'discover'
          160
        when 'diner'
          161
        when 'jcb'
          162
        end
      end

      def payment_detail_path(id = nil)
        id ? "FinancialPaymentDetails/#{id}" : 'FinancialPaymentDetails'
      end
    end
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
rock_rms-9.15.0 lib/rock_rms/resources/payment_detail.rb
rock_rms-9.14.0 lib/rock_rms/resources/payment_detail.rb
rock_rms-9.13.0 lib/rock_rms/resources/payment_detail.rb
rock_rms-9.12.0 lib/rock_rms/resources/payment_detail.rb
rock_rms-9.11.0 lib/rock_rms/resources/payment_detail.rb
rock_rms-9.10.0 lib/rock_rms/resources/payment_detail.rb
rock_rms-9.9.0 lib/rock_rms/resources/payment_detail.rb
rock_rms-9.8.0 lib/rock_rms/resources/payment_detail.rb
rock_rms-9.7.0 lib/rock_rms/resources/payment_detail.rb
rock_rms-9.6.0 lib/rock_rms/resources/payment_detail.rb
rock_rms-9.5.0 lib/rock_rms/resources/payment_detail.rb
rock_rms-9.4.0 lib/rock_rms/resources/payment_detail.rb
rock_rms-9.3.0 lib/rock_rms/resources/payment_detail.rb
rock_rms-9.2.0 lib/rock_rms/resources/payment_detail.rb
rock_rms-9.1.0 lib/rock_rms/resources/payment_detail.rb
rock_rms-9.0.0 lib/rock_rms/resources/payment_detail.rb
rock_rms-8.23.0 lib/rock_rms/resources/payment_detail.rb
rock_rms-8.22.0 lib/rock_rms/resources/payment_detail.rb