summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/models/suggestion.rb34
-rw-r--r--app/serializers/note_entity.rb5
-rw-r--r--app/serializers/suggestion_entity.rb10
-rw-r--r--app/services/notes/update_service.rb7
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