]> git.openstreetmap.org Git - rails.git/blobdiff - app/views/user/api_read.builder
Merge remote-tracking branch 'upstream/pull/1788'
[rails.git] / app / views / user / api_read.builder
index 145607446884b18bf70443cc3a8ac7a3cc9780e9..fe5af4bcf6cfa547c108fec36eb9270a4cdfe0a4 100644 (file)
@@ -3,26 +3,45 @@ xml.osm("version" => API_VERSION, "generator" => GENERATOR) do
   xml.tag! "user", :id => @this_user.id,
                    :display_name => @this_user.display_name,
                    :account_created => @this_user.creation_time.xmlschema do
-    if @this_user.description
-      xml.tag! "description", @this_user.description
+    xml.tag! "description", @this_user.description if @this_user.description
+    if current_user && current_user == @this_user
+      xml.tag! "contributor-terms", :agreed => @this_user.terms_agreed.present?,
+                                    :pd => @this_user.consider_pd
+    else
+      xml.tag! "contributor-terms", :agreed => @this_user.terms_agreed.present?
     end
-    xml.tag! "contributor-terms",
-        :agreed => !!@this_user.terms_agreed,
-        :pd => !!@this_user.consider_pd
-    if @this_user.image.file?
-      xml.tag! "img", :href => "http://#{SERVER_URL}#{@this_user.image.url}"
+    xml.tag! "img", :href => user_image_url(@this_user, :size => 256) if @this_user.image.file? || @this_user.image_use_gravatar
+    xml.tag! "roles" do
+      @this_user.roles.each do |role|
+        xml.tag! role.role
+      end
+    end
+    xml.tag! "changesets", :count => @this_user.changesets.size
+    xml.tag! "traces", :count => @this_user.traces.size
+    xml.tag! "blocks" do
+      xml.tag! "received", :count => @this_user.blocks.size,
+                           :active => @this_user.blocks.active.size
+      if @this_user.moderator?
+        xml.tag! "issued", :count => @this_user.blocks_created.size,
+                           :active => @this_user.blocks_created.active.size
+      end
     end
-    if @user && @user == @this_user
-      if @this_user.home_lat and @this_user.home_lon
+    if current_user && current_user == @this_user
+      if @this_user.home_lat && @this_user.home_lon
         xml.tag! "home", :lat => @this_user.home_lat,
                          :lon => @this_user.home_lon,
                          :zoom => @this_user.home_zoom
-      end    
+      end
       if @this_user.languages
         xml.tag! "languages" do
           @this_user.languages.split(",") { |lang| xml.tag! "lang", lang }
         end
       end
+      xml.tag! "messages" do
+        xml.tag! "received", :count => @this_user.messages.size,
+                             :unread => @this_user.new_messages.size
+        xml.tag! "sent", :count => @this_user.sent_messages.size
+      end
     end
   end
 end