]> git.openstreetmap.org Git - rails.git/blobdiff - app/models/node.rb
Make error messages more helpful
[rails.git] / app / models / node.rb
index 679048b4e3aa18dc453cde9776410b3b7ba0cb2b..1392fc65099f4123ccb06447f6f3d8f624cbad33 100644 (file)
@@ -70,7 +70,7 @@ class Node < ActiveRecord::Base
       doc.find('//osm/node').each do |pt|
         return Node.from_xml_node(pt, create)
       end
-    rescue LibXML::XML::Error => ex
+    rescue LibXML::XML::Error, ArgumentError => ex
       raise OSM::APIBadXMLError.new("node", xml, ex.message)
     end
   end
@@ -133,7 +133,7 @@ class Node < ActiveRecord::Base
       check_consistency(self, new_node, user)
       if WayNode.find(:first, :joins => "INNER JOIN current_ways ON current_ways.id = current_way_nodes.id", :conditions => [ "current_ways.visible = ? AND current_way_nodes.node_id = ?", true, self.id ])
         raise OSM::APIPreconditionFailedError.new
-      elsif RelationMember.find(:first, :joins => "INNER JOIN current_relations ON current_relations.id=current_relation_members.id", :conditions => [ "visible = ? AND member_type='node' and member_id=? ", true, self.id])
+      elsif RelationMember.find(:first, :joins => "INNER JOIN current_relations ON current_relations.id=current_relation_members.id", :conditions => [ "visible = ? AND member_type='Node' and member_id=? ", true, self.id])
         raise OSM::APIPreconditionFailedError.new
       else
         self.changeset_id = new_node.changeset_id
@@ -171,7 +171,6 @@ class Node < ActiveRecord::Base
   
   def create_with_history(user)
     check_create_consistency(self, user)
-    self.id = nil
     self.version = 0
     self.visible = true