]> git.openstreetmap.org Git - rails.git/blobdiff - app/views/user/api_read.builder
Add a reopen API call for notes
[rails.git] / app / views / user / api_read.builder
index 145607446884b18bf70443cc3a8ac7a3cc9780e9..71bf292081e0dd2f3dfdd01cdc04cce7c07b70ab 100644 (file)
@@ -6,18 +6,36 @@ xml.osm("version" => API_VERSION, "generator" => GENERATOR) do
     if @this_user.description
       xml.tag! "description", @this_user.description
     end
     if @this_user.description
       xml.tag! "description", @this_user.description
     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}"
+    if @user && @user == @this_user
+      xml.tag! "contributor-terms", :agreed => !!@this_user.terms_agreed,
+                                    :pd => !!@this_user.consider_pd
+    else
+      xml.tag! "contributor-terms", :agreed => !!@this_user.terms_agreed
+    end
+    if @this_user.image.file? or @this_user.image_use_gravatar
+      xml.tag! "img", :href => user_image_url(@this_user, :size => 256)
+    end
+    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
         xml.tag! "home", :lat => @this_user.home_lat,
                          :lon => @this_user.home_lon,
                          :zoom => @this_user.home_zoom
     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    
+      end
       if @this_user.languages
         xml.tag! "languages" do
           @this_user.languages.split(",") { |lang| xml.tag! "lang", lang }
       if @this_user.languages
         xml.tag! "languages" do
           @this_user.languages.split(",") { |lang| xml.tag! "lang", lang }