Let exceptions propagate to the default handler for ways so they are logged.

This commit is contained in:
Tom Hughes 2007-08-31 18:10:44 +00:00
parent ed8b7fde42
commit e15916ad5b
2 changed files with 36 additions and 59 deletions

View file

@ -15,12 +15,9 @@ class WayController < ApplicationController
render :nothing => true, :status => :precondition_failed
else
way.user_id = @user.id
way.save_with_history!
if way.save_with_history
render :text => way.id.to_s, :content_type => "text/plain"
else
render :nothing => true, :status => :internal_server_error
end
render :text => way.id.to_s, :content_type => "text/plain"
end
else
render :nothing => true, :status => :bad_request
@ -41,8 +38,6 @@ class WayController < ApplicationController
end
rescue ActiveRecord::RecordNotFound
render :nothing => true, :status => :not_found
rescue
render :nothing => true, :status => :internal_server_error
end
end
@ -61,12 +56,9 @@ class WayController < ApplicationController
way.tags = new_way.tags
way.segs = new_way.segs
way.visible = true
way.save_with_history!
if way.save_with_history
render :nothing => true
else
render :nothing => true, :status => :internal_server_error
end
render :nothing => true
end
else
render :nothing => true, :status => :bad_request
@ -76,8 +68,6 @@ class WayController < ApplicationController
end
rescue ActiveRecord::RecordNotFound
render :nothing => true, :status => :not_found
rescue
render :nothing => true, :status => :internal_server_error
end
end
@ -90,19 +80,14 @@ class WayController < ApplicationController
way.tags = []
way.segs = []
way.visible = false
way.save_with_history!
if way.save_with_history
render :nothing => true
else
render :nothing => true, :status => :internal_server_error
end
render :nothing => true
else
render :nothing => true, :status => :gone
end
rescue ActiveRecord::RecordNotFound
render :nothing => true, :status => :not_found
rescue
render :nothing => true, :status => :internal_server_error
end
end
@ -136,8 +121,6 @@ class WayController < ApplicationController
end
rescue ActiveRecord::RecordNotFound
render :nothing => true, :status => :not_found
rescue
render :nothing => true, :status => :internal_server_error
end
end

View file

@ -142,47 +142,41 @@ class Way < ActiveRecord::Base
@tags[k] = v
end
def save_with_history
begin
Way.transaction do
t = Time.now
self.timestamp = t
self.save!
def save_with_history!
Way.transaction do
t = Time.now
self.timestamp = t
self.save!
tags = self.tags
tags = self.tags
WayTag.delete_all(['id = ?', self.id])
WayTag.delete_all(['id = ?', self.id])
tags.each do |k,v|
tag = WayTag.new
tag.k = k
tag.v = v
tag.id = self.id
tag.save!
end
segs = self.segs
WaySegment.delete_all(['id = ?', self.id])
i = 1
segs.each do |n|
seg = WaySegment.new
seg.id = self.id
seg.segment_id = n
seg.sequence_id = i
seg.save!
i += 1
end
old_way = OldWay.from_way(self)
old_way.timestamp = t
old_way.save_with_dependencies!
tags.each do |k,v|
tag = WayTag.new
tag.k = k
tag.v = v
tag.id = self.id
tag.save!
end
return true
rescue
return nil
segs = self.segs
WaySegment.delete_all(['id = ?', self.id])
i = 1
segs.each do |n|
seg = WaySegment.new
seg.id = self.id
seg.segment_id = n
seg.sequence_id = i
seg.save!
i += 1
end
old_way = OldWay.from_way(self)
old_way.timestamp = t
old_way.save_with_dependencies!
end
end