]> git.openstreetmap.org Git - rails.git/blobdiff - app/models/relation.rb
Fix errors when an existing user tries to agree to the new terms
[rails.git] / app / models / relation.rb
index 28fa326ba9142374509be04d06dfd4bc93d92354..e3ba69b56386dae78e9df50a0f3225eb63ae2dda 100644 (file)
@@ -33,6 +33,7 @@ class Relation < ActiveRecord::Base
       doc.find('//osm/relation').each do |pt|
         return Relation.from_xml_node(pt, create)
       end
       doc.find('//osm/relation').each do |pt|
         return Relation.from_xml_node(pt, create)
       end
+      raise OSM::APIBadXMLError.new("node", xml, "XML doesn't contain an osm/relation element.")
     rescue LibXML::XML::Error, ArgumentError => ex
       raise OSM::APIBadXMLError.new("relation", xml, ex.message)
     end
     rescue LibXML::XML::Error, ArgumentError => ex
       raise OSM::APIBadXMLError.new("relation", xml, ex.message)
     end
@@ -60,6 +61,8 @@ class Relation < ActiveRecord::Base
     relation.visible = true
 
     pt.find('tag').each do |tag|
     relation.visible = true
 
     pt.find('tag').each do |tag|
+      raise OSM::APIBadXMLError.new("relation", pt, "tag is missing key") if tag['k'].nil?
+      raise OSM::APIBadXMLError.new("relation", pt, "tag is missing value") if tag['v'].nil?
       relation.add_tag_keyval(tag['k'], tag['v'])
     end
 
       relation.add_tag_keyval(tag['k'], tag['v'])
     end