Error message for version mismatch is now more informative.

This commit is contained in:
Matt Amos 2008-11-08 14:07:34 +00:00
parent 204fa87064
commit 22005a38a6
2 changed files with 6 additions and 5 deletions

View file

@ -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

View file

@ -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