Class: GivenDailyLike
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- GivenDailyLike
- Defined in:
- app/models/given_daily_like.rb
Class Method Summary collapse
Class Method Details
.decrement_for(user_id) ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 |
# File 'app/models/given_daily_like.rb', line 27 def self.decrement_for(user_id) return unless user_id given_date = Date.today find_for(user_id, given_date).update_all("likes_given = likes_given - 1") find_for(user_id, given_date).where( "limit_reached = true AND likes_given < :limit", limit: SiteSetting.max_likes_per_day, ).update_all(limit_reached: false) end |
.find_for(user_id, date) ⇒ Object
6 7 8 |
# File 'app/models/given_daily_like.rb', line 6 def self.find_for(user_id, date) where(user_id: user_id, given_date: date) end |
.increment_for(user_id) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'app/models/given_daily_like.rb', line 10 def self.increment_for(user_id) return unless user_id given_date = Date.today # upsert would be nice here rows = find_for(user_id, given_date).update_all("likes_given = likes_given + 1") if rows == 0 create(user_id: user_id, given_date: given_date, likes_given: 1) else find_for(user_id, given_date).where( "limit_reached = false AND likes_given >= :limit", limit: SiteSetting.max_likes_per_day, ).update_all(limit_reached: true) end end |