Sha256: 76ded49f2460f1526645ce955ec592ba962d62d6359861ef36a9bb06fd8f82e1

Contents?: true

Size: 1.06 KB

Versions: 5

Compression:

Stored size: 1.06 KB

Contents

module Workarea
  decorate Storefront::Checkout::PaymentViewModel, with: :klarna do
    def klarna_session
      @klarna_session ||=
        Payment::KlarnaSession.find_or_initialize_by(id: order.id)
    end

    def offer_klarna_payments?
      payment.eligible_for_klarna? &&
        klarna_session.client_token.present?
    end

    def klarna_data
      @klarna_data ||= klarna_session
        .attributes
        .slice('client_token', 'payment_method_categories')
        .merge(
          order: Klarna::Gateway::Order
                  .new(order, payment: payment, shippings: shippings)
                  .to_h
                  .except(:merchant_urls)
        )
    end

    def klarna_selected?
      payment.klarna&.authorization_token.present?
    end

    def klarna_payment_category_selected?(category)
      klarna_selected? && payment.klarna.payment_method_category == category
    end

    def klarna_expired?
      klarna_selected? && payment.klarna.authorization_token_expired?
    end

    def using_new_card?
      super && !klarna_selected?
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
workarea-klarna-1.1.0 app/view_models/workarea/storefront/checkout/payment_view_model.decorator
workarea-klarna-1.1.0.beta1 app/view_models/workarea/storefront/checkout/payment_view_model.decorator
workarea-klarna-1.0.0 app/view_models/workarea/storefront/checkout/payment_view_model.decorator
workarea-klarna-1.0.0.beta2 app/view_models/workarea/storefront/checkout/payment_view_model.decorator
workarea-klarna-1.0.0.beta1 app/view_models/workarea/storefront/checkout/payment_view_model.decorator