openstreetmap-website/app/views/api/users/_user.json.jbuilder
Andy Allan 40e8482825 Alias the user creation_time column
This allows rails to set the created_at automatically, and so avoids
us from having to do so in a callback. It also hides the unusual
db column name from the rest of the app.
2021-12-22 14:48:07 +00:00

71 lines
1.6 KiB
Ruby

json.user do
json.id user.id
json.display_name user.display_name
json.account_created user.created_at.xmlschema
json.description user.description if user.description
if current_user && current_user == user && can?(:details, User)
json.contributor_terms do
json.agreed user.terms_agreed.present?
json.pd user.consider_pd
end
else
json.contributor_terms do
json.agreed user.terms_agreed.present?
end
end
json.img do
json.href user_image_url(user) if user.avatar.attached? || user.image_use_gravatar
end
json.roles do
json.array! user.roles.map(&:role)
end
json.changesets do
json.count user.changesets.size
end
json.traces do
json.count user.traces.size
end
json.blocks do
json.received do
json.count user.blocks.size
json.active user.blocks.active.size
end
if user.moderator?
json.issued do
json.count user.blocks_created.size
json.active user.blocks_created.active.size
end
end
end
if current_user && current_user == user && can?(:details, User)
if user.home_lat && user.home_lon
json.home do
json.lat user.home_lat
json.lon user.home_lon
json.zoom user.home_zoom
end
end
json.languages user.languages if user.languages?
json.messages do
json.received do
json.count user.messages.size
json.unread user.new_messages.size
end
json.sent do
json.count user.sent_messages.size
end
end
json.email user.email if scope_enabled?(:read_email)
end
end