]> git.openstreetmap.org Git - rails.git/blobdiff - app/controllers/amf_controller.rb
adding the maximum number of elements in a changeset to the capabilities call, includ...
[rails.git] / app / controllers / amf_controller.rb
index d8d7ce3c4daed893dbd58ab5d704ccecd637a3a9..1af78796c21674fcc5949295697cc8fd91007f07 100644 (file)
@@ -452,7 +452,8 @@ class AmfController < ApplicationController
   # Returns
   # 0. 0 (success),
   # 1. original relation id (unchanged),
-  # 2. new relation id.
+  # 2. new relation id,
+  # 3. version.
 
   def putrelation(renumberednodes, renumberedways, usertoken, changeset_id, version, relid, tags, members, visible) #:doc:
     user = getuser(usertoken)
@@ -504,10 +505,10 @@ class AmfController < ApplicationController
       end
     end # transaction
       
-    if id <= 0
+    if relid <= 0
       return [0, relid, new_relation.id, new_relation.version]
     else
-      return [0, relid, relation.id, relation.version]
+      return [0, relid, relid, relation.version]
     end
   rescue OSM::APIChangesetAlreadyClosedError => ex
     return [-1, "The changeset #{ex.changeset.id} was closed at #{ex.changeset.closed_at}."]
@@ -796,7 +797,7 @@ class AmfController < ApplicationController
 
   def deleteitemrelations(user, changeset_id, objid, type, version) #:doc:
     relations = RelationMember.find(:all, 
-                                                                       :conditions => ['member_type = ? and member_id = ?', type, objid], 
+                                                                       :conditions => ['member_type = ? and member_id = ?', type.classify, objid], 
                                                                        :include => :relation).collect { |rm| rm.relation }.uniq
 
     relations.each do |rel|
@@ -884,7 +885,7 @@ class AmfController < ApplicationController
       SELECT DISTINCT cr.id AS relid,cr.version AS version 
       FROM current_relations cr
       INNER JOIN current_relation_members crm ON crm.id=cr.id 
-      INNER JOIN current_nodes cn ON crm.member_id=cn.id AND crm.member_type='node' 
+      INNER JOIN current_nodes cn ON crm.member_id=cn.id AND crm.member_type='Node' 
        WHERE #{OSM.sql_for_area(ymin, xmin, ymax, xmax, "cn.")}
       EOF
     unless way_ids.empty?
@@ -893,11 +894,11 @@ class AmfController < ApplicationController
         SELECT DISTINCT cr.id AS relid,cr.version AS version
         FROM current_relations cr
         INNER JOIN current_relation_members crm ON crm.id=cr.id
-         WHERE crm.member_type='way' 
+         WHERE crm.member_type='Way' 
          AND crm.member_id IN (#{way_ids.join(',')})
         EOF
     end
-    return ActiveRecord::Base.connection.select_all(sql).collect { |a| [a['relid'].to_i,a['version'].to_i] }
+    ActiveRecord::Base.connection.select_all(sql).collect { |a| [a['relid'].to_i,a['version'].to_i] }
   end
        
   def sql_get_nodes_in_way(wayid)