diff options
4 files changed, 51 insertions, 44 deletions
| diff --git a/docs/API/admin_api.md b/docs/API/admin_api.md index c7f56cf5f..b6fb43dcb 100644 --- a/docs/API/admin_api.md +++ b/docs/API/admin_api.md @@ -488,35 +488,39 @@ Note: Available `:permission_group` is currently moderator and admin. 404 is ret  ### Change the user's email, password, display and settings-related fields -- Params: -  - `email` -  - `password` -  - `name` -  - `bio` -  - `avatar` -  - `locked` -  - `no_rich_text` -  - `default_scope` -  - `banner` -  - `hide_follows` -  - `hide_followers` -  - `hide_followers_count` -  - `hide_follows_count` -  - `hide_favorites` -  - `allow_following_move` -  - `background` -  - `show_role` -  - `skip_thread_containment` -  - `fields` -  - `discoverable` -  - `actor_type` - -- Response: +* Params: +  * `email` +  * `password` +  * `name` +  * `bio` +  * `avatar` +  * `locked` +  * `no_rich_text` +  * `default_scope` +  * `banner` +  * `hide_follows` +  * `hide_followers` +  * `hide_followers_count` +  * `hide_follows_count` +  * `hide_favorites` +  * `allow_following_move` +  * `background` +  * `show_role` +  * `skip_thread_containment` +  * `fields` +  * `discoverable` +  * `actor_type` + +* Responses: + +Status: 200  ```json  {"status": "success"}  ``` +Status: 400 +  ```json  {"errors":    {"actor_type": "is invalid"}, @@ -525,8 +529,10 @@ Note: Available `:permission_group` is currently moderator and admin. 404 is ret   }  ``` +Status: 404 +  ```json -{"error": "Unable to update user."} +{"error": "Not found"}  ```  ## `GET /api/pleroma/admin/reports` diff --git a/lib/pleroma/web/admin_api/controllers/admin_api_controller.ex b/lib/pleroma/web/admin_api/controllers/admin_api_controller.ex index 5cbf0dd4f..db2413dfe 100644 --- a/lib/pleroma/web/admin_api/controllers/admin_api_controller.ex +++ b/lib/pleroma/web/admin_api/controllers/admin_api_controller.ex @@ -111,8 +111,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do        action: "delete"      }) -    conn -    |> json(nicknames) +    json(conn, nicknames)    end    def user_follow(%{assigns: %{user: admin}} = conn, %{ @@ -131,8 +130,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do        })      end -    conn -    |> json("ok") +    json(conn, "ok")    end    def user_unfollow(%{assigns: %{user: admin}} = conn, %{ @@ -151,8 +149,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do        })      end -    conn -    |> json("ok") +    json(conn, "ok")    end    def users_create(%{assigns: %{user: admin}} = conn, %{"users" => users}) do @@ -191,8 +188,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do            action: "create"          }) -        conn -        |> json(res) +        json(conn, res)        {:error, id, changeset, _} ->          res = @@ -363,8 +359,8 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do      filters      |> String.split(",")      |> Enum.filter(&Enum.member?(@filters, &1)) -    |> Enum.map(&String.to_atom(&1)) -    |> Enum.into(%{}, &{&1, true}) +    |> Enum.map(&String.to_atom/1) +    |> Map.new(&{&1, true})    end    def right_add_multiple(%{assigns: %{user: admin}} = conn, %{ @@ -568,10 +564,10 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do        {:error, changeset} ->          errors = Map.new(changeset.errors, fn {key, {error, _}} -> {key, error} end) -        json(conn, %{errors: errors}) +        {:errors, errors}        _ -> -        json(conn, %{error: "Unable to update user."}) +        {:error, :not_found}      end    end @@ -616,7 +612,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do    def reload_emoji(conn, _params) do      Pleroma.Emoji.reload() -    conn |> json("ok") +    json(conn, "ok")    end    def confirm_email(%{assigns: %{user: admin}} = conn, %{"nicknames" => nicknames}) do @@ -630,7 +626,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do        action: "confirm_email"      }) -    conn |> json("") +    json(conn, "")    end    def resend_confirmation_email(%{assigns: %{user: admin}} = conn, %{"nicknames" => nicknames}) do @@ -644,14 +640,13 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do        action: "resend_confirmation_email"      }) -    conn |> json("") +    json(conn, "")    end    def stats(conn, _) do      count = Stats.get_status_visibility_count() -    conn -    |> json(%{"status_visibility" => count}) +    json(conn, %{"status_visibility" => count})    end    defp page_params(params) do diff --git a/lib/pleroma/web/admin_api/controllers/fallback_controller.ex b/lib/pleroma/web/admin_api/controllers/fallback_controller.ex index 82965936d..34d90db07 100644 --- a/lib/pleroma/web/admin_api/controllers/fallback_controller.ex +++ b/lib/pleroma/web/admin_api/controllers/fallback_controller.ex @@ -17,6 +17,12 @@ defmodule Pleroma.Web.AdminAPI.FallbackController do      |> json(%{error: reason})    end +  def call(conn, {:errors, errors}) do +    conn +    |> put_status(:bad_request) +    |> json(%{errors: errors}) +  end +    def call(conn, {:param_cast, _}) do      conn      |> put_status(:bad_request) diff --git a/test/web/admin_api/controllers/admin_api_controller_test.exs b/test/web/admin_api/controllers/admin_api_controller_test.exs index e3d3ccb8d..3a3eb822d 100644 --- a/test/web/admin_api/controllers/admin_api_controller_test.exs +++ b/test/web/admin_api/controllers/admin_api_controller_test.exs @@ -1599,14 +1599,14 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do        assert patch(conn, "/api/pleroma/admin/users/#{user.nickname}/credentials", %{                 "actor_type" => "Application"               }) -             |> json_response(200) == %{"errors" => %{"actor_type" => "is invalid"}} +             |> json_response(400) == %{"errors" => %{"actor_type" => "is invalid"}}      end      test "update non existing user", %{conn: conn} do        assert patch(conn, "/api/pleroma/admin/users/non-existing/credentials", %{                 "password" => "new_password"               }) -             |> json_response(200) == %{"error" => "Unable to update user."} +             |> json_response(404) == %{"error" => "Not found"}      end    end | 
