Skip to content

Commit c378e0d

Browse files
authored
Bypass delete on skipped versions (#8)
2 parents 0aff862 + 6166042 commit c378e0d

2 files changed

Lines changed: 16 additions & 5 deletions

File tree

lib/waffle/actions/delete.ex

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,11 @@ defmodule Waffle.Actions.Delete do
4040
end
4141

4242
defp delete_version(definition, version, {file, scope}) do
43-
definition.__storage.delete(definition, version, {file, scope})
43+
conversion = definition.transform(version, {file, scope})
44+
if conversion == :skip do
45+
:ok
46+
else
47+
definition.__storage.delete(definition, version, {file, scope})
48+
end
4449
end
4550
end

test/storage/local_test.exs

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,17 +13,18 @@ defmodule WaffleTest.Storage.Local do
1313

1414

1515
defmodule DummyDefinition do
16-
use Waffle.Actions.Store
17-
use Waffle.Definition.Storage
18-
use Waffle.Actions.Url
16+
use Waffle.Definition
1917

2018
@acl :public_read
19+
@versions [:original, :thumb, :skipped]
20+
2121
def transform(:thumb, _), do: {:convert, "-strip -thumbnail 10x10"}
2222
def transform(:original, _), do: :noaction
2323
def transform(:skipped, _), do: :skip
24-
def __versions, do: [:original, :thumb, :skipped]
24+
2525
def storage_dir(_, _), do: "waffletest/uploads"
2626
def __storage, do: Waffle.Storage.Local
27+
2728
def filename(:original, {file, _}), do: "original-#{Path.basename(file.file_name, Path.extname(file.file_name))}"
2829
def filename(:thumb, {file, _}), do: "1/thumb-#{Path.basename(file.file_name, Path.extname(file.file_name))}"
2930
def filename(:skipped, {file, _}), do: "1/skipped-#{Path.basename(file.file_name, Path.extname(file.file_name))}"
@@ -44,6 +45,11 @@ defmodule WaffleTest.Storage.Local do
4445
refute File.exists?("waffletest/uploads/1/thumb-image.png")
4546
end
4647

48+
test "deleting when there's a skipped version" do
49+
DummyDefinition.store(@img)
50+
assert :ok = DummyDefinition.delete(@img)
51+
end
52+
4753
test "save binary" do
4854
Waffle.Storage.Local.put(DummyDefinition, :original, {Waffle.File.new(%{binary: "binary", filename: "binary.png"}), nil})
4955
assert true == File.exists?("waffletest/uploads/binary.png")

0 commit comments

Comments
 (0)