Class: AddCcPaymentToReservationWorker
- Inherits:
-
ApplicationWorker
- Object
- ApplicationWorker
- AddCcPaymentToReservationWorker
- Defined in:
- app/workers/add_cc_payment_to_reservation_worker.rb
Overview
Service to mark a reservation status to be 'Arrived'
Instance Method Summary collapse
-
#perform(payment_gateway, payload) ⇒ Object
example payload but using underscore case { “amount”: “910.00”, “reference_no”: “870776_6419”, “gbp_reference_no”: “gbp2368111xxxxx”, “currency_code”: “764”, # iso 4217 “result_code”: “TO”, # 00 Approved, another than 00 means invalid “card_no”: “416202XXXXXX2234”, “fee”: “0”, “vat”: “0”, “payment_type”: “C”, “amount_per_month”: “0”, “total_amount”: “0”, “thb_amount”: “0”, “detail”: “Booking 870776”, “customer_email”: “user@hungryhub.com”, “merchant_defined1”: “Reservation”, “headers”: { } }.
Methods inherited from ApplicationWorker
Instance Method Details
#perform(payment_gateway, payload) ⇒ Object
example payload but using underscore case
{
"amount": "910.00",
"reference_no": "870776_6419",
"gbp_reference_no": "gbp2368111xxxxx",
"currency_code": "764", # iso 4217
"result_code": "TO", # 00 Approved, another than 00 means invalid
"card_no": "416202XXXXXX2234",
"fee": "0",
"vat": "0",
"payment_type": "C",
"amount_per_month": "0",
"total_amount": "0",
"thb_amount": "0",
"detail": "Booking 870776",
"customer_email": "user@hungryhub.com",
"merchant_defined1": "Reservation",
"headers": {
}
}
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'app/workers/add_cc_payment_to_reservation_worker.rb', line 28 def perform(payment_gateway, payload) payload = payload.with_indifferent_access if payload.is_a?(Hash) case payment_gateway.to_s.to_sym when :gb_primepay gb_primepay_ref_no = payload[:gbp_reference_no] existing_charge = Externals::Omise::Charge.find_by(omise_charge_id: gb_primepay_ref_no) reservation = find_reservation(payload) if existing_charge.present? update_existing_charge(reservation, existing_charge, payload) else add_cc_transaction_for_gb_primepay(reservation, payload) end mark_reservation_as_pending_arrival(reservation) send_notification(reservation) else raise NotImplementedError end end |