From cc84a407f4cf8096b08bcd26b7ab4f61e9a47694 Mon Sep 17 00:00:00 2001
From: Eugen Rochko <eugen@zeonfederated.com>
Date: Sat, 16 Feb 2019 05:27:05 +0100
Subject: [PATCH] Add vapid_key to the application entity in the REST API
 (#10058)

Fix #8785
---
 app/controllers/api/v1/apps/credentials_controller.rb | 2 +-
 app/serializers/rest/application_serializer.rb        | 6 +++++-
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/app/controllers/api/v1/apps/credentials_controller.rb b/app/controllers/api/v1/apps/credentials_controller.rb
index e469c7d210..8b63d0490d 100644
--- a/app/controllers/api/v1/apps/credentials_controller.rb
+++ b/app/controllers/api/v1/apps/credentials_controller.rb
@@ -6,6 +6,6 @@ class Api::V1::Apps::CredentialsController < Api::BaseController
   respond_to :json
 
   def show
-    render json: doorkeeper_token.application, serializer: REST::StatusSerializer::ApplicationSerializer
+    render json: doorkeeper_token.application, serializer: REST::ApplicationSerializer, fields: %i(name website vapid_key)
   end
 end
diff --git a/app/serializers/rest/application_serializer.rb b/app/serializers/rest/application_serializer.rb
index a9316cd4b7..ab68219ade 100644
--- a/app/serializers/rest/application_serializer.rb
+++ b/app/serializers/rest/application_serializer.rb
@@ -2,7 +2,7 @@
 
 class REST::ApplicationSerializer < ActiveModel::Serializer
   attributes :id, :name, :website, :redirect_uri,
-             :client_id, :client_secret
+             :client_id, :client_secret, :vapid_key
 
   def id
     object.id.to_s
@@ -19,4 +19,8 @@ class REST::ApplicationSerializer < ActiveModel::Serializer
   def website
     object.website.presence
   end
+
+  def vapid_key
+    Rails.configuration.x.vapid_public_key
+  end
 end