diff options
author | Sean McGivern <sean@gitlab.com> | 2018-11-01 14:07:09 +0300 |
---|---|---|
committer | Sean McGivern <sean@gitlab.com> | 2018-11-01 14:07:09 +0300 |
commit | c49f57fe430edeac9a5f2423dac7afb80ff72576 (patch) | |
tree | 23c8e45711083748f18d81a9f40f3b464e4b62cb /app/models | |
parent | f7c0a18b8a061bfea650897b22dce24d712c6439 (diff) | |
parent | 8df7e6021b0da30e3b7550ca83cd9ab3f991c235 (diff) |
Merge branch 'engwan/gitlab-ce-44012-filter-reactions-none-any'
Diffstat (limited to 'app/models')
-rw-r--r-- | app/models/concerns/awardable.rb | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/app/models/concerns/awardable.rb b/app/models/concerns/awardable.rb index 6f29c92d176..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,6 +28,20 @@ module Awardable where(sql, user_id: user.id, name: name, awardable_type: self.name) end + def not_awarded(user) + sql = <<~EOL + NOT 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 order_upvotes_desc order_votes_desc(AwardEmoji::UPVOTE_NAME) end |