diff options
| author | Ekaterina Vaartis <vaartis@cock.li> | 2019-08-12 18:03:59 +0300 | 
|---|---|---|
| committer | Ekaterina Vaartis <vaartis@cock.li> | 2019-09-19 00:16:33 +0300 | 
| commit | 2d4b8f3d20c4dbf60e52e95e77f2e77766974402 (patch) | |
| tree | cf0903819764653896dba647293f7a547be6d96c | |
| parent | 3a8669b48771ac4203b6abf2a372c6960d36345a (diff) | |
| download | pleroma-2d4b8f3d20c4dbf60e52e95e77f2e77766974402.tar.gz pleroma-2d4b8f3d20c4dbf60e52e95e77f2e77766974402.zip | |
Add an endpoint for deleting emoji packs
| -rw-r--r-- | lib/pleroma/web/emoji_api/emoji_api_controller.ex | 12 | ||||
| -rw-r--r-- | lib/pleroma/web/router.ex | 1 | ||||
| -rw-r--r-- | test/web/emoji_api_controller_test.exs | 9 | 
3 files changed, 21 insertions, 1 deletions
| diff --git a/lib/pleroma/web/emoji_api/emoji_api_controller.ex b/lib/pleroma/web/emoji_api/emoji_api_controller.ex index f2b1e8a8d..49d970277 100644 --- a/lib/pleroma/web/emoji_api/emoji_api_controller.ex +++ b/lib/pleroma/web/emoji_api/emoji_api_controller.ex @@ -210,4 +210,16 @@ keeping it in cache for #{div(cache_ms, 1000)}s")          conn |> put_status(:internal_server_error) |> text(e)      end    end + +  def delete(conn, %{"name" => name}) do +    pack_dir = Path.join(@emoji_dir_path, name) + +    case File.rm_rf(pack_dir) do +      {:ok, _} -> +        conn |> text("ok") + +      {:error, _} -> +        conn |> put_status(:internal_server_error) |> text("Couldn't delete the pack #{name}") +    end +  end  end diff --git a/lib/pleroma/web/router.ex b/lib/pleroma/web/router.ex index 1c781d750..4df0ca3c3 100644 --- a/lib/pleroma/web/router.ex +++ b/lib/pleroma/web/router.ex @@ -218,6 +218,7 @@ defmodule Pleroma.Web.Router do        # Modifying packs        pipe_through([:admin_api, :oauth_write]) +      delete("/delete/:name", EmojiAPIController, :delete)        post("/download_from", EmojiAPIController, :download_from)      end diff --git a/test/web/emoji_api_controller_test.exs b/test/web/emoji_api_controller_test.exs index c037883ee..13a34d38d 100644 --- a/test/web/emoji_api_controller_test.exs +++ b/test/web/emoji_api_controller_test.exs @@ -42,7 +42,7 @@ defmodule Pleroma.Web.EmojiAPI.EmojiAPIControllerTest do      assert Enum.find(arch, fn {n, _} -> n == 'blank.png' end)    end -  test "downloading a shared pack from another instance via download_from" do +  test "downloading a shared pack from another instance via download_from, deleting it" do      on_exit(fn ->        File.rm_rf!("test/instance_static/emoji/test_pack2")      end) @@ -94,5 +94,12 @@ defmodule Pleroma.Web.EmojiAPI.EmojiAPIControllerTest do      assert File.exists?("test/instance_static/emoji/test_pack2/pack.yml")      assert File.exists?("test/instance_static/emoji/test_pack2/blank.png") + +    assert conn +           |> assign(:user, admin) +           |> delete(emoji_api_path(conn, :delete, "test_pack2")) +           |> response(200) == "ok" + +    refute File.exists?("test/instance_static/emoji/test_pack2")    end  end | 
