X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/72e71b99724a19d124ddddb15ec2c072227f869d..15b104f4ff4614aa78c01180b6a9b89dd5a1400f:/app/controllers/api_controller.rb diff --git a/app/controllers/api_controller.rb b/app/controllers/api_controller.rb index eb59a8a8d..c6cc3ba5f 100644 --- a/app/controllers/api_controller.rb +++ b/app/controllers/api_controller.rb @@ -100,7 +100,7 @@ class ApiController < ApplicationController 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 @@ -193,12 +193,12 @@ class ApiController < ApplicationController # this "uniq" may be slightly inefficient; it may be better to first collect and output # all node-related relations, then find the *not yet covered* way-related ones etc. relations.uniq.each do |relation| - doc.root << relation.to_xml_node(nil, changeset_cache, user_display_name_cache) + doc.root << relation.to_xml_node(changeset_cache, user_display_name_cache) end 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 @@ -241,9 +241,9 @@ class ApiController < ApplicationController doc.root << changes - render :text => doc.to_s, :content_type => "text/xml" + render :xml => doc.to_s 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 @@ -263,6 +263,9 @@ class ApiController < ApplicationController 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 @@ -291,7 +294,7 @@ class ApiController < ApplicationController 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 @@ -302,7 +305,7 @@ class ApiController < ApplicationController def permissions @permissions = if current_token.present? ClientApplication.all_permissions.select { |p| current_token.read_attribute(p) } - elsif @user + elsif current_user ClientApplication.all_permissions else []