]> git.openstreetmap.org Git - rails.git/blob - app/views/api/users/_user.json.jbuilder
Merge pull request #5932 from tomhughes/frozen-strings
[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
9   if current_user && current_user == user && can?(:details, User)
10     json.contributor_terms do
11       json.agreed user.terms_agreed.present?
12       json.pd user.consider_pd
13     end
14   else
15     json.contributor_terms do
16       json.agreed user.terms_agreed.present?
17     end
18   end
19
20   json.img do
21     json.href user_image_url(user) if user.avatar.attached? || user.image_use_gravatar
22   end
23
24   json.roles do
25     json.array! user.roles.map(&:role)
26   end
27
28   json.changesets do
29     json.count user.changesets.size
30   end
31
32   json.traces do
33     json.count user.traces.size
34   end
35
36   json.blocks do
37     json.received do
38       json.count user.blocks.size
39       json.active user.blocks.active.size
40     end
41
42     if user.moderator?
43       json.issued do
44         json.count user.blocks_created.size
45         json.active user.blocks_created.active.size
46       end
47     end
48   end
49
50   if current_user && current_user == user && can?(:details, User)
51     if user.home_location?
52       json.home do
53         json.lat user.home_lat
54         json.lon user.home_lon
55         json.zoom user.home_zoom
56       end
57     end
58
59     json.languages user.languages if user.languages?
60
61     json.messages do
62       json.received do
63         json.count user.messages.size
64         json.unread user.new_messages.size
65       end
66       json.sent do
67         json.count user.sent_messages.size
68       end
69     end
70
71     json.email user.email if scope_enabled?(:read_email)
72   end
73 end