From: Matt Amos Date: Sat, 8 Nov 2008 14:07:34 +0000 (+0000) Subject: Error message for version mismatch is now more informative. X-Git-Tag: live~7557^2~202 X-Git-Url: https://git.openstreetmap.org/rails.git/commitdiff_plain/22005a38a696828c3c6ade4c49d7499afc06bc81?ds=sidebyside Error message for version mismatch is now more informative. --- diff --git a/lib/consistency_validations.rb b/lib/consistency_validations.rb index 8fd6c257d..6e214f902 100644 --- a/lib/consistency_validations.rb +++ b/lib/consistency_validations.rb @@ -7,7 +7,7 @@ module ConsistencyValidations # This will throw an exception if there is an inconsistency def check_consistency(old, new, user) if new.version != old.version - raise OSM::APIVersionMismatchError.new(new.version, old.version) + raise OSM::APIVersionMismatchError.new(new.id, new.class.to_s, new.version, old.version) elsif new.changeset.nil? raise OSM::APIChangesetMissingError.new elsif new.changeset.user_id != user.id diff --git a/lib/osm.rb b/lib/osm.rb index 223e351f4..c132ff25c 100644 --- a/lib/osm.rb +++ b/lib/osm.rb @@ -95,15 +95,16 @@ module OSM # Raised when the provided version is not equal to the latest in the db. class APIVersionMismatchError < APIError - def initialize(provided, latest) - @provided, @latest = provided, latest + def initialize(id, type, provided, latest) + @id, @type, @provided, @latest = id, type, provided, latest end - attr_reader :provided, :latest + attr_reader :provided, :latest, :id, :type def render_opts { :text => "Version mismatch: Provided " + provided.to_s + - ", server had: " + latest.to_s, :status => :conflict } + ", server had: " + latest.to_s + " of " + type + " " + id.to_s, + :status => :conflict } end end