mirror of
https://github.com/discourse/discourse.git
synced 2025-02-07 11:58:27 +00:00
7ba115769a
* DEV: Skip push notifications for active online users Currently, users with active push subscriptions get push notifications regardless of their "presence" on the site. This change introduces a `push_notification_time_window_mins` site setting which is used in conjunction with a user's `last_seen_at` to determine if push notifications should be sent. A user is considered to be actively online if their `last_seen_at` is within `push_notification_time_window_mins` minutes. `push_notification_time_window_mins` is set to 10 by default. * DEV: Remove client param for push_notification_time_window_mins site setting Co-authored-by: Bianca Nenciu <nbianca@users.noreply.github.com> Co-authored-by: Bianca Nenciu <nbianca@users.noreply.github.com>
13 lines
332 B
Ruby
13 lines
332 B
Ruby
# frozen_string_literal: true
|
|
|
|
module Jobs
|
|
class SendPushNotification < ::Jobs::Base
|
|
def execute(args)
|
|
user = User.find_by(id: args[:user_id])
|
|
return if !user || user.seen_since?(SiteSetting.push_notification_time_window_mins.minutes.ago)
|
|
|
|
PushNotificationPusher.push(user, args[:payload])
|
|
end
|
|
end
|
|
end
|