alias Pleroma.Web.Plugs.OAuthScopesPlug
+ require Logger
+
@cachex Pleroma.Config.get([:cachex, :provider], Cachex)
@unauthenticated_access %{fallback: :proceed_unauthenticated, scopes: []}
@doc "GET /api/v1/akkoma/translation/languages"
def languages(conn, _params) do
- with {:ok, languages} <- get_languages() do
+ with {:enabled, true} <- {:enabled, Pleroma.Config.get([:translator, :enabled])},
+ {:ok, source_languages, dest_languages} <- get_languages() do
conn
- |> json(languages)
+ |> json(%{source: source_languages, target: dest_languages})
else
- e -> IO.inspect(e)
+ {:enabled, false} ->
+ json(conn, %{})
+
+ e ->
+ Logger.error("Translation language list error: #{inspect(e)}")
+ {:error, e}
end
end
module = Pleroma.Config.get([:translator, :module])
@cachex.fetch!(:translations_cache, "languages:#{module}}", fn _ ->
- with {:ok, languages} <- module.languages() do
- {:ok, languages}
+ with {:ok, source_languages, dest_languages} <- module.languages() do
+ {:ok, source_languages, dest_languages}
else
{:error, err} -> {:ignore, {:error, err}}
end