# frozen_string_literal: true # Provides methods for remove order item to cart class Cart::RemoveItemService def call(order, orderable) item = order.order_items.find_by(orderable_type: orderable.class.name, orderable_id: orderable.id) raise ActiveRecord::RecordNotFound if item.nil? ActiveRecord::Base.transaction do item.destroy! Cart::UpdateTotalService.new.call(order) order.save end order.reload end end