mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2025-11-18 11:47:31 -06:00
[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?)
This commit is contained in:
parent
8b74cad422
commit
27844b7da2
16 changed files with 340 additions and 35 deletions
|
|
@ -231,3 +231,17 @@ func APIInteractionPolicyToInteractionPolicy(
|
|||
},
|
||||
}, nil
|
||||
}
|
||||
|
||||
func APIWebPushNotificationPolicyToWebPushNotificationPolicy(policy apimodel.WebPushNotificationPolicy) gtsmodel.WebPushNotificationPolicy {
|
||||
switch policy {
|
||||
case apimodel.WebPushNotificationPolicyAll:
|
||||
return gtsmodel.WebPushNotificationPolicyAll
|
||||
case apimodel.WebPushNotificationPolicyFollowed:
|
||||
return gtsmodel.WebPushNotificationPolicyFollowed
|
||||
case apimodel.WebPushNotificationPolicyFollower:
|
||||
return gtsmodel.WebPushNotificationPolicyFollower
|
||||
case apimodel.WebPushNotificationPolicyNone:
|
||||
return gtsmodel.WebPushNotificationPolicyNone
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1235,9 +1235,9 @@ func (suite *InternalToASTestSuite) TestInteractionReqToASAcceptAnnounce() {
|
|||
req := >smodel.InteractionRequest{
|
||||
ID: "01J1AKMZ8JE5NW0ZSFTRC1JJNE",
|
||||
CreatedAt: testrig.TimeMustParse("2022-06-09T13:12:00Z"),
|
||||
StatusID: "01JJYCVKCXB9JTQD1XW2KB8MT3",
|
||||
StatusID: "01JJYCVKCXB9JTQD1XW2KB8MT3",
|
||||
Status: >smodel.Status{URI: "http://localhost:8080/users/the_mighty_zork/statuses/01JJYCVKCXB9JTQD1XW2KB8MT3"},
|
||||
TargetAccountID: acceptingAccount.ID,
|
||||
TargetAccountID: acceptingAccount.ID,
|
||||
TargetAccount: acceptingAccount,
|
||||
InteractingAccountID: interactingAccount.ID,
|
||||
InteractingAccount: interactingAccount,
|
||||
|
|
|
|||
|
|
@ -3019,6 +3019,20 @@ func (c *Converter) InteractionReqToAPIInteractionReq(
|
|||
}, nil
|
||||
}
|
||||
|
||||
func webPushNotificationPolicyToAPIWebPushNotificationPolicy(policy gtsmodel.WebPushNotificationPolicy) apimodel.WebPushNotificationPolicy {
|
||||
switch policy {
|
||||
case gtsmodel.WebPushNotificationPolicyAll:
|
||||
return apimodel.WebPushNotificationPolicyAll
|
||||
case gtsmodel.WebPushNotificationPolicyFollowed:
|
||||
return apimodel.WebPushNotificationPolicyFollowed
|
||||
case gtsmodel.WebPushNotificationPolicyFollower:
|
||||
return apimodel.WebPushNotificationPolicyFollower
|
||||
case gtsmodel.WebPushNotificationPolicyNone:
|
||||
return apimodel.WebPushNotificationPolicyNone
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (c *Converter) WebPushSubscriptionToAPIWebPushSubscription(
|
||||
ctx context.Context,
|
||||
subscription *gtsmodel.WebPushSubscription,
|
||||
|
|
@ -3047,7 +3061,7 @@ func (c *Converter) WebPushSubscriptionToAPIWebPushSubscription(
|
|||
PendingReply: subscription.NotificationFlags.Get(gtsmodel.NotificationPendingReply),
|
||||
PendingReblog: subscription.NotificationFlags.Get(gtsmodel.NotificationPendingReblog),
|
||||
},
|
||||
Policy: apimodel.WebPushNotificationPolicyAll,
|
||||
Policy: webPushNotificationPolicyToAPIWebPushNotificationPolicy(subscription.Policy),
|
||||
Standard: true,
|
||||
}, nil
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue