pass common API error text through to Potlatch so it can be shown to the user
This commit is contained in:
parent
3cc3ff7ad6
commit
9b4271ed8c
3 changed files with 25 additions and 9 deletions
|
@ -220,7 +220,7 @@ class AmfController < ApplicationController
|
||||||
[0, ways, points, relations]
|
[0, ways, points, relations]
|
||||||
|
|
||||||
rescue Exception => err
|
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
|
end
|
||||||
|
|
||||||
# Find deleted ways in current bounding box (similar to whichways, but ways
|
# Find deleted ways in current bounding box (similar to whichways, but ways
|
||||||
|
@ -236,7 +236,7 @@ class AmfController < ApplicationController
|
||||||
begin
|
begin
|
||||||
check_boundaries(xmin, ymin, xmax, ymax)
|
check_boundaries(xmin, ymin, xmax, ymax)
|
||||||
rescue Exception => err
|
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
|
end
|
||||||
|
|
||||||
nodes_in_area = Node.find_by_area(ymin, xmin, ymax, xmax, :conditions => ["current_ways.visible = ?", false], :include => :ways_via_history)
|
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
|
# 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
|
# last version was in the same changeset, or belongs to the same user, then
|
||||||
# we can return something different
|
# 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
|
rescue OSM::APIAlreadyDeletedError => ex
|
||||||
return [-1, "The relation has already been deleted."]
|
return [-1, "The relation has already been deleted."]
|
||||||
rescue OSM::APIError => ex
|
rescue OSM::APIError => ex
|
||||||
# Some error that we don't specifically catch
|
# 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
|
end
|
||||||
|
|
||||||
# Save a way to the database, including all nodes. Any nodes in the previous
|
# 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
|
# 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
|
# last version was in the same changeset, or belongs to the same user, then
|
||||||
# we can return something different
|
# 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
|
rescue OSM::APITooManyWayNodesError => ex
|
||||||
return [-1, "You have tried to upload a really long way with #{ex.provided} points: only #{ex.max} are allowed."]
|
return [-1, "You have tried to upload a really long way with #{ex.provided} points: only #{ex.max} are allowed."]
|
||||||
rescue OSM::APIAlreadyDeletedError => ex
|
rescue OSM::APIAlreadyDeletedError => ex
|
||||||
return [-1, "The point has already been deleted."]
|
return [-1, "The point has already been deleted."]
|
||||||
rescue OSM::APIError => ex
|
rescue OSM::APIError => ex
|
||||||
# Some error that we don't specifically catch
|
# 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
|
end
|
||||||
|
|
||||||
# Save POI to the database.
|
# 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
|
# 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
|
# last version was in the same changeset, or belongs to the same user, then
|
||||||
# we can return something different
|
# 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
|
rescue OSM::APIAlreadyDeletedError => ex
|
||||||
return [-1, "The point has already been deleted"]
|
return [-1, "The point has already been deleted"]
|
||||||
rescue OSM::APIError => ex
|
rescue OSM::APIError => ex
|
||||||
# Some error that we don't specifically catch
|
# 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
|
end
|
||||||
|
|
||||||
# Read POI from database
|
# Read POI from database
|
||||||
|
@ -783,7 +783,7 @@ class AmfController < ApplicationController
|
||||||
return [-1, "The way has already been deleted."]
|
return [-1, "The way has already been deleted."]
|
||||||
rescue OSM::APIError => ex
|
rescue OSM::APIError => ex
|
||||||
# Some error that we don't specifically catch
|
# 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
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
16
lib/osm.rb
16
lib/osm.rb
|
@ -13,6 +13,10 @@ module OSM
|
||||||
def render_opts
|
def render_opts
|
||||||
{ :text => "Generic API Error", :status => :internal_server_error, :content_type => "text/plain" }
|
{ :text => "Generic API Error", :status => :internal_server_error, :content_type => "text/plain" }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def to_s
|
||||||
|
"Generic API Error"
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# Raised when an API object is not found.
|
# Raised when an API object is not found.
|
||||||
|
@ -31,6 +35,10 @@ module OSM
|
||||||
def render_opts
|
def render_opts
|
||||||
{ :text => "Precondition failed: #{@message}", :status => :precondition_failed, :content_type => "text/plain" }
|
{ :text => "Precondition failed: #{@message}", :status => :precondition_failed, :content_type => "text/plain" }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def to_s
|
||||||
|
"Precondition failed: #{@message}"
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# Raised when to delete an already-deleted object.
|
# Raised when to delete an already-deleted object.
|
||||||
|
@ -65,6 +73,10 @@ module OSM
|
||||||
def render_opts
|
def render_opts
|
||||||
{ :text => "You need to supply a changeset to be able to make a change", :status => :conflict, :content_type => "text/plain" }
|
{ :text => "You need to supply a changeset to be able to make a change", :status => :conflict, :content_type => "text/plain" }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def to_s
|
||||||
|
"You need to supply a changeset to be able to make a change"
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# Raised when a diff is uploaded containing many changeset IDs which don't match
|
# 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,
|
", server had: " + latest.to_s + " of " + type + " " + id.to_s,
|
||||||
:status => :conflict, :content_type => "text/plain" }
|
:status => :conflict, :content_type => "text/plain" }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def to_s
|
||||||
|
"Version mismatch: Provided " + provided.to_s + ", server had: " + latest.to_s + " of " + type + " " + id.to_s
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# raised when a two tags have a duplicate key string in an element.
|
# raised when a two tags have a duplicate key string in an element.
|
||||||
|
|
Binary file not shown.
Loading…
Add table
Add a link
Reference in a new issue