Apply suggestion to lib/pleroma/web/emoji_api/emoji_api_controller.ex
authorvaartis <vaartis@cock.li>
Wed, 11 Sep 2019 16:00:48 +0000 (16:00 +0000)
committerEkaterina Vaartis <vaartis@cock.li>
Wed, 18 Sep 2019 21:16:33 +0000 (00:16 +0300)
lib/pleroma/web/emoji_api/emoji_api_controller.ex

index 9e0ff0b28efc0b79985cc327806c31caefd78f58..28eaf5ae3ba2d447a746e9eefd6818a7f5a61e20 100644 (file)
@@ -124,26 +124,22 @@ keeping it in cache for #{div(cache_ms, 1000)}s")
     pack_dir = Path.join(@emoji_dir_path, name)
     pack_file = Path.join(pack_dir, "pack.json")
 
-    if File.exists?(pack_file) do
-      pack = Jason.decode!(File.read!(pack_file))
-
-      if can_download?(pack, pack_dir) do
-        zip_result = make_archive(name, pack, pack_dir)
+    with {_, true} <- {:exists?, File.exists?(pack_file)},
+         pack = Jason.decode!(File.read!(pack_file)),
+         {_, true} <- {:can_download?, can_download?(pack, pack_dir)} do
+      zip_result = make_archive(name, pack, pack_dir)
+      send_download(conn, {:binary, zip_result}, filename: "#{name}.zip")
+    else
+      {:can_download?, _} ->
+        conn
+        |> put_status(:forbidden)
+        |> text("Pack #{name} cannot be downloaded from this instance, either pack sharing\
+           was disabled for this pack or some files are missing")
 
+      {:exists?, _} ->
         conn
-        |> send_download({:binary, zip_result}, filename: "#{name}.zip")
-      else
-        {:error,
-         conn
-         |> put_status(:forbidden)
-         |> text("Pack #{name} cannot be downloaded from this instance, either pack sharing\
-           was disabled for this pack or some files are missing")}
-      end
-    else
-      {:error,
-       conn
-       |> put_status(:not_found)
-       |> text("Pack #{name} does not exist")}
+        |> put_status(:not_found)
+        |> text("Pack #{name} does not exist")
     end
   end