Sha256: 2e4eecaa7c620f84b2049d3fcaf3a76960f947210152b8ccc42ee70b2ee10d9f

Contents?: true

Size: 1.17 KB

Versions: 62

Compression:

Stored size: 1.17 KB

Contents

module Workarea
  class Payment
    module Authorize
      class StoreCredit
        include OperationImplementation

        def complete!
          profile.purchase_on_store_credit(transaction.amount.cents)

          transaction.action = 'purchase'
          transaction.response = ActiveMerchant::Billing::Response.new(
            true,
            I18n.t(
              'workarea.payment.store_credit_debit',
              amount: transaction.amount,
              email: profile.email
            )
          )

        rescue Workarea::Payment::InsufficientFunds
          transaction.response = ActiveMerchant::Billing::Response.new(
            false,
            I18n.t('workarea.payment.store_credit_insufficient_funds')
          )
        end

        def cancel!
          return unless transaction.success?

          profile.reload_store_credit(transaction.amount.cents)
          transaction.cancellation = ActiveMerchant::Billing::Response.new(
            true,
            I18n.t(
              'workarea.payment.store_credit_credit',
              amount: transaction.amount,
              email: profile.email
            )
          )
        end
      end
    end
  end
end

Version data entries

62 entries across 62 versions & 1 rubygems

Version Path
workarea-core-3.4.13 app/models/workarea/payment/authorize/store_credit.rb
workarea-core-3.4.12 app/models/workarea/payment/authorize/store_credit.rb