Merge branch 'develop' into refactor/notification_settings
[akkoma] / lib / pleroma / web / oauth / oauth_view.ex
index 94ddaf91308e74e6271f8faf97d3cbb724ec9073..f55247ebd75df014224e401924cf05cf886e7193 100644 (file)
@@ -5,4 +5,26 @@
 defmodule Pleroma.Web.OAuth.OAuthView do
   use Pleroma.Web, :view
   import Phoenix.HTML.Form
+
+  alias Pleroma.Web.OAuth.Token.Utils
+
+  def render("token.json", %{token: token} = opts) do
+    response = %{
+      token_type: "Bearer",
+      access_token: token.token,
+      refresh_token: token.refresh_token,
+      expires_in: expires_in(),
+      scope: Enum.join(token.scopes, " "),
+      created_at: Utils.format_created_at(token)
+    }
+
+    if user = opts[:user] do
+      response
+      |> Map.put(:me, user.ap_id)
+    else
+      response
+    end
+  end
+
+  defp expires_in, do: Pleroma.Config.get([:oauth2, :token_expires_in], 600)
 end