]> git.openstreetmap.org Git - rails.git/blob - app/views/api/users/_user.json.jbuilder
Merge remote-tracking branch 'upstream/pull/6516'
[rails.git] / app / views / api / users / _user.json.jbuilder
1 # frozen_string_literal: true
2
3 json.user do
4   json.id user.id
5   json.display_name user.display_name
6   json.account_created user.created_at.xmlschema
7   json.description user.description if user.description
8   json.company user.company if user.company
9   json.social_links do
10     json.array! user.social_links do |link|
11       details = link.parsed
12       json.url details[:url]
13       json.platform details[:platform]
14     end
15   end
16
17   if current_user && current_user == user && can?(:details, User)
18     json.contributor_terms do
19       json.agreed user.terms_agreed.present?
20       json.pd user.consider_pd
21     end
22   else
23     json.contributor_terms do
24       json.agreed user.terms_agreed.present?
25     end
26   end
27
28   json.img do
29     json.href user_image_url(user) if user.avatar.attached? || user.image_use_gravatar
30   end
31
32   json.roles do
33     json.array! user.roles.map(&:role)
34   end
35
36   json.changesets do
37     json.count user.changesets.size
38   end
39
40   json.traces do
41     json.count user.traces.size
42   end
43
44   json.blocks do
45     json.received do
46       json.count user.blocks.size
47       json.active user.blocks.active.size
48     end
49
50     if user.moderator?
51       json.issued do
52         json.count user.blocks_created.size
53         json.active user.blocks_created.active.size
54       end
55     end
56   end
57
58   if current_user && current_user == user && can?(:details, User)
59     if user.home_location?
60       json.home do
61         json.lat user.home_lat
62         json.lon user.home_lon
63         json.zoom user.home_zoom
64       end
65     end
66
67     json.languages user.languages if user.languages?
68
69     json.messages do
70       json.received do
71         json.count user.messages.size
72         json.unread user.new_messages.size
73       end
74       json.sent do
75         json.count user.sent_messages.size
76       end
77     end
78
79     json.email user.email if scope_enabled?(:read_email)
80   end
81 end