Add REST API for Web Push Notifications subscriptions (#7445)
- POST /api/v1/push/subscription - PUT /api/v1/push/subscription - DELETE /api/v1/push/subscription - New OAuth scope: "push" (required for the above methods)
This commit is contained in:
parent
9a794067f7
commit
b4fb766b23
20 changed files with 258 additions and 81 deletions
|
@ -2,7 +2,9 @@
|
|||
|
||||
class InitialStateSerializer < ActiveModel::Serializer
|
||||
attributes :meta, :compose, :accounts,
|
||||
:media_attachments, :settings, :push_subscription
|
||||
:media_attachments, :settings
|
||||
|
||||
has_one :push_subscription, serializer: REST::WebPushSubscriptionSerializer
|
||||
|
||||
def meta
|
||||
store = {
|
||||
|
|
13
app/serializers/rest/web_push_subscription_serializer.rb
Normal file
13
app/serializers/rest/web_push_subscription_serializer.rb
Normal file
|
@ -0,0 +1,13 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class REST::WebPushSubscriptionSerializer < ActiveModel::Serializer
|
||||
attributes :id, :endpoint, :alerts, :server_key
|
||||
|
||||
def alerts
|
||||
object.data&.dig('alerts') || {}
|
||||
end
|
||||
|
||||
def server_key
|
||||
Rails.configuration.x.vapid_public_key
|
||||
end
|
||||
end
|
|
@ -54,7 +54,7 @@ class Web::NotificationSerializer < ActiveModel::Serializer
|
|||
|
||||
def access_token
|
||||
return if actions.empty?
|
||||
current_push_subscription.access_token
|
||||
current_push_subscription.associated_access_token
|
||||
end
|
||||
|
||||
def message
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue