X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/b56f57ec43dfefa4171dc0cefe26d9e75d4ca2bc..d841d3d1352b31e7a2196b07f4ae335e6bca8380:/app/controllers/relation_controller.rb?ds=sidebyside diff --git a/app/controllers/relation_controller.rb b/app/controllers/relation_controller.rb index 7ce58dae6..93573b95f 100644 --- a/app/controllers/relation_controller.rb +++ b/app/controllers/relation_controller.rb @@ -12,12 +12,14 @@ class RelationController < ApplicationController if request.put? relation = Relation.from_xml(request.raw_post, true) - if relation + # We assume that an exception has been thrown if there was an error + # generating the relation + #if relation relation.create_with_history @user render :text => relation.id.to_s, :content_type => "text/plain" - else - render :nothing => true, :status => :bad_request - end + #else + # render :text => "Couldn't get turn the input into a relation.", :status => :bad_request + #end else render :nothing => true, :status => :method_not_allowed end @@ -62,7 +64,6 @@ class RelationController < ApplicationController end def delete -#XXX check if member somewhere! begin relation = Relation.find(params[:id]) new_relation = Relation.from_xml(request.raw_post) @@ -141,8 +142,7 @@ class RelationController < ApplicationController render :text => doc.to_s, :content_type => "text/xml" else - - render :text => "", :status => :gone + render :nothing => true, :status => :gone end rescue ActiveRecord::RecordNotFound @@ -165,8 +165,10 @@ class RelationController < ApplicationController render :text => doc.to_s, :content_type => "text/xml" else - render :nothing => true, :status => :bad_request + render :text => "You need to supply a comma separated list of ids.", :status => :bad_request end + rescue ActiveRecord::RecordNotFound + render :text => "Could not find one of the relations", :status => :not_found end def relations_for_way @@ -180,12 +182,12 @@ class RelationController < ApplicationController end def relations_for_object(objtype) - relationids = RelationMember.find(:all, :conditions => ['member_type=? and member_id=?', objtype, params[:id]]).collect { |ws| ws.id }.uniq + relationids = RelationMember.find(:all, :conditions => ['member_type=? and member_id=?', objtype, params[:id]]).collect { |ws| ws.id[0] }.uniq doc = OSM::API.new.get_xml_doc Relation.find(relationids).each do |relation| - doc.root << relation.to_xml_node + doc.root << relation.to_xml_node if relation.visible end render :text => doc.to_s, :content_type => "text/xml"