]> git.openstreetmap.org Git - rails.git/blobdiff - app/controllers/api_controller.rb
Merge remote-tracking branch 'upstream/pull/1659'
[rails.git] / app / controllers / api_controller.rb
index 25e1e3b95cc9edebaff056d1ea9fdbcf5ca22f98..9324a8ed56a4c4eb2351123a0c7d677ce56fd894 100644 (file)
@@ -100,7 +100,7 @@ class ApiController < ApplicationController
 
     response.headers["Content-Disposition"] = "attachment; filename=\"tracks.gpx\""
 
 
     response.headers["Content-Disposition"] = "attachment; filename=\"tracks.gpx\""
 
-    render :text => doc.to_s, :content_type => "text/xml"
+    render :xml => doc.to_s
   end
 
   # This is probably the most common call of all. It is used for getting the
   end
 
   # This is probably the most common call of all. It is used for getting the
@@ -198,7 +198,7 @@ class ApiController < ApplicationController
 
     response.headers["Content-Disposition"] = "attachment; filename=\"map.osm\""
 
 
     response.headers["Content-Disposition"] = "attachment; filename=\"map.osm\""
 
-    render :text => doc.to_s, :content_type => "text/xml"
+    render :xml => doc.to_s
   end
 
   # Get a list of the tiles that have changed within a specified time
   end
 
   # Get a list of the tiles that have changed within a specified time
@@ -241,9 +241,9 @@ class ApiController < ApplicationController
 
       doc.root << changes
 
 
       doc.root << changes
 
-      render :text => doc.to_s, :content_type => "text/xml"
+      render :xml => doc.to_s
     else
     else
-      render :text => "Requested zoom is invalid, or the supplied start is after the end time, or the start duration is more than 24 hours", :status => :bad_request
+      render :plain => "Requested zoom is invalid, or the supplied start is after the end time, or the start duration is more than 24 hours", :status => :bad_request
     end
   end
 
     end
   end
 
@@ -263,6 +263,9 @@ class ApiController < ApplicationController
     area = XML::Node.new "area"
     area["maximum"] = MAX_REQUEST_AREA.to_s
     api << area
     area = XML::Node.new "area"
     area["maximum"] = MAX_REQUEST_AREA.to_s
     api << area
+    notearea = XML::Node.new "note_area"
+    notearea["maximum"] = MAX_NOTE_REQUEST_AREA.to_s
+    api << notearea
     tracepoints = XML::Node.new "tracepoints"
     tracepoints["per_page"] = TRACEPOINTS_PER_PAGE.to_s
     api << tracepoints
     tracepoints = XML::Node.new "tracepoints"
     tracepoints["per_page"] = TRACEPOINTS_PER_PAGE.to_s
     api << tracepoints
@@ -291,7 +294,7 @@ class ApiController < ApplicationController
     policy << blacklist
     doc.root << policy
 
     policy << blacklist
     doc.root << policy
 
-    render :text => doc.to_s, :content_type => "text/xml"
+    render :xml => doc.to_s
   end
 
   # External apps that use the api are able to query which permissions
   end
 
   # External apps that use the api are able to query which permissions
@@ -300,10 +303,9 @@ class ApiController < ApplicationController
   # * if authenticated via basic auth all permissions are granted, so the list will contain all permissions.
   # * unauthenticated users have no permissions, so the list will be empty.
   def permissions
   # * if authenticated via basic auth all permissions are granted, so the list will contain all permissions.
   # * unauthenticated users have no permissions, so the list will be empty.
   def permissions
-    @permissions = case
-                   when current_token.present?
+    @permissions = if current_token.present?
                      ClientApplication.all_permissions.select { |p| current_token.read_attribute(p) }
                      ClientApplication.all_permissions.select { |p| current_token.read_attribute(p) }
-                   when @user
+                   elsif current_user
                      ClientApplication.all_permissions
                    else
                      []
                      ClientApplication.all_permissions
                    else
                      []