From 99463427cebe00ff48d2ca4ccc3c51f2f9f626d4 Mon Sep 17 00:00:00 2001 From: Pau Perez Date: Fri, 23 Nov 2018 11:46:57 +0100 Subject: [PATCH] Refactor RestartCheckout service just extracted --- app/services/restart_checkout.rb | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/app/services/restart_checkout.rb b/app/services/restart_checkout.rb index d7dd10520b..9bbd476197 100644 --- a/app/services/restart_checkout.rb +++ b/app/services/restart_checkout.rb @@ -5,11 +5,29 @@ class RestartCheckout end def restart_checkout - return if @order.state == 'cart' - @order.restart_checkout! # resets state to 'cart' - @order.update_attributes!(shipping_method_id: nil) - @order.shipments.with_state(:pending).destroy_all - @order.payments.with_state(:checkout).destroy_all - @order.reload + return if order.cart? + + reset_state_to_cart + clear_shipments + clear_payments + + order.reload + end + + private + + attr_reader :order + + def reset_state_to_cart + order.restart_checkout! + end + + def clear_shipments + order.update_attributes!(shipping_method_id: nil) + order.shipments.with_state(:pending).destroy_all + end + + def clear_payments + order.payments.with_state(:checkout).destroy_all end end