]> git.openstreetmap.org Git - rails.git/blobdiff - app/controllers/amf_controller.rb
applied TomH patch for lost password site
[rails.git] / app / controllers / amf_controller.rb
index 452ac888157b4beae496b5831f6b83018892c1ab..a4a85c934079b7d8451c3f28d11c420d48db5b18 100644 (file)
@@ -21,24 +21,24 @@ class AmfController < ApplicationController
 
     headers.times do                               # Read each header
       name=getstring(req)                              #  |
-      req.getc                  #  | skip boolean
+      req.getc                                         #  | skip boolean
       value=getvalue(req)                              #  |
-      header["name"]=value                     #  |
+      header["name"]=value                             #  |
     end
 
     bodies=getint(req)                                 # Read number of bodies
     bodies.times do                                    # Read each body
-      message=getstring(req)           #  | get message name
-      index=getstring(req)                     #  | get index in response sequence
+      message=getstring(req)                   #  | get message name
+      index=getstring(req)                             #  | get index in response sequence
       bytes=getlong(req)                               #  | get total size in bytes
       args=getvalue(req)                               #  | get response (probably an array)
 
       case message
       when 'getpresets';       results[index]=putdata(index,getpresets)
-      when 'whichways';        results[index]=putdata(index,whichways(args))
+      when 'whichways';                results[index]=putdata(index,whichways(args))
       when 'getway';           results[index]=putdata(index,getway(args))
       when 'putway';           results[index]=putdata(index,putway(args))
-      when 'deleteway';        results[index]=putdata(index,deleteway(args))
+      when 'deleteway';                results[index]=putdata(index,deleteway(args))
       end
     end
 
@@ -169,10 +169,12 @@ EOF
 
   def whichways(args)
     waylist=WaySegment.find_by_sql("SELECT DISTINCT current_way_segments.id AS wayid"+
-       "  FROM current_way_segments,current_segments,current_nodes "+
+       "  FROM current_way_segments,current_segments,current_nodes,current_ways "+
        " WHERE segment_id=current_segments.id "+
        "   AND current_segments.visible=1 "+
        "   AND node_a=current_nodes.id "+
+          "   AND current_ways.id=current_way_segments.id "+
+          "   AND current_ways.visible=1 "+
        "   AND (latitude  BETWEEN "+(args[1].to_f-0.01).to_s+" AND "+(args[3].to_f+0.01).to_s+") "+
        "   AND (longitude BETWEEN "+(args[0].to_f-0.01).to_s+" AND "+(args[2].to_f+0.01).to_s+")")
 
@@ -187,7 +189,7 @@ EOF
        "   AND cs1.id IS NULL AND cs2.id IS NULL "+
        "   AND current_nodes.visible=1")
 
-    points = pointlist.collect {|a| [a['id'],tag2array(a['tags'])]     } # get a list of node ids and their tags
+           points = pointlist.collect {|a| [a['id'],tag2array(a['tags'])]      } # get a list of node ids and their tags
 
     return [ways,points]
   end
@@ -224,9 +226,9 @@ EOF
   end
 
   # -----      putway (user token, way, array of co-ordinates, array of attributes,
-  #                            baselong, basey, masterscale)
-  #            returns current way ID, new way ID, hash of renumbered nodes,
-  #                            xmin,xmax,ymin,ymax
+  #                                    baselong, basey, masterscale)
+  #                    returns current way ID, new way ID, hash of renumbered nodes,
+  #                                    xmin,xmax,ymin,ymax
 
   def putway(args)
     usertoken,originalway,points,attributes,baselong,basey,masterscale=args
@@ -247,6 +249,7 @@ EOF
         id2=row['id2'].to_i; xc[id2]=row['long2'].to_f; yc[id2]=row['lat2'].to_f; tagc[id2]=row['tags2']
         seg[row['segment_id'].to_i]=id1.to_s+'-'+id2.to_s
       }
+         ActiveRecord::Base.connection.update("UPDATE current_ways SET timestamp=#{db_now},user_id=#{uid},visible=1 WHERE id=#{way}")
     else
       way=ActiveRecord::Base.connection.insert("INSERT INTO current_ways (user_id,timestamp,visible) VALUES (#{uid},#{db_now},1)")
     end
@@ -420,7 +423,7 @@ EOF
   end
 
   # -----      deleteway (user token, way)
-  #            returns way ID only
+  #                    returns way ID only
 
   def deleteway(args)
     usertoken,way=args