Mix format
[akkoma] / lib / pleroma / web / nodeinfo / nodeinfo_controller.ex
index 8c7a9e56510d1f8ba80f7456963d7f971fe27682..ea2d86f92ec4e51b9b6bcaf14d19ce24cd450e3c 100644 (file)
@@ -1,11 +1,11 @@
 # Pleroma: A lightweight social networking server
-# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
+# Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/>
 # SPDX-License-Identifier: AGPL-3.0-only
 
 defmodule Pleroma.Web.Nodeinfo.NodeinfoController do
   use Pleroma.Web, :controller
 
-  alias Pleroma.Web
+  alias Pleroma.Web.Endpoint
   alias Pleroma.Web.Nodeinfo.Nodeinfo
 
   def schemas(conn, _params) do
@@ -13,11 +13,11 @@ defmodule Pleroma.Web.Nodeinfo.NodeinfoController do
       links: [
         %{
           rel: "http://nodeinfo.diaspora.software/ns/schema/2.0",
-          href: Web.base_url() <> "/nodeinfo/2.0.json"
+          href: Endpoint.url() <> "/nodeinfo/2.0.json"
         },
         %{
           rel: "http://nodeinfo.diaspora.software/ns/schema/2.1",
-          href: Web.base_url() <> "/nodeinfo/2.1.json"
+          href: Endpoint.url() <> "/nodeinfo/2.1.json"
         }
       ]
     }
@@ -27,18 +27,16 @@ defmodule Pleroma.Web.Nodeinfo.NodeinfoController do
 
   # Schema definition: https://github.com/jhass/nodeinfo/blob/master/schemas/2.0/schema.json
   # and https://github.com/jhass/nodeinfo/blob/master/schemas/2.1/schema.json
-  def nodeinfo(conn, %{"version" => version}) do
-    case Nodeinfo.get_nodeinfo(version) do
-      {:error, :missing} ->
-        render_error(conn, :not_found, "Nodeinfo schema version not handled")
+  def nodeinfo(conn, %{"version" => version}) when version in ["2.0", "2.1"] do
+    conn
+    |> put_resp_header(
+      "content-type",
+      "application/json; profile=http://nodeinfo.diaspora.software/ns/schema/2.0#; charset=utf-8"
+    )
+    |> json(Nodeinfo.get_nodeinfo(version))
+  end
 
-      node_info ->
-        conn
-        |> put_resp_header(
-          "content-type",
-          "application/json; profile=http://nodeinfo.diaspora.software/ns/schema/2.0#; charset=utf-8"
-        )
-        |> json(node_info)
-    end
+  def nodeinfo(conn, _) do
+    render_error(conn, :not_found, "Nodeinfo schema version not handled")
   end
 end