Moved account deletion stuff to somewhere that hopefully makes more sense
[akkoma] / lib / pleroma / web / twitter_api / controllers / util_controller.ex
index c7b1a5b95e34dbf6044fe509f9e927ea601b5d77..3f3ddb9e4f12a2514ebd72e7a93eeaf67c34686c 100644 (file)
@@ -4,6 +4,7 @@ defmodule Pleroma.Web.TwitterAPI.UtilController do
   alias Pleroma.Web
   alias Pleroma.Web.OStatus
   alias Pleroma.Web.WebFinger
+  alias Pleroma.Web.CommonAPI
   alias Comeonin.Pbkdf2
   alias Pleroma.Formatter
   alias Pleroma.Web.ActivityPub.ActivityPub
@@ -92,7 +93,7 @@ defmodule Pleroma.Web.TwitterAPI.UtilController do
 
     with %User{} = user <- User.get_cached_by_nickname(username),
          true <- Pbkdf2.checkpw(password, user.password_hash),
-         %User{} = followed <- Repo.get(User, id),
+         %User{} = _followed <- Repo.get(User, id),
          {:ok, follower} <- User.follow(user, followee),
          {:ok, _activity} <- ActivityPub.follow(follower, followee) do
       conn
@@ -195,4 +196,17 @@ defmodule Pleroma.Web.TwitterAPI.UtilController do
 
     json(conn, "job started")
   end
+
+  def delete_account(%{assigns: %{user: user}} = conn, params) do
+    case CommonAPI.Utils.confirm_current_password(user, params) do
+      {:ok, user} ->
+        case User.delete(user) do
+          :ok -> json(conn, %{status: "success"})
+          :error -> json(conn, %{error: "Unable to delete user."})
+        end
+
+      {:error, msg} ->
+        json(conn, %{error: msg})
+    end
+  end
 end