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