Sha256: a9b6af4b7a1cbb000997a674536d49b0c894501455db95953e37736fb3b023b1

Contents?: true

Size: 1.24 KB

Versions: 2

Compression:

Stored size: 1.24 KB

Contents

module Killbill::Litle
  class LitlePaymentMethod < ActiveRecord::Base
    attr_accessible :kb_account_id, :kb_payment_method_id, :litle_token

    def self.from_kb_account_id(kb_account_id)
      find_all_by_kb_account_id_and_is_deleted(kb_account_id, false)
    end

    def self.from_kb_payment_method_id(kb_payment_method_id)
      payment_methods = find_all_by_kb_payment_method_id_and_is_deleted(kb_payment_method_id, false)
      raise "No payment method found for payment method #{kb_payment_method_id}" if payment_methods.empty?
      raise "Killbill payment method mapping to multiple active Litle tokens for payment method #{kb_payment_method_id}" if payment_methods.size > 1
      payment_methods[0]
    end

    def self.mark_as_deleted!(kb_payment_method_id)
      payment_method = from_kb_payment_method_id(kb_payment_method_id)
      payment_method.is_deleted = true
      payment_method.save!
    end

    def to_payment_method_response
      external_payment_method_id = litle_token
      # No concept of default payment method in Litle
      is_default = false
      # No extra information is stored in Litle
      properties = []

      Killbill::Plugin::PaymentMethodResponse.new external_payment_method_id, is_default, properties
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
killbill-litle-1.0.2 lib/litle/models/litle_payment_method.rb
killbill-litle-1.0.1 lib/litle/models/litle_payment_method.rb