@ -3,7 +3,6 @@
module UserTrackingConcern
module UserTrackingConcern
extend ActiveSupport :: Concern
extend ActiveSupport :: Concern
REGENERATE_FEED_DAYS = 14
UPDATE_SIGN_IN_HOURS = 24
UPDATE_SIGN_IN_HOURS = 24
included do
included do
@ -14,25 +13,10 @@ module UserTrackingConcern
def set_user_activity
def set_user_activity
return unless user_needs_sign_in_update?
return unless user_needs_sign_in_update?
# Mark as signed-in today
current_user . update_tracked_fields! ( request )
current_user . update_tracked_fields! ( request )
ActivityTracker . record ( 'activity:logins' , current_user . id )
# Regenerate feed if needed
regenerate_feed! if user_needs_feed_update?
end
end
def user_needs_sign_in_update?
def user_needs_sign_in_update?
user_signed_in? && ( current_user . current_sign_in_at . nil? || current_user . current_sign_in_at < UPDATE_SIGN_IN_HOURS . hours . ago )
user_signed_in? && ( current_user . current_sign_in_at . nil? || current_user . current_sign_in_at < UPDATE_SIGN_IN_HOURS . hours . ago )
end
end
def user_needs_feed_update?
current_user . last_sign_in_at < REGENERATE_FEED_DAYS . days . ago
end
def regenerate_feed!
Redis . current . setnx ( " account: #{ current_user . account_id } :regeneration " , true ) && Redis . current . expire ( " account: #{ current_user . account_id } :regeneration " , 1 . day . seconds )
RegenerationWorker . perform_async ( current_user . account_id )
end
end
end