diff options
Diffstat (limited to 'app/controllers/concerns/issuable_actions.rb')
-rw-r--r-- | app/controllers/concerns/issuable_actions.rb | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/app/controllers/concerns/issuable_actions.rb b/app/controllers/concerns/issuable_actions.rb index a5e49b1b16a..f1d80e37674 100644 --- a/app/controllers/concerns/issuable_actions.rb +++ b/app/controllers/concerns/issuable_actions.rb @@ -171,7 +171,7 @@ module IssuableActions discussions = Discussion.build_collection(notes, issuable) if issuable.is_a?(MergeRequest) - render_cached(discussions, with: discussion_serializer, cache_context: -> (_) { discussion_cache_context }, context: self) + render_mr_discussions(discussions, discussion_serializer, discussion_cache_context) elsif issuable.is_a?(Issue) render json: discussion_serializer.represent(discussions, context: self) if stale?(etag: [discussion_cache_context, discussions]) else @@ -182,6 +182,20 @@ module IssuableActions private + def render_mr_discussions(discussions, serializer, cache_context) + return unless stale?(etag: [cache_context, discussions]) + + if Feature.enabled?(:disabled_mr_discussions_redis_cache, project) + render json: serializer.represent(discussions, context: self) + else + render_cached_discussions(discussions, serializer, cache_context) + end + end + + def render_cached_discussions(discussions, serializer, cache_context) + render_cached(discussions, with: serializer, cache_context: -> (_) { cache_context }, context: self) + end + def paginated_discussions return if params[:per_page].blank? return if issuable.instance_of?(MergeRequest) && Feature.disabled?(:paginated_mr_discussions, project) |