ways now work

This commit is contained in:
Steve Coast 2006-11-27 13:05:27 +00:00
parent 0638eefe22
commit 1a6765f1a2
2 changed files with 34 additions and 1 deletions

View file

@ -48,7 +48,32 @@ class WayController < ApplicationController
way.visible = false way.visible = false
way.save_with_history way.save_with_history
render :nothing => true
return
when :put
way = Way.from_xml(request.raw_post, true)
if way
way_in_db = Way.find(way.id)
if way_in_db
way_in_db.user_id = @user.id
way_in_db.tags = way.tags
way_in_db.segs = way.segs
way_in_db.timestamp = way.timestamp
way_in_db.visible = true
if way_in_db.save_with_history
render :text => way.id
else
render :nothing => true, :status => 500
end
return
else
render :nothing => true, :status => 404 # way doesn't exist yet
end
else
render :nothing => true, :status => 400 # if we got here the doc didnt parse
return
end
end end
end end
end end

View file

@ -16,7 +16,7 @@ class Way < ActiveRecord::Base
way = Way.new way = Way.new
doc.find('//osm/way').each do |pt| doc.find('//osm/way').each do |pt|
if !create and pt['id'] != '0' unless create and pt['id'] == '0'
way.id = pt['id'].to_i way.id = pt['id'].to_i
end end
@ -83,6 +83,14 @@ class Way < ActiveRecord::Base
@tags @tags
end end
def segs=(s)
@segs = s
end
def tags=(t)
@tags = t
end
def add_seg_num(n) def add_seg_num(n)
@segs = Array.new unless @segs @segs = Array.new unless @segs
@segs << n.to_i @segs << n.to_i