diff --git a/src/controllers/custom/deleteAccountController.ts b/src/controllers/custom/deleteAccountController.ts new file mode 100644 index 00000000..e2396379 --- /dev/null +++ b/src/controllers/custom/deleteAccountController.ts @@ -0,0 +1,19 @@ +import { RequestHandler } from "express"; +import { getAccountIdForRequest } from "@/src/services/loginService"; +import { Account } from "@/src/models/loginModel"; +import { Inventory } from "@/src/models/inventoryModels/inventoryModel"; +import { Loadout } from "@/src/models/inventoryModels/loadoutModel"; +import { PersonalRooms } from "@/src/models/personalRoomsModel"; +import { Ship } from "@/src/models/shipModel"; + +export const deleteAccountController: RequestHandler = async (req, res) => { + const accountId = await getAccountIdForRequest(req); + await Promise.all([ + Account.deleteOne({ _id: accountId }), + Inventory.deleteOne({ accountOwnerId: accountId }), + Loadout.deleteOne({ loadoutOwnerId: accountId }), + PersonalRooms.deleteOne({ personalRoomsOwnerId: accountId }), + Ship.deleteOne({ ShipOwnerId: accountId }) + ]); + res.end(); +}; diff --git a/src/routes/custom.ts b/src/routes/custom.ts index 24ea70be..c7e74e9d 100644 --- a/src/routes/custom.ts +++ b/src/routes/custom.ts @@ -4,6 +4,7 @@ import { tunablesController } from "@/src/controllers/custom/tunablesController" import { getItemListsController } from "@/src/controllers/custom/getItemListsController"; import { pushArchonCrystalUpgradeController } from "@/src/controllers/custom/pushArchonCrystalUpgradeController"; import { popArchonCrystalUpgradeController } from "@/src/controllers/custom/popArchonCrystalUpgradeController"; +import { deleteAccountController } from "@/src/controllers/custom/deleteAccountController"; import { createAccountController } from "@/src/controllers/custom/createAccountController"; import { addItemController } from "@/src/controllers/custom/addItemController"; @@ -17,6 +18,7 @@ customRouter.get("/tunables.json", tunablesController); customRouter.get("/getItemLists", getItemListsController); customRouter.get("/pushArchonCrystalUpgrade", pushArchonCrystalUpgradeController); customRouter.get("/popArchonCrystalUpgrade", popArchonCrystalUpgradeController); +customRouter.get("/deleteAccount", deleteAccountController); customRouter.post("/createAccount", createAccountController); customRouter.post("/addItem", addItemController); diff --git a/static/webui/index.html b/static/webui/index.html index 75a7ce0a..7da6f8c8 100644 --- a/static/webui/index.html +++ b/static/webui/index.html @@ -38,6 +38,8 @@
@@ -47,13 +49,7 @@