From 0116f6996aaae1ea43c4b4df7ee2c45d984cf029 Mon Sep 17 00:00:00 2001 From: Dylan Markow Date: Thu, 18 Jul 2019 13:21:35 -0500 Subject: [PATCH 1/2] Bypass delete on skipped versions --- lib/waffle/actions/delete.ex | 7 ++++++- test/storage/local_test.exs | 9 ++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/lib/waffle/actions/delete.ex b/lib/waffle/actions/delete.ex index d9c487f..f920149 100644 --- a/lib/waffle/actions/delete.ex +++ b/lib/waffle/actions/delete.ex @@ -40,6 +40,11 @@ defmodule Waffle.Actions.Delete do end defp delete_version(definition, version, {file, scope}) do - definition.__storage.delete(definition, version, {file, scope}) + conversion = definition.transform(version, {file, scope}) + if conversion == :skip do + :ok + else + definition.__storage.delete(definition, version, {file, scope}) + end end end diff --git a/test/storage/local_test.exs b/test/storage/local_test.exs index 71ae314..04fbe03 100644 --- a/test/storage/local_test.exs +++ b/test/storage/local_test.exs @@ -13,9 +13,7 @@ defmodule WaffleTest.Storage.Local do defmodule DummyDefinition do - use Waffle.Actions.Store - use Waffle.Definition.Storage - use Waffle.Actions.Url + use Waffle.Definition @acl :public_read def transform(:thumb, _), do: {:convert, "-strip -thumbnail 10x10"} @@ -44,6 +42,11 @@ defmodule WaffleTest.Storage.Local do refute File.exists?("waffletest/uploads/1/thumb-image.png") end + test "deleting when there's a skipped version" do + DummyDefinition.store(@img) + assert :ok = DummyDefinition.delete(@img) + end + test "save binary" do Waffle.Storage.Local.put(DummyDefinition, :original, {Waffle.File.new(%{binary: "binary", filename: "binary.png"}), nil}) assert true == File.exists?("waffletest/uploads/binary.png") From 61660423af99d25d2181fdc548d80082164c4dbe Mon Sep 17 00:00:00 2001 From: Boris Kuznetsov Date: Fri, 30 Aug 2019 21:04:15 +0300 Subject: [PATCH 2/2] add versions configuration to the test for local storage --- test/storage/local_test.exs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/test/storage/local_test.exs b/test/storage/local_test.exs index 04fbe03..2c30861 100644 --- a/test/storage/local_test.exs +++ b/test/storage/local_test.exs @@ -16,12 +16,15 @@ defmodule WaffleTest.Storage.Local do use Waffle.Definition @acl :public_read + @versions [:original, :thumb, :skipped] + def transform(:thumb, _), do: {:convert, "-strip -thumbnail 10x10"} def transform(:original, _), do: :noaction def transform(:skipped, _), do: :skip - def __versions, do: [:original, :thumb, :skipped] + def storage_dir(_, _), do: "waffletest/uploads" def __storage, do: Waffle.Storage.Local + def filename(:original, {file, _}), do: "original-#{Path.basename(file.file_name, Path.extname(file.file_name))}" def filename(:thumb, {file, _}), do: "1/thumb-#{Path.basename(file.file_name, Path.extname(file.file_name))}" def filename(:skipped, {file, _}), do: "1/skipped-#{Path.basename(file.file_name, Path.extname(file.file_name))}"