From e15916ad5b081f94c433f1e0bb708be242dbe5ab Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Fri, 31 Aug 2007 18:10:44 +0000 Subject: [PATCH] Let exceptions propagate to the default handler for ways so they are logged. --- app/controllers/way_controller.rb | 29 +++----------- app/models/way.rb | 66 ++++++++++++++----------------- 2 files changed, 36 insertions(+), 59 deletions(-) diff --git a/app/controllers/way_controller.rb b/app/controllers/way_controller.rb index e7d6cf87b..935ff3a72 100644 --- a/app/controllers/way_controller.rb +++ b/app/controllers/way_controller.rb @@ -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 diff --git a/app/models/way.rb b/app/models/way.rb index 09d1dafa0..d86d82de6 100644 --- a/app/models/way.rb +++ b/app/models/way.rb @@ -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! - - tags = self.tags - - 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 + def save_with_history! + Way.transaction do + t = Time.now + self.timestamp = t + self.save! + + tags = self.tags + + 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 - WaySegment.delete_all(['id = ?', self.id]) + segs = self.segs - 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 + WaySegment.delete_all(['id = ?', self.id]) - old_way = OldWay.from_way(self) - old_way.timestamp = t - old_way.save_with_dependencies! + 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 - return true - rescue - return nil + old_way = OldWay.from_way(self) + old_way.timestamp = t + old_way.save_with_dependencies! end end -- 2.43.2