]> git.openstreetmap.org Git - rails.git/blobdiff - app/models/way.rb
Initial work on support for multiple editors
[rails.git] / app / models / way.rb
index f9d36be93811cf32c071c5d1af518333ab54fb2c..cc9343e7c508324c53f9230664529f1aba996bf5 100644 (file)
@@ -34,6 +34,7 @@ class Way < ActiveRecord::Base
       doc.find('//osm/way').each do |pt|
         return Way.from_xml_node(pt, create)
       end
+      raise OSM::APIBadXMLError.new("node", xml, "XML doesn't contain an osm/way element.")
     rescue LibXML::XML::Error, ArgumentError => ex
       raise OSM::APIBadXMLError.new("way", xml, ex.message)
     end
@@ -61,6 +62,8 @@ class Way < ActiveRecord::Base
     way.visible = true
 
     pt.find('tag').each do |tag|
+      raise OSM::APIBadXMLError.new("way", pt, "tag is missing key") if tag['k'].nil?
+      raise OSM::APIBadXMLError.new("way", pt, "tag is missing value") if tag['v'].nil?
       way.add_tag_keyval(tag['k'], tag['v'])
     end
 
@@ -231,8 +234,8 @@ class Way < ActiveRecord::Base
 
   def preconditions_ok?(old_nodes = [])
     return false if self.nds.empty?
-    if self.nds.length > APP_CONFIG['max_number_of_way_nodes']
-      raise OSM::APITooManyWayNodesError.new(self.nds.length, APP_CONFIG['max_number_of_way_nodes'])
+    if self.nds.length > MAX_NUMBER_OF_WAY_NODES
+      raise OSM::APITooManyWayNodesError.new(self.id, self.nds.length, MAX_NUMBER_OF_WAY_NODES)
     end
 
     # check only the new nodes, for efficiency - old nodes having been checked last time and can't