From 27844b7da2567491661f9ddd2d4662f9f1b3ce40 Mon Sep 17 00:00:00 2001 From: Vyr Cossont Date: Mon, 3 Feb 2025 02:25:53 -0800 Subject: [feature] Implement Web Push notification policy (#3721) * Web Push: add policy column to subscriptions * Web Push: add policy to API * Web Push: test notification policy * go-fmt unrelated file (how did this get thru?) --- internal/api/model/webpushsubscription.go | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'internal/api/model') diff --git a/internal/api/model/webpushsubscription.go b/internal/api/model/webpushsubscription.go index a28bb7294..38d6cf7ed 100644 --- a/internal/api/model/webpushsubscription.go +++ b/internal/api/model/webpushsubscription.go @@ -138,6 +138,8 @@ type WebPushSubscriptionUpdateRequest struct { DataAlertsPendingFavourite *bool `form:"data[alerts][pending.favourite]" json:"-"` DataAlertsPendingReply *bool `form:"data[alerts][pending.reply]" json:"-"` DataAlertsPendingReblog *bool `form:"data[alerts][pending.reblog]" json:"-"` + + DataPolicy *WebPushNotificationPolicy `form:"data[policy]" json:"-"` } // WebPushSubscriptionRequestData is the part of a Web Push subscription that can be changed after creation. @@ -146,6 +148,9 @@ type WebPushSubscriptionUpdateRequest struct { type WebPushSubscriptionRequestData struct { // Alerts selects the specific events that this Web Push subscription will receive. Alerts *WebPushSubscriptionAlerts `form:"-" json:"alerts"` + + // Policy selects which accounts will trigger Web Push notifications. + Policy *WebPushNotificationPolicy `form:"-" json:"policy"` } // WebPushNotificationPolicy names sets of accounts that can generate notifications. @@ -154,4 +159,10 @@ type WebPushNotificationPolicy string const ( // WebPushNotificationPolicyAll allows all accounts to send notifications to the subscribing user. WebPushNotificationPolicyAll WebPushNotificationPolicy = "all" + // WebPushNotificationPolicyFollowed allows accounts followed by the subscribing user to send notifications. + WebPushNotificationPolicyFollowed WebPushNotificationPolicy = "followed" + // WebPushNotificationPolicyFollower allows accounts following the subscribing user to send notifications. + WebPushNotificationPolicyFollower WebPushNotificationPolicy = "follower" + // WebPushNotificationPolicyNone doesn't allow any acounts to send notifications to the subscribing user. + WebPushNotificationPolicyNone WebPushNotificationPolicy = "none" ) -- cgit v1.2.3