mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2025-12-03 01:38:06 -06:00
Implement push subscription API
This commit is contained in:
parent
1fe29c7c43
commit
8b9a228ea2
26 changed files with 2084 additions and 101 deletions
|
|
@ -2997,3 +2997,34 @@ func (c *Converter) InteractionReqToAPIInteractionReq(
|
|||
URI: req.URI,
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (c *Converter) WebPushSubscriptionToAPIWebPushSubscription(
|
||||
ctx context.Context,
|
||||
subscription *gtsmodel.WebPushSubscription,
|
||||
) (*apimodel.WebPushSubscription, error) {
|
||||
vapidKeyPair, err := c.state.DB.GetVAPIDKeyPair(ctx)
|
||||
if err != nil {
|
||||
return nil, gtserror.Newf("error getting VAPID key pair: %w", err)
|
||||
}
|
||||
|
||||
return &apimodel.WebPushSubscription{
|
||||
ID: subscription.ID,
|
||||
Endpoint: subscription.Endpoint,
|
||||
ServerKey: vapidKeyPair.Public,
|
||||
Alerts: apimodel.WebPushSubscriptionAlerts{
|
||||
Follow: *subscription.NotifyFollow,
|
||||
FollowRequest: *subscription.NotifyFollowRequest,
|
||||
Favourite: *subscription.NotifyFavourite,
|
||||
Mention: *subscription.NotifyMention,
|
||||
Reblog: *subscription.NotifyReblog,
|
||||
Poll: *subscription.NotifyPoll,
|
||||
Status: *subscription.NotifyStatus,
|
||||
Update: *subscription.NotifyUpdate,
|
||||
AdminSignup: *subscription.NotifyAdminSignup,
|
||||
AdminReport: *subscription.NotifyAdminReport,
|
||||
PendingFavourite: *subscription.NotifyPendingFavourite,
|
||||
PendingReply: *subscription.NotifyPendingReply,
|
||||
PendingReblog: *subscription.NotifyPendingReblog,
|
||||
},
|
||||
}, nil
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue