Sha256: 61fd70c731cdbdf2e36685c8935d3a37fe43a612e4f343ff9a05f24c692d1b5f

Contents?: true

Size: 1.14 KB

Versions: 1

Compression:

Stored size: 1.14 KB

Contents

module Workarea
  decorate SaveUserOrderDetails, with: :payware_connect do
    def save_payment_details(order, user)
      payment = Payment.find_or_initialize_by(id: order.id)
      payment_profile = Payment::Profile.lookup(PaymentReference.new(user))
      billing_address = extract_address_attributes(payment.address)

      if billing_address.present?
        user.auto_save_billing_address(billing_address)

        if user.public_info.blank?
          user.update_attributes!(
            first_name: billing_address[:first_name],
            last_name: billing_address[:last_name]
          )
        end
      end

      if payment.credit_card? && !payment.credit_card.saved?
        payment_profile.credit_cards.create(
          first_name: payment.credit_card.first_name,
          last_name: payment.credit_card.last_name,
          display_number: payment.credit_card.display_number,
          issuer: payment.credit_card.issuer,
          month: payment.credit_card.month,
          year: payment.credit_card.year,
          token: payment.credit_card.token,
          partial_number: payment.credit_card.partial_number
        )
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
workarea-payware_connect-2.1.2 app/workers/workarea/save_user_order_details.decorator