Sha256: b55043b4940604a7f1ddc87f34b3f4b1b5bce4e77b6a28183597d6018ede7016

Contents?: true

Size: 901 Bytes

Versions: 5

Compression:

Stored size: 901 Bytes

Contents

module Workarea
  class Fulfillment
    module Policies
      class CreateGiftCard < Base
        def process(order_item:, fulfillment: nil)
          return unless Workarea::GiftCards.uses_system_cards?
          return unless order_item.gift_card?

          order_item.quantity.times do
            Payment::GiftCard.create!(
              amount: order_item.original_unit_price,
              order_id: order_item.order.id,
              to: order_item.customizations['email'],
              from: order_item.customizations['from'],
              message: order_item.customizations['message'],
              notify: true,
              purchased: true
            )
          end

          return unless fulfillment.present?
          fulfillment.mark_item_shipped(
            id: order_item.id.to_s,
            quantity: order_item.quantity
          )
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
workarea-gift_cards-4.0.3 app/models/workarea/fulfillment/policies/create_gift_card.rb
workarea-gift_cards-4.0.2 app/models/workarea/fulfillment/policies/create_gift_card.rb
workarea-gift_cards-4.0.1 app/models/workarea/fulfillment/policies/create_gift_card.rb
workarea-gift_cards-4.0.0 app/models/workarea/fulfillment/policies/create_gift_card.rb
workarea-gift_cards-4.0.0.beta.1 app/models/workarea/fulfillment/policies/create_gift_card.rb