Prefer polymorphism over is_a?
This commit is contained in:
parent
9c22974cd1
commit
5f758aff57
5 changed files with 14 additions and 6 deletions
|
@ -18,7 +18,7 @@ module NotesActions
|
|||
@notes = prepare_notes_for_rendering(@notes)
|
||||
|
||||
notes_json[:notes] =
|
||||
if noteable.is_a?(Issue)
|
||||
if noteable.discussions_rendered_on_frontend?
|
||||
note_serializer.represent(@notes)
|
||||
else
|
||||
@notes.map { |note| note_json(note) }
|
||||
|
@ -87,7 +87,7 @@ module NotesActions
|
|||
if note.persisted?
|
||||
attrs[:valid] = true
|
||||
|
||||
if noteable.is_a?(Issue)
|
||||
if noteable.discussions_rendered_on_frontend?
|
||||
attrs.merge!(note_serializer.represent(note))
|
||||
else
|
||||
attrs.merge!(
|
||||
|
|
|
@ -37,7 +37,7 @@ class AwardEmoji < ActiveRecord::Base
|
|||
end
|
||||
|
||||
def expire_etag_cache
|
||||
return unless awardable.is_a?(Note)
|
||||
return unless awardable.respond_to?(:expire_etag_cache)
|
||||
|
||||
awardable.expire_etag_cache
|
||||
end
|
||||
|
|
|
@ -24,6 +24,10 @@ module Noteable
|
|||
DiscussionNote::NOTEABLE_TYPES.include?(base_class_name)
|
||||
end
|
||||
|
||||
def discussions_rendered_on_frontend?
|
||||
false
|
||||
end
|
||||
|
||||
def discussion_notes
|
||||
notes
|
||||
end
|
||||
|
|
|
@ -269,6 +269,10 @@ class Issue < ActiveRecord::Base
|
|||
end
|
||||
end
|
||||
|
||||
def discussions_rendered_on_frontend?
|
||||
true
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
# Returns `true` if the given User can read the current Issue.
|
||||
|
|
|
@ -300,12 +300,12 @@ class Note < ActiveRecord::Base
|
|||
end
|
||||
|
||||
def expire_etag_cache
|
||||
return unless for_issue?
|
||||
return unless noteable.discussions_rendered_on_frontend?
|
||||
|
||||
key = Gitlab::Routing.url_helpers.project_noteable_notes_path(
|
||||
noteable.project,
|
||||
project,
|
||||
target_type: noteable_type.underscore,
|
||||
target_id: noteable.id
|
||||
target_id: noteable_id
|
||||
)
|
||||
Gitlab::EtagCaching::Store.new.touch(key)
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue