projects
/
akkoma
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge pull request 'Update elixir versions' (#512) from norm/akkoma:update-elixir...
[akkoma]
/
lib
/
pleroma
/
web
/
pleroma_api
/
controllers
/
emoji_pack_controller.ex
diff --git
a/lib/pleroma/web/pleroma_api/controllers/emoji_pack_controller.ex
b/lib/pleroma/web/pleroma_api/controllers/emoji_pack_controller.ex
index 6696f8b92ede162859608cad724db090d987f5b0..1ea44f347fb0de562e1b840d32ba234f064803a1 100644
(file)
--- a/
lib/pleroma/web/pleroma_api/controllers/emoji_pack_controller.ex
+++ b/
lib/pleroma/web/pleroma_api/controllers/emoji_pack_controller.ex
@@
-1,3
+1,7
@@
+# Pleroma: A lightweight social networking server
+# Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/>
+# SPDX-License-Identifier: AGPL-3.0-only
+
defmodule Pleroma.Web.PleromaAPI.EmojiPackController do
use Pleroma.Web, :controller
defmodule Pleroma.Web.PleromaAPI.EmojiPackController do
use Pleroma.Web, :controller
@@
-6,8
+10,8
@@
defmodule Pleroma.Web.PleromaAPI.EmojiPackController do
plug(Pleroma.Web.ApiSpec.CastAndValidate)
plug(
plug(Pleroma.Web.ApiSpec.CastAndValidate)
plug(
- Pleroma.Plugs.OAuthScopesPlug,
- %{scopes: ["
write"], admin: true
}
+ Pleroma.
Web.
Plugs.OAuthScopesPlug,
+ %{scopes: ["
admin:write"]
}
when action in [
:import_from_filesystem,
:remote,
when action in [
:import_from_filesystem,
:remote,
@@
-18,8
+22,7
@@
defmodule Pleroma.Web.PleromaAPI.EmojiPackController do
]
)
]
)
- @skip_plugs [Pleroma.Plugs.OAuthScopesPlug, Pleroma.Plugs.EnsurePublicOrAuthenticatedPlug]
- plug(:skip_plug, @skip_plugs when action in [:index, :show, :archive])
+ plug(:skip_auth when action in [:index, :archive, :show])
defdelegate open_api_operation(action), to: Pleroma.Web.ApiSpec.PleromaEmojiPackOperation
defdelegate open_api_operation(action), to: Pleroma.Web.ApiSpec.PleromaEmojiPackOperation
@@
-64,7
+67,7
@@
defmodule Pleroma.Web.PleromaAPI.EmojiPackController do
with {:ok, pack} <- Pack.show(name: name, page: page, page_size: page_size) do
json(conn, pack)
else
with {:ok, pack} <- Pack.show(name: name, page: page, page_size: page_size) do
json(conn, pack)
else
- {:error, :
not_found
} ->
+ {:error, :
enoent
} ->
conn
|> put_status(:not_found)
|> json(%{error: "Pack #{name} does not exist"})
conn
|> put_status(:not_found)
|> json(%{error: "Pack #{name} does not exist"})
@@
-73,6
+76,17
@@
defmodule Pleroma.Web.PleromaAPI.EmojiPackController do
conn
|> put_status(:bad_request)
|> json(%{error: "pack name cannot be empty"})
conn
|> put_status(:bad_request)
|> json(%{error: "pack name cannot be empty"})
+
+ {:error, error} ->
+ error_message =
+ add_posix_error(
+ "Failed to get the contents of the `#{name}` pack.",
+ error
+ )
+
+ conn
+ |> put_status(:internal_server_error)
+ |> json(%{error: error_message})
end
end
end
end
@@
-88,7
+102,7
@@
defmodule Pleroma.Web.PleromaAPI.EmojiPackController do
"Pack #{name} cannot be downloaded from this instance, either pack sharing was disabled for this pack or some files are missing"
})
"Pack #{name} cannot be downloaded from this instance, either pack sharing was disabled for this pack or some files are missing"
})
- {:error, :
not_found
} ->
+ {:error, :
enoent
} ->
conn
|> put_status(:not_found)
|> json(%{error: "Pack #{name} does not exist"})
conn
|> put_status(:not_found)
|> json(%{error: "Pack #{name} does not exist"})
@@
-109,10
+123,10
@@
defmodule Pleroma.Web.PleromaAPI.EmojiPackController do
|> put_status(:internal_server_error)
|> json(%{error: "SHA256 for the pack doesn't match the one sent by the server"})
|> put_status(:internal_server_error)
|> json(%{error: "SHA256 for the pack doesn't match the one sent by the server"})
- {:error, e} ->
+ {:error, e
rror
} ->
conn
|> put_status(:internal_server_error)
conn
|> put_status(:internal_server_error)
- |> json(%{error: e})
+ |> json(%{error: e
rror
})
end
end
end
end
@@
-132,12
+146,16
@@
defmodule Pleroma.Web.PleromaAPI.EmojiPackController do
|> put_status(:bad_request)
|> json(%{error: "pack name cannot be empty"})
|> put_status(:bad_request)
|> json(%{error: "pack name cannot be empty"})
- {:error, _} ->
- render_error(
- conn,
- :internal_server_error,
- "Unexpected error occurred while creating pack."
- )
+ {:error, error} ->
+ error_message =
+ add_posix_error(
+ "Unexpected error occurred while creating pack.",
+ error
+ )
+
+ conn
+ |> put_status(:internal_server_error)
+ |> json(%{error: error_message})
end
end
end
end
@@
-157,10
+175,12
@@
defmodule Pleroma.Web.PleromaAPI.EmojiPackController do
|> put_status(:bad_request)
|> json(%{error: "pack name cannot be empty"})
|> put_status(:bad_request)
|> json(%{error: "pack name cannot be empty"})
- {:error, _, _} ->
+ {:error, error, _} ->
+ error_message = add_posix_error("Couldn't delete the `#{name}` pack", error)
+
conn
|> put_status(:internal_server_error)
conn
|> put_status(:internal_server_error)
- |> json(%{error:
"Couldn't delete the pack #{name}"
})
+ |> json(%{error:
error_message
})
end
end
end
end
@@
-173,12
+193,16
@@
defmodule Pleroma.Web.PleromaAPI.EmojiPackController do
|> put_status(:bad_request)
|> json(%{error: "The fallback archive does not have all files specified in pack.json"})
|> put_status(:bad_request)
|> json(%{error: "The fallback archive does not have all files specified in pack.json"})
- {:error, _} ->
- render_error(
- conn,
- :internal_server_error,
- "Unexpected error occurred while updating pack metadata."
- )
+ {:error, error} ->
+ error_message =
+ add_posix_error(
+ "Unexpected error occurred while updating pack metadata.",
+ error
+ )
+
+ conn
+ |> put_status(:internal_server_error)
+ |> json(%{error: error_message})
end
end
end
end
@@
-197,4
+221,10
@@
defmodule Pleroma.Web.PleromaAPI.EmojiPackController do
|> json(%{error: "Error accessing emoji pack directory"})
end
end
|> json(%{error: "Error accessing emoji pack directory"})
end
end
+
+ defp add_posix_error(msg, error) do
+ [msg, Pleroma.Utils.posix_error_message(error)]
+ |> Enum.join(" ")
+ |> String.trim()
+ end
end
end