X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/86b4d1bc2c05a68053c7485217144a7fcf8ef4e8..36203ebe261d38bab5a17ac866c6ed384d70e978:/app/controllers/way_controller.rb diff --git a/app/controllers/way_controller.rb b/app/controllers/way_controller.rb index b22d35d0b..cf1634fa5 100644 --- a/app/controllers/way_controller.rb +++ b/app/controllers/way_controller.rb @@ -40,6 +40,8 @@ class WayController < ApplicationController else render :text => "", :status => :gone end + rescue OSM::APIError => ex + render ex.render_opts rescue ActiveRecord::RecordNotFound render :nothing => true, :status => :not_found end @@ -56,11 +58,8 @@ class WayController < ApplicationController else render :nothing => true, :status => :bad_request end - rescue OSM::APIPreconditionFailedError - render :text => "", :status => :precondition_failed - rescue OSM::APIVersionMismatchError => ex - render :text => "Version mismatch: Provided " + ex.provided.to_s + - ", server had: " + ex.latest.to_s, :status => :bad_request + rescue OSM::APIError => ex + render ex.render_opts rescue ActiveRecord::RecordNotFound render :nothing => true, :status => :not_found end @@ -70,14 +69,12 @@ class WayController < ApplicationController def delete begin way = Way.find(params[:id]) - way.delete_with_relations_and_history(@user) + way.delete_with_history(@user) # if we get here, all is fine, otherwise something will catch below. render :nothing => true - rescue OSM::APIAlreadyDeletedError - render :text => "", :status => :gone - rescue OSM::APIPreconditionFailedError - render :text => "", :status => :precondition_failed + rescue OSM::APIError => ex + render ex.render_opts rescue ActiveRecord::RecordNotFound render :nothing => true, :status => :not_found end