Files
openfoodnetwork/app/services/orders/checkout_restart_service.rb
2024-03-16 19:07:08 +05:00

38 lines
664 B
Ruby

# frozen_string_literal: true
# Resets the passed order to cart state while clearing associated payments and shipments
module Orders
class CheckoutRestartService
def initialize(order)
@order = order
end
def call
return if order.cart?
reset_state_to_cart
clear_shipments
clear_payments
order.reload.update_order!
end
private
attr_reader :order
def reset_state_to_cart
order.restart_checkout!
end
def clear_shipments
order.shipments.with_state(:pending).destroy_all
end
def clear_payments
order.payments.with_state(:checkout).destroy_all
end
end
end