diff options
Diffstat (limited to 'app')
-rw-r--r-- | app/finders/issuable_finder.rb | 15 | ||||
-rw-r--r-- | app/models/concerns/awardable.rb | 18 |
2 files changed, 10 insertions, 23 deletions
diff --git a/app/finders/issuable_finder.rb b/app/finders/issuable_finder.rb index 27a850b2603..baa3e0853eb 100644 --- a/app/finders/issuable_finder.rb +++ b/app/finders/issuable_finder.rb @@ -480,13 +480,14 @@ class IssuableFinder def by_my_reaction_emoji(items) if params[:my_reaction_emoji].present? && current_user - if filter_by_no_reaction? - items = items.not_awarded(current_user) - elsif filter_by_any_reaction? - items = items.awarded_any(current_user) - else - items = items.awarded(current_user, params[:my_reaction_emoji]) - end + items = + if filter_by_no_reaction? + items.not_awarded(current_user) + elsif filter_by_any_reaction? + items.awarded(current_user) + else + items.awarded(current_user, params[:my_reaction_emoji]) + end end items diff --git a/app/models/concerns/awardable.rb b/app/models/concerns/awardable.rb index 25b14eb110c..60b7ec2815c 100644 --- a/app/models/concerns/awardable.rb +++ b/app/models/concerns/awardable.rb @@ -13,13 +13,13 @@ module Awardable end class_methods do - def awarded(user, name) + def awarded(user, name = nil) sql = <<~EOL EXISTS ( SELECT TRUE FROM award_emoji WHERE user_id = :user_id AND - name = :name AND + #{"name = :name AND" if name.present?} awardable_type = :awardable_type AND awardable_id = #{self.arel_table.name}.id ) @@ -28,20 +28,6 @@ module Awardable where(sql, user_id: user.id, name: name, awardable_type: self.name) end - def awarded_any(user) - sql = <<~EOL - EXISTS ( - SELECT TRUE - FROM award_emoji - WHERE user_id = :user_id AND - awardable_type = :awardable_type AND - awardable_id = #{self.arel_table.name}.id - ) - EOL - - where(sql, user_id: user.id, awardable_type: self.name) - end - def not_awarded(user) sql = <<~EOL NOT EXISTS ( |