Class: Workarea::LogGiftCardRedemption

Inherits:
Object
  • Object
show all
Includes:
Sidekiq::CallbacksWorker, Sidekiq::Worker
Defined in:
app/workers/workarea/log_gift_card_redemption.rb

Instance Method Summary collapse

Instance Method Details

#perform(order_id) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'app/workers/workarea/log_gift_card_redemption.rb', line 8

def perform(order_id)
  order = Order.find(order_id)

  payment = Payment.find_or_initialize_by(id: order.id)
  return unless payment.gift_card?

  gift_card = Payment::GiftCard.find_by_token(payment.gift_card.number)
  return if redemption_already_exists?(gift_card, order.id)

  gift_card.redemptions.create!(
    redeemed_at: order.placed_at,
    amount: payment.gift_card.amount,
    order_id: order.id
  )

  gift_card.touch
end