diff options
Diffstat (limited to 'app')
-rw-r--r-- | app/models/suggestion.rb | 34 | ||||
-rw-r--r-- | app/serializers/note_entity.rb | 5 | ||||
-rw-r--r-- | app/serializers/suggestion_entity.rb | 10 | ||||
-rw-r--r-- | app/services/notes/update_service.rb | 7 |
4 files changed, 48 insertions, 8 deletions
diff --git a/app/models/suggestion.rb b/app/models/suggestion.rb index 31ba02b2029..03389462572 100644 --- a/app/models/suggestion.rb +++ b/app/models/suggestion.rb @@ -1,3 +1,37 @@ class Suggestion < ApplicationRecord belongs_to :note + + def from_line + position_new_line + end + + def to_line + position_new_line + end + + def appliable? + note.active? + end + + private + + # TODO: finish it and use in `appliable?` + # def outdated? + # changing.split("\n") == current_changing_lines + # end + + # def current_changing_lines + # from_index = from_line - 1 + # to_index = to_line - 1 + + # new_blob_lines[from_index..to_index] + # end + +# def new_blob_lines +# @new_blob_lines ||= note.diff_file.new_blob.lines +# end + + def position_new_line + note.position.new_line + end end diff --git a/app/serializers/note_entity.rb b/app/serializers/note_entity.rb index d17c684e687..1d3b59eb1b7 100644 --- a/app/serializers/note_entity.rb +++ b/app/serializers/note_entity.rb @@ -36,10 +36,7 @@ class NoteEntity < API::Entities::Note end end - expose :suggestions do |note| - [] - end - + expose :suggestions, using: SuggestionEntity expose :resolved?, as: :resolved expose :resolvable?, as: :resolvable diff --git a/app/serializers/suggestion_entity.rb b/app/serializers/suggestion_entity.rb new file mode 100644 index 00000000000..4de9c85ced3 --- /dev/null +++ b/app/serializers/suggestion_entity.rb @@ -0,0 +1,10 @@ +# frozen_string_literal: true + +class SuggestionEntity < Grape::Entity + expose :from_line + expose :to_line + expose :appliable?, as: :appliable + expose :changing + expose :suggestion + expose :position +end diff --git a/app/services/notes/update_service.rb b/app/services/notes/update_service.rb index 90e87682a8c..d2e2e3ffcf9 100644 --- a/app/services/notes/update_service.rb +++ b/app/services/notes/update_service.rb @@ -15,10 +15,9 @@ module Notes end if note.is_a?(DiffNote) - Suggestion.transaction do - note.suggestions.delete_all - Suggestions::CreateService.new(note).execute - end + # TODO: understand why delete_all does not work here. + note.suggestions.destroy_all + Suggestions::CreateService.new(note).execute end note |