akkounts/app/jobs/btcpay_check_donation_job.rb
Râu Cao 54220019bb
Some checks failed
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is failing
Send email confirmation when BTC payment is confirmed
2024-03-02 14:31:48 +01:00

29 lines
686 B
Ruby

class BtcpayCheckDonationJob < ApplicationJob
queue_as :default
def perform(donation)
return if donation.completed?
invoice = BtcpayManager::FetchInvoice.call(
invoice_id: donation.btcpay_invoice_id
)
case invoice["status"]
when "Settled"
donation.paid_at = DateTime.now
donation.payment_status = "settled"
donation.save!
NotificationMailer.with(user: donation.user)
.bitcoin_donation_confirmed
.deliver_later
when "Processing"
re_enqueue_job(donation)
end
end
def re_enqueue_job(donation)
self.class.set(wait: 20.seconds).perform_later(donation)
end
end