Merge branch 'develop' into feature/reports-groups-and-multiple-state-update
[akkoma] / lib / pleroma / web / ostatus / user_representer.ex
1 # Pleroma: A lightweight social networking server
2 # Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/>
3 # SPDX-License-Identifier: AGPL-3.0-only
4
5 defmodule Pleroma.Web.OStatus.UserRepresenter do
6 alias Pleroma.User
7
8 def to_simple_form(user) do
9 ap_id = to_charlist(user.ap_id)
10 nickname = to_charlist(user.nickname)
11 name = to_charlist(user.name)
12 bio = to_charlist(user.bio)
13 avatar_url = to_charlist(User.avatar_url(user))
14
15 banner =
16 if banner_url = User.banner_url(user) do
17 [{:link, [rel: 'header', href: banner_url], []}]
18 else
19 []
20 end
21
22 ap_enabled =
23 if user.local do
24 [{:ap_enabled, ['true']}]
25 else
26 []
27 end
28
29 [
30 {:id, [ap_id]},
31 {:"activity:object", ['http://activitystrea.ms/schema/1.0/person']},
32 {:uri, [ap_id]},
33 {:"poco:preferredUsername", [nickname]},
34 {:"poco:displayName", [name]},
35 {:"poco:note", [bio]},
36 {:summary, [bio]},
37 {:name, [nickname]},
38 {:link, [rel: 'avatar', href: avatar_url], []}
39 ] ++ banner ++ ap_enabled
40 end
41 end