diff options
author | Patrick Bajao <ebajao@gitlab.com> | 2019-07-18 15:09:35 +0300 |
---|---|---|
committer | jboyson1 <jboyson@gitlab.com> | 2019-08-02 00:00:36 +0300 |
commit | 70626f324b53b0fc010cbbefcae7095201bf0f82 (patch) | |
tree | 76b15151235784160d3741722eee384b6d1f34e7 /app/models/concerns/diff_positionable_note.rb | |
parent | d7e13579834f34a345081d1c62c97e37b7776406 (diff) |
Make diff_refs_match_commit validation reusable
Move it to DiffPositionableNote concern which will be re-used
in EE in DraftNote model.
Diffstat (limited to 'app/models/concerns/diff_positionable_note.rb')
-rw-r--r-- | app/models/concerns/diff_positionable_note.rb | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/app/models/concerns/diff_positionable_note.rb b/app/models/concerns/diff_positionable_note.rb index 2d09eff0111..195d9e107c5 100644 --- a/app/models/concerns/diff_positionable_note.rb +++ b/app/models/concerns/diff_positionable_note.rb @@ -10,6 +10,8 @@ module DiffPositionableNote serialize :original_position, Gitlab::Diff::Position # rubocop:disable Cop/ActiveRecordSerialize serialize :position, Gitlab::Diff::Position # rubocop:disable Cop/ActiveRecordSerialize serialize :change_position, Gitlab::Diff::Position # rubocop:disable Cop/ActiveRecordSerialize + + validate :diff_refs_match_commit, if: :for_commit? end %i(original_position position change_position).each do |meth| @@ -71,4 +73,10 @@ module DiffPositionableNote self.position = result[:position] end end + + def diff_refs_match_commit + return if self.original_position.diff_refs == commit&.diff_refs + + errors.add(:commit_id, 'does not match the diff refs') + end end |