X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/aa1fb6dbb8c2e71b8ce8c231ae1272a2dfebd75a..d5e6acaaceb5e74a76369bdfb9413d26ba99e721:/app/controllers/relation_controller.rb?ds=sidebyside diff --git a/app/controllers/relation_controller.rb b/app/controllers/relation_controller.rb index 80fd51997..059fb8d7e 100644 --- a/app/controllers/relation_controller.rb +++ b/app/controllers/relation_controller.rb @@ -35,9 +35,7 @@ class RelationController < ApplicationController relation = Relation.find(params[:id]) new_relation = Relation.from_xml(request.raw_post) - unless new_relation && new_relation.id == relation.id - raise OSM::APIBadUserInput, "The id in the url (#{relation.id}) is not the same as provided in the xml (#{new_relation.id})" - end + raise OSM::APIBadUserInput, "The id in the url (#{relation.id}) is not the same as provided in the xml (#{new_relation.id})" unless new_relation && new_relation.id == relation.id relation.update_from new_relation, current_user render :plain => relation.version.to_s @@ -91,7 +89,6 @@ class RelationController < ApplicationController # create XML. doc = OSM::API.new.get_xml_doc visible_nodes = {} - visible_members = { "Node" => {}, "Way" => {}, "Relation" => {} } changeset_cache = {} user_display_name_cache = {} @@ -100,25 +97,22 @@ class RelationController < ApplicationController doc.root << node.to_xml_node(changeset_cache, user_display_name_cache) visible_nodes[node.id] = node - visible_members["Node"][node.id] = true end ways.each do |way| next unless way.visible? # should be unnecessary if data is consistent. doc.root << way.to_xml_node(visible_nodes, changeset_cache, user_display_name_cache) - visible_members["Way"][way.id] = true end relations.each do |rel| next unless rel.visible? # should be unnecessary if data is consistent. - doc.root << rel.to_xml_node(nil, changeset_cache, user_display_name_cache) - visible_members["Relation"][rel.id] = true + doc.root << rel.to_xml_node(changeset_cache, user_display_name_cache) end # finally add self and output - doc.root << relation.to_xml_node(visible_members, changeset_cache, user_display_name_cache) + doc.root << relation.to_xml_node(changeset_cache, user_display_name_cache) render :xml => doc.to_s else @@ -127,15 +121,11 @@ class RelationController < ApplicationController end def relations - unless params["relations"] - raise OSM::APIBadUserInput, "The parameter relations is required, and must be of the form relations=id[,id[,id...]]" - end + raise OSM::APIBadUserInput, "The parameter relations is required, and must be of the form relations=id[,id[,id...]]" unless params["relations"] ids = params["relations"].split(",").collect(&:to_i) - if ids.empty? - raise OSM::APIBadUserInput, "No relations were given to search for" - end + raise OSM::APIBadUserInput, "No relations were given to search for" if ids.empty? doc = OSM::API.new.get_xml_doc