aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorEkaterina Vaartis <vaartis@cock.li>2019-08-28 19:29:01 +0300
committerEkaterina Vaartis <vaartis@cock.li>2019-09-19 00:16:33 +0300
commitf5131540dc9bbf8038e6625f4524ca01b52abbbf (patch)
tree3de65c77cd4b387511b9137c7678762f24467042 /lib
parent6b4a144e4d9fa17db6fbda800511f7f41ae1c731 (diff)
downloadpleroma-f5131540dc9bbf8038e6625f4524ca01b52abbbf.tar.gz
Add a way to create emoji packs via an endpoint
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/web/emoji_api/emoji_api_controller.ex21
-rw-r--r--lib/pleroma/web/router.ex1
2 files changed, 22 insertions, 0 deletions
diff --git a/lib/pleroma/web/emoji_api/emoji_api_controller.ex b/lib/pleroma/web/emoji_api/emoji_api_controller.ex
index 87ae0e092..0bd9cd207 100644
--- a/lib/pleroma/web/emoji_api/emoji_api_controller.ex
+++ b/lib/pleroma/web/emoji_api/emoji_api_controller.ex
@@ -211,6 +211,27 @@ keeping it in cache for #{div(cache_ms, 1000)}s")
end
end
+ def create(conn, %{"name" => name}) do
+ pack_dir = Path.join(@emoji_dir_path, name)
+
+ unless File.exists?(pack_dir) do
+ File.mkdir_p!(pack_dir)
+
+ pack_file_p = Path.join(pack_dir, "pack.json")
+
+ File.write!(
+ pack_file_p,
+ Jason.encode!(%{pack: %{}, files: %{}})
+ )
+
+ conn |> text("ok")
+ else
+ conn
+ |> put_status(:conflict)
+ |> text("A pack named \"#{name}\" already exists")
+ end
+ end
+
def delete(conn, %{"name" => name}) do
pack_dir = Path.join(@emoji_dir_path, name)
diff --git a/lib/pleroma/web/router.ex b/lib/pleroma/web/router.ex
index acd6f740b..a21fefc70 100644
--- a/lib/pleroma/web/router.ex
+++ b/lib/pleroma/web/router.ex
@@ -220,6 +220,7 @@ defmodule Pleroma.Web.Router do
post("/update_file/:pack_name", EmojiAPIController, :update_file)
post("/update_metadata/:pack_name", EmojiAPIController, :update_metadata)
+ post("/create/:name", EmojiAPIController, :create)
delete("/delete/:name", EmojiAPIController, :delete)
post("/download_from", EmojiAPIController, :download_from)
end