1
0
mirror of https://github.com/LaCasemate/fab-manager.git synced 2024-12-01 12:24:28 +01:00
fab-manager/app/services/checkout/payment_service.rb

40 lines
1.2 KiB
Ruby
Raw Normal View History

2022-08-25 08:52:17 +02:00
# frozen_string_literal: true
# Provides methods for pay cart
class Checkout::PaymentService
require 'pay_zen/helper'
require 'stripe/helper'
2022-08-26 13:37:23 +02:00
include Payments::PaymentConcern
2022-08-25 08:52:17 +02:00
def payment(order, operator, payment_id = '')
raise Cart::OutStockError unless Orders::OrderService.new.in_stock?(order, 'external')
2022-08-26 10:46:30 +02:00
raise Cart::InactiveProductError unless Orders::OrderService.new.all_products_is_active?(order)
2022-08-26 13:37:23 +02:00
amount = debit_amount(order)
if operator.privileged? || amount.zero?
Payments::LocalService.new.payment(order)
elsif operator.member?
2022-08-25 08:52:17 +02:00
if Stripe::Helper.enabled?
Payments::StripeService.new.payment(order, payment_id)
elsif PayZen::Helper.enabled?
Payments::PayzenService.new.payment(order)
else
raise Error('Bad gateway or online payment is disabled')
end
end
end
def confirm_payment(order, operator, payment_id = '')
if operator.member?
if Stripe::Helper.enabled?
Payments::StripeService.new.confirm_payment(order, payment_id)
elsif PayZen::Helper.enabled?
Payments::PayzenService.new.confirm_payment(order, payment_id)
else
raise Error('Bad gateway or online payment is disabled')
end
end
end
end