0
0
Fork 0

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:
Eugen Rochko 2018-05-11 11:49:12 +02:00 committed by GitHub
parent 9a794067f7
commit b4fb766b23
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
20 changed files with 258 additions and 81 deletions

View file

@ -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 = {

View 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

View file

@ -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