aboutsummaryrefslogtreecommitdiff
path: root/app/serializers
diff options
context:
space:
mode:
Diffstat (limited to 'app/serializers')
-rw-r--r--app/serializers/initial_state_serializer.rb4
-rw-r--r--app/serializers/rest/web_push_subscription_serializer.rb13
-rw-r--r--app/serializers/web/notification_serializer.rb2
3 files changed, 17 insertions, 2 deletions
diff --git a/app/serializers/initial_state_serializer.rb b/app/serializers/initial_state_serializer.rb
index 3b908e224..6c9fba2f5 100644
--- a/app/serializers/initial_state_serializer.rb
+++ b/app/serializers/initial_state_serializer.rb
@@ -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 = {
diff --git a/app/serializers/rest/web_push_subscription_serializer.rb b/app/serializers/rest/web_push_subscription_serializer.rb
new file mode 100644
index 000000000..7fd952a56
--- /dev/null
+++ b/app/serializers/rest/web_push_subscription_serializer.rb
@@ -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
diff --git a/app/serializers/web/notification_serializer.rb b/app/serializers/web/notification_serializer.rb
index e5524fe7a..31c703832 100644
--- a/app/serializers/web/notification_serializer.rb
+++ b/app/serializers/web/notification_serializer.rb
@@ -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