Add configuration option for registrations.
[akkoma] / lib / pleroma / web / twitter_api / controllers / util_controller.ex
index 6d6fd22028610bee228658e0ef061b890eab9fd1..32910d92c84841a4bc4cb64e288c6f2cde97ac2c 100644 (file)
@@ -6,13 +6,44 @@ defmodule Pleroma.Web.TwitterAPI.UtilController do
     json(conn, "ok")
   end
 
+  @instance Application.get_env(:pleroma, :instance)
   def config(conn, _params) do
-    json(conn, %{
-          site: %{
-            name: Web.base_url,
-            server: Web.base_url,
-            textlimit: -1
-          }
-    })
+    case get_format(conn) do
+      "xml" ->
+        response = """
+        <config>
+          <site>
+            <name>#{Keyword.get(@instance, :name)}</name>
+            <site>#{Web.base_url}</site>
+            <textlimit>#{Keyword.get(@instance, :limit)}</textlimit>
+            <closed>#{!Keyword.get(@instance, :registrations_open)}</closed>
+          </site>
+        </config>
+        """
+        conn
+        |> put_resp_content_type("application/xml")
+        |> send_resp(200, response)
+      _ ->
+        json(conn, %{
+              site: %{
+                name: Keyword.get(@instance, :name),
+                server: Web.base_url,
+                textlimit: Keyword.get(@instance, :limit),
+                closed: if(Keyword.get(@instance, :registrations_open), do: "0", else: "1")
+              }
+             })
+    end
+  end
+
+  def version(conn, _params) do
+    version = Keyword.get(@instance, :version)
+    case get_format(conn) do
+      "xml" ->
+        response = "<version>#{version}</version>"
+        conn
+        |> put_resp_content_type("application/xml")
+        |> send_resp(200, response)
+      _ -> json(conn, version)
+    end
   end
 end