]> git.openstreetmap.org Git - rails.git/blobdiff - app/controllers/amf_controller.rb
Use correct names for member types.
[rails.git] / app / controllers / amf_controller.rb
index 1ee5e9cee2b14beacc1552c409694583dd1075c4..c7eb4ae4cc2c79a14c6fc634450972153a554ccd 100644 (file)
@@ -41,7 +41,7 @@ class AmfController < ApplicationController
   include MapBoundary
 
   session :off
-  before_filter :check_write_availability
+  before_filter :check_api_writable
 
   # Main AMF handlers: process the raw AMF string (using AMF library) and
   # calls each action (private method) accordingly.
@@ -55,7 +55,7 @@ class AmfController < ApplicationController
 
     # Parse request
 
-    headers=AMF.getint(req)                                    # Read number of headers
+       headers=AMF.getint(req)                                 # Read number of headers
 
     headers.times do                                           # Read each header
       name=AMF.getstring(req)                          #  |
@@ -76,7 +76,8 @@ class AmfController < ApplicationController
         when 'getpresets';                     results[index]=AMF.putdata(index,getpresets())
         when 'whichways';                      results[index]=AMF.putdata(index,whichways(*args))
         when 'whichways_deleted';      results[index]=AMF.putdata(index,whichways_deleted(*args))
-        when 'getway';                         results[index]=AMF.putdata(index,getway(args[0].to_i))
+        when 'getway';                         r=AMF.putdata(index,getway(args[0].to_i))
+                                    results[index]=r
         when 'getrelation';                    results[index]=AMF.putdata(index,getrelation(args[0].to_i))
         when 'getway_old';                     results[index]=AMF.putdata(index,getway_old(args[0].to_i,args[1]))
         when 'getway_history';         results[index]=AMF.putdata(index,getway_history(args[0].to_i))
@@ -276,7 +277,7 @@ class AmfController < ApplicationController
 
     [wayid, points, tags, version]
   end
-
+  
   # Get an old version of a way, and all constituent nodes.
   #
   # For undelete (version<0), always uses the most recent version of each node, 
@@ -519,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')."]
   end
 
   # Save a way to the database, including all nodes. Any nodes in the previous
@@ -643,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')."]
   end
 
   # Save POI to the database.
@@ -706,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')."]
   end
 
   # Read POI from database
@@ -781,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')."]
   end
 
 
@@ -795,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|
@@ -883,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?
@@ -892,7 +893,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
-         WHERE crm.member_type='way' 
+         WHERE crm.member_type='Way' 
          AND crm.member_id IN (#{way_ids.join(',')})
         EOF
     end