spc-pleroma/lib/pleroma/web/admin_api/views/account_view.ex

56 lines
1.5 KiB
Elixir
Raw Normal View History

2019-02-28 14:43:09 +00:00
# Pleroma: A lightweight social networking server
# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Web.AdminAPI.AccountView do
2019-02-28 14:43:09 +00:00
use Pleroma.Web, :view
alias Pleroma.HTML
alias Pleroma.User
2019-03-12 19:15:28 +00:00
alias Pleroma.User.Info
alias Pleroma.Web.AdminAPI.AccountView
alias Pleroma.Web.MediaProxy
2019-02-28 14:43:09 +00:00
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
avatar = User.avatar_url(user) |> MediaProxy.url()
display_name = HTML.strip_tags(user.name || user.nickname)
2019-02-28 14:43:09 +00:00
%{
"id" => user.id,
"avatar" => avatar,
2019-02-28 14:43:09 +00:00
"nickname" => user.nickname,
"display_name" => display_name,
2019-03-12 19:15:28 +00:00
"deactivated" => user.info.deactivated,
2019-03-13 13:04:44 +00:00
"local" => user.local,
2019-03-13 22:52:24 +00:00
"roles" => Info.roles(user.info),
"tags" => user.tags || []
2019-02-28 14:43:09 +00:00
}
end
2019-04-06 13:25:19 +00:00
def render("invite.json", %{invite: invite}) do
%{
"id" => invite.id,
"token" => invite.token,
"used" => invite.used,
"expires_at" => invite.expires_at,
2019-04-06 13:25:19 +00:00
"uses" => invite.uses,
"max_use" => invite.max_use,
"invite_type" => invite.invite_type
}
end
def render("invites.json", %{invites: invites}) do
%{
invites: render_many(invites, AccountView, "invite.json", as: :invite)
}
end
2019-02-28 14:43:09 +00:00
end