|
|
|
@ -12,6 +12,9 @@
|
|
|
|
|
# updated_at :datetime not null
|
|
|
|
|
#
|
|
|
|
|
|
|
|
|
|
require 'webpush'
|
|
|
|
|
require_relative '../../models/setting'
|
|
|
|
|
|
|
|
|
|
class Web::PushSubscription < ApplicationRecord
|
|
|
|
|
include RoutingHelper
|
|
|
|
|
include StreamEntriesHelper
|
|
|
|
@ -37,7 +40,6 @@ class Web::PushSubscription < ApplicationRecord
|
|
|
|
|
nsfw = notification.target_status.nil? || notification.target_status.spoiler_text.empty? ? nil : notification.target_status.spoiler_text
|
|
|
|
|
|
|
|
|
|
# TODO: Make sure that the payload does not exceed 4KB - Webpush::PayloadTooLarge
|
|
|
|
|
# TODO: Queue the requests - Webpush::TooManyRequests
|
|
|
|
|
Webpush.payload_send(
|
|
|
|
|
message: JSON.generate(
|
|
|
|
|
title: title,
|
|
|
|
@ -59,7 +61,7 @@ class Web::PushSubscription < ApplicationRecord
|
|
|
|
|
p256dh: key_p256dh,
|
|
|
|
|
auth: key_auth,
|
|
|
|
|
vapid: {
|
|
|
|
|
# subject: "mailto:#{Setting.site_contact_email}",
|
|
|
|
|
subject: "mailto:#{Setting.site_contact_email}",
|
|
|
|
|
private_key: Rails.configuration.x.vapid_private_key,
|
|
|
|
|
public_key: Rails.configuration.x.vapid_public_key,
|
|
|
|
|
},
|
|
|
|
@ -166,7 +168,7 @@ class Web::PushSubscription < ApplicationRecord
|
|
|
|
|
p256dh: key_p256dh,
|
|
|
|
|
auth: key_auth,
|
|
|
|
|
vapid: {
|
|
|
|
|
# subject: "mailto:#{Setting.site_contact_email}",
|
|
|
|
|
subject: "mailto:#{Setting.site_contact_email}",
|
|
|
|
|
private_key: Rails.configuration.x.vapid_private_key,
|
|
|
|
|
public_key: Rails.configuration.x.vapid_public_key,
|
|
|
|
|
},
|
|
|
|
|