Add soft-delete method to variant

This commit is contained in:
Rohan Mitchell
2014-06-12 11:16:52 +10:00
parent 3b1411283a
commit e6c7acdff3
3 changed files with 16 additions and 6 deletions

View File

@@ -3,11 +3,7 @@ Spree::Api::VariantsController.class_eval do
@variant = scope.find(params[:variant_id])
authorize! :delete, @variant
@variant.deleted_at = Time.now()
if @variant.save
respond_with(@variant, :status => 204)
else
invalid_resource!(@variant)
end
@variant.delete
respond_with @variant, status: 204
end
end

View File

@@ -51,6 +51,11 @@ Spree::Variant.class_eval do
end
end
def delete
self.update_column(:deleted_at, Time.now)
end
private
def update_weight_from_unit_value

View File

@@ -276,6 +276,15 @@ module Spree
end
end
describe "deletion" do
it "marks the variant as deleted" do
v = create(:variant)
v.deleted_at.should be_nil
v.delete
v.deleted_at.should_not be_nil
end
end
describe "destruction" do
it "destroys exchange variants" do
v = create(:variant)