X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/f423c13ad46dc90c9ab5a9ea29ed38fdf95851fe..0a682b9da677b8e57f7960741dbff554e1a71cc1:/app/controllers/amf_controller.rb diff --git a/app/controllers/amf_controller.rb b/app/controllers/amf_controller.rb index 72985554c..7f1bae483 100644 --- a/app/controllers/amf_controller.rb +++ b/app/controllers/amf_controller.rb @@ -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) @@ -491,7 +492,6 @@ class AmfController < ApplicationController new_relation.changeset_id = changeset_id new_relation.version = version - # NOTE: id or relid here? id doesn't seem to be set above if relid <= 0 # We're creating the node new_relation.create_with_history(user) @@ -504,10 +504,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}."] @@ -520,7 +520,7 @@ class AmfController < ApplicationController return [-1, "The relation has already been deleted."] rescue OSM::APIError => ex # Some error that we don't specifically catch - return [-2, "Something really bad happened :-( ."] + return [-2, "An unusual error happened (in 'putrelation' #{relid})."] end # Save a way to the database, including all nodes. Any nodes in the previous @@ -644,7 +644,7 @@ class AmfController < ApplicationController return [-1, "The point has already been deleted."] rescue OSM::APIError => ex # Some error that we don't specifically catch - return [-2, "Something really bad happened :-(."] + return [-2, "An unusual error happened (in 'putway' #{originalway})."] end # Save POI to the database. @@ -707,7 +707,7 @@ class AmfController < ApplicationController return [-1, "The point has already been deleted"] rescue OSM::APIError => ex # Some error that we don't specifically catch - return [-2, "Something really bad happened :-()"] + return [-2, "An unusual error happened (in 'putpoi' #{id})."] end # Read POI from database @@ -782,7 +782,7 @@ class AmfController < ApplicationController return [-1, "The way has already been deleted."] rescue OSM::APIError => ex # Some error that we don't specifically catch - return [-2, "Something really bad happened :-( ."] + return [-2, "An unusual error happened (in 'deleteway' #{way_id})."] end @@ -796,7 +796,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 +884,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 +893,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)