Browse Source

Extract MastodonAPI.MastodonAPIController.errors/2 to MastodonAPI.FallbackController

tags/v1.1.4
Egor Kislitsyn 4 years ago
parent
commit
4d82bc8b0b
3 changed files with 36 additions and 33 deletions
  1. +34
    -0
      lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex
  2. +1
    -30
      lib/pleroma/web/mastodon_api/mastodon_api_controller.ex
  3. +1
    -3
      lib/pleroma/web/mastodon_api/subscription_controller.ex

+ 34
- 0
lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex View File

@@ -0,0 +1,34 @@
# Pleroma: A lightweight social networking server
# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only

defmodule Pleroma.Web.MastodonAPI.FallbackController do
use Pleroma.Web, :controller

def call(conn, {:error, %Ecto.Changeset{} = changeset}) do
error_message =
changeset
|> Ecto.Changeset.traverse_errors(fn {message, _opt} -> message end)
|> Enum.map_join(", ", fn {_k, v} -> v end)

conn
|> put_status(:unprocessable_entity)
|> json(%{error: error_message})
end

def call(conn, {:error, :not_found}) do
render_error(conn, :not_found, "Record not found")
end

def call(conn, {:error, error_message}) do
conn
|> put_status(:bad_request)
|> json(%{error: error_message})
end

def call(conn, _) do
conn
|> put_status(:internal_server_error)
|> json(dgettext("errors", "Something went wrong"))
end
end

+ 1
- 30
lib/pleroma/web/mastodon_api/mastodon_api_controller.ex View File

@@ -83,7 +83,7 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do

@local_mastodon_name "Mastodon-Local"

action_fallback(:errors)
action_fallback(Pleroma.Web.MastodonAPI.FallbackController)

def create_app(conn, params) do
scopes = Scopes.fetch_scopes(params, ["read"])
@@ -1587,35 +1587,6 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do
json(conn, %{})
end

# fallback action
#
def errors(conn, {:error, %Changeset{} = changeset}) do
error_message =
changeset
|> Changeset.traverse_errors(fn {message, _opt} -> message end)
|> Enum.map_join(", ", fn {_k, v} -> v end)

conn
|> put_status(:unprocessable_entity)
|> json(%{error: error_message})
end

def errors(conn, {:error, :not_found}) do
render_error(conn, :not_found, "Record not found")
end

def errors(conn, {:error, error_message}) do
conn
|> put_status(:bad_request)
|> json(%{error: error_message})
end

def errors(conn, _) do
conn
|> put_status(:internal_server_error)
|> json(dgettext("errors", "Something went wrong"))
end

def suggestions(%{assigns: %{user: user}} = conn, _) do
suggestions = Config.get(:suggestions)



+ 1
- 3
lib/pleroma/web/mastodon_api/subscription_controller.ex View File

@@ -64,8 +64,6 @@ defmodule Pleroma.Web.MastodonAPI.SubscriptionController do
end

def errors(conn, _) do
conn
|> put_status(:internal_server_error)
|> json(dgettext("errors", "Something went wrong"))
Pleroma.Web.MastodonAPI.FallbackController.call(conn, nil)
end
end

Loading…
Cancel
Save