Class: MarkReservationAsPaidWorker
- Inherits:
-
ApplicationWorker
- Object
- ApplicationWorker
- MarkReservationAsPaidWorker
- Defined in:
- app/workers/mark_reservation_as_paid_worker.rb
Overview
typed: ignore frozen_string_literal: true
Instance Method Summary collapse
Methods inherited from ApplicationWorker
Instance Method Details
#perform(id, transaction, reference_no = nil) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'app/workers/mark_reservation_as_paid_worker.rb', line 10 def perform(id, transaction, reference_no = nil) id = id.with_indifferent_access if id.respond_to?(:with_indifferent_access) transaction = transaction.with_indifferent_access if transaction.respond_to?(:with_indifferent_access) charge = Externals::Omise::Charge.find_by omise_charge_id: transaction charge = Externals::Omise::Charge.find_by omise_charge_id: id if charge.blank? raise StandardError, 'Unknown transaction ID' if charge.blank? if reference_no.nil? # reference_no is for GB Primepay, omise_charge_id is for Omise reference_no = charge.reference_no.presence || charge.omise_charge_id end service = if charge.reservation_id.present? MarkReservationAsPaidService.new(id, transaction, reference_no) elsif charge.voucher_transaction_id.present? MarkVoucherTransactionAsPaidService.new(id, transaction, reference_no) elsif charge.ticket_transaction_id.present? PaymentProcessService::MarkAsPaid.new(id, transaction, reference_no) end return if service.execute! HH_LOGGER.error(service., { id: id, transaction: transaction }) raise end |