Browse Source

Use Mastodon API views in Admin API

tags/v1.1.4
Maxim Filippov 5 years ago
parent
commit
72b7a0797e
3 changed files with 28 additions and 20 deletions
  1. +3
    -3
      lib/pleroma/web/admin_api/admin_api_controller.ex
  2. +25
    -0
      lib/pleroma/web/mastodon_api/views/admin/account_view.ex
  3. +0
    -17
      lib/pleroma/web/twitter_api/views/user_view.ex

+ 3
- 3
lib/pleroma/web/admin_api/admin_api_controller.ex View File

@@ -8,7 +8,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do
use Pleroma.Web, :controller
alias Pleroma.User
alias Pleroma.Web.ActivityPub.Relay
alias Pleroma.Web.TwitterAPI.UserView
alias Pleroma.Web.MastodonAPI.Admin.AccountView

import Pleroma.Web.ControllerHelper, only: [json_response: 3]

@@ -50,7 +50,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do
{:ok, updated_user} = User.deactivate(user, !user.info.deactivated)

conn
|> json(UserView.render("show_for_admin.json", %{user: updated_user}))
|> json(AccountView.render("show.json", %{user: updated_user}))
end

def tag_users(conn, %{"nicknames" => nicknames, "tags" => tags}) do
@@ -70,7 +70,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do
do:
conn
|> json(
UserView.render("index_for_admin.json", %{
AccountView.render("index.json", %{
users: users,
count: count,
page_size: @users_page_size


+ 25
- 0
lib/pleroma/web/mastodon_api/views/admin/account_view.ex View File

@@ -0,0 +1,25 @@
# 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.Admin.AccountView do
use Pleroma.Web, :view

alias Pleroma.Web.MastodonAPI.Admin.AccountView

def render("index.json", %{users: users, count: count, page_size: page_size}) do
%{
users: render_many(users, AccountView, "show.json", as: :user),
count: count,
page_size: page_size
}
end

def render("show.json", %{user: user}) do
%{
"id" => user.id,
"nickname" => user.nickname,
"deactivated" => user.info.deactivated
}
end
end

+ 0
- 17
lib/pleroma/web/twitter_api/views/user_view.ex View File

@@ -9,7 +9,6 @@ defmodule Pleroma.Web.TwitterAPI.UserView do
alias Pleroma.User
alias Pleroma.Web.CommonAPI.Utils
alias Pleroma.Web.MediaProxy
alias Pleroma.Web.TwitterAPI.UserView

def render("show.json", %{user: user = %User{}} = assigns) do
render_one(user, Pleroma.Web.TwitterAPI.UserView, "user.json", assigns)
@@ -27,22 +26,6 @@ defmodule Pleroma.Web.TwitterAPI.UserView do
else: %{}
end

def render("index_for_admin.json", %{users: users, count: count, page_size: page_size} = opts) do
%{
users: render_many(users, UserView, "show_for_admin.json", opts),
count: count,
page_size: page_size
}
end

def render("show_for_admin.json", %{user: user}) do
%{
"id" => user.id,
"nickname" => user.nickname,
"deactivated" => user.info.deactivated
}
end

def render("short.json", %{
user: %User{
nickname: nickname,


Loading…
Cancel
Save