From 9b4271ed8c0577d23c6d77c4be0ed8a8082dc86c Mon Sep 17 00:00:00 2001 From: Richard Fairhurst Date: Fri, 24 Apr 2009 17:44:52 +0000 Subject: [PATCH] pass common API error text through to Potlatch so it can be shown to the user --- app/controllers/amf_controller.rb | 18 +++++++++--------- lib/osm.rb | 16 ++++++++++++++++ public/potlatch/potlatch.swf | Bin 175143 -> 175143 bytes 3 files changed, 25 insertions(+), 9 deletions(-) diff --git a/app/controllers/amf_controller.rb b/app/controllers/amf_controller.rb index a5da00998..6354949da 100644 --- a/app/controllers/amf_controller.rb +++ b/app/controllers/amf_controller.rb @@ -220,7 +220,7 @@ class AmfController < ApplicationController [0, ways, points, relations] rescue Exception => err - [-2,"Sorry - I can't get the map for that area."] + [-2,"Sorry - I can't get the map for that area. The server said: #{err}"] end # Find deleted ways in current bounding box (similar to whichways, but ways @@ -236,7 +236,7 @@ class AmfController < ApplicationController begin check_boundaries(xmin, ymin, xmax, ymax) rescue Exception => err - return [-2,"Sorry - I can't get the map for that area."] + return [-2,"Sorry - I can't get the map for that area. The server said: #{err}"] end nodes_in_area = Node.find_by_area(ymin, xmin, ymax, xmax, :conditions => ["current_ways.visible = ?", false], :include => :ways_via_history) @@ -515,12 +515,12 @@ class AmfController < ApplicationController # Really need to check to see whether this is a server load issue, and the # last version was in the same changeset, or belongs to the same user, then # we can return something different - return [-3, "Sorry, someone else has changed this relation since you started editing. Please click the 'Edit' tab to reload the area."] + return [-3, "Sorry, someone else has changed this relation since you started editing. Please click the 'Edit' tab to reload the area. The server said: #{ex}"] rescue OSM::APIAlreadyDeletedError => ex return [-1, "The relation has already been deleted."] rescue OSM::APIError => ex # Some error that we don't specifically catch - return [-2, "An unusual error happened (in 'putrelation' #{relid})."] + return [-2, "An unusual error happened (in 'putrelation' #{relid}). The server said: #{ex}"] end # Save a way to the database, including all nodes. Any nodes in the previous @@ -637,14 +637,14 @@ class AmfController < ApplicationController # Really need to check to see whether this is a server load issue, and the # last version was in the same changeset, or belongs to the same user, then # we can return something different - return [-3, "Sorry, someone else has changed this way since you started editing. Please click the 'Edit' tab to reload the area."] + return [-3, "Sorry, someone else has changed this way since you started editing. Click the 'Edit' tab to reload the area. The server said: #{ex}"] rescue OSM::APITooManyWayNodesError => ex return [-1, "You have tried to upload a really long way with #{ex.provided} points: only #{ex.max} are allowed."] rescue OSM::APIAlreadyDeletedError => ex return [-1, "The point has already been deleted."] rescue OSM::APIError => ex # Some error that we don't specifically catch - return [-2, "An unusual error happened (in 'putway' #{originalway})."] + return [-2, "An unusual error happened (in 'putway' #{originalway}). The server said: #{ex}"] end # Save POI to the database. @@ -702,12 +702,12 @@ class AmfController < ApplicationController # Really need to check to see whether this is a server load issue, and the # last version was in the same changeset, or belongs to the same user, then # we can return something different - return [-3, "Sorry, someone else has changed this point since you started editing. Please click the 'Edit' tab to reload the area."] + return [-3, "Sorry, someone else has changed this point since you started editing. Please click the 'Edit' tab to reload the area. The server said: #{ex}"] rescue OSM::APIAlreadyDeletedError => ex return [-1, "The point has already been deleted"] rescue OSM::APIError => ex # Some error that we don't specifically catch - return [-2, "An unusual error happened (in 'putpoi' #{id})."] + return [-2, "An unusual error happened (in 'putpoi' #{id}). The server said: #{ex}"] end # Read POI from database @@ -783,7 +783,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, "An unusual error happened (in 'deleteway' #{way_id})."] + return [-2, "An unusual error happened (in 'deleteway' #{way_id}). The server said: #{ex}"] end diff --git a/lib/osm.rb b/lib/osm.rb index f372979a8..eb5afd562 100644 --- a/lib/osm.rb +++ b/lib/osm.rb @@ -13,6 +13,10 @@ module OSM def render_opts { :text => "Generic API Error", :status => :internal_server_error, :content_type => "text/plain" } end + + def to_s + "Generic API Error" + end end # Raised when an API object is not found. @@ -31,6 +35,10 @@ module OSM def render_opts { :text => "Precondition failed: #{@message}", :status => :precondition_failed, :content_type => "text/plain" } end + + def to_s + "Precondition failed: #{@message}" + end end # Raised when to delete an already-deleted object. @@ -65,6 +73,10 @@ module OSM def render_opts { :text => "You need to supply a changeset to be able to make a change", :status => :conflict, :content_type => "text/plain" } end + + def to_s + "You need to supply a changeset to be able to make a change" + end end # Raised when a diff is uploaded containing many changeset IDs which don't match @@ -119,6 +131,10 @@ module OSM ", server had: " + latest.to_s + " of " + type + " " + id.to_s, :status => :conflict, :content_type => "text/plain" } end + + def to_s + "Version mismatch: Provided " + provided.to_s + ", server had: " + latest.to_s + " of " + type + " " + id.to_s + end end # raised when a two tags have a duplicate key string in an element. diff --git a/public/potlatch/potlatch.swf b/public/potlatch/potlatch.swf index 0e81838fb348cd4d62af17d1250d16a4274cee1e..459f0bdde926400109793667806152d51d199bda 100755 GIT binary patch delta 43 zcmZ2}gKPN>u7)j)p)QQmriZyOZe)y`&hN&kI9=0~QJBe)5|mfO{@*S delta 48 zcmZ2}gKPN>u7)j)p)QOm)5BaCH%{ksV^o^1>B=ZPJ?SN*#`FX?M&b5ySH|t-u1p)! E0I6gUdjJ3c -- 2.43.2