From bc6f03b7c92eedcee99046c19dd839e03834c46f Mon Sep 17 00:00:00 2001 From: Sainan Date: Sun, 23 Mar 2025 05:06:06 -0700 Subject: [PATCH] feat: toggle wishlisted items (#1289) Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/1289 --- src/controllers/api/wishlistController.ts | 24 +++++++++++++++++++++++ src/routes/api.ts | 2 ++ 2 files changed, 26 insertions(+) create mode 100644 src/controllers/api/wishlistController.ts diff --git a/src/controllers/api/wishlistController.ts b/src/controllers/api/wishlistController.ts new file mode 100644 index 00000000..cfef2329 --- /dev/null +++ b/src/controllers/api/wishlistController.ts @@ -0,0 +1,24 @@ +import { getJSONfromString } from "@/src/helpers/stringHelpers"; +import { getInventory } from "@/src/services/inventoryService"; +import { getAccountIdForRequest } from "@/src/services/loginService"; +import { RequestHandler } from "express"; + +export const wishlistController: RequestHandler = async (req, res) => { + const accountId = await getAccountIdForRequest(req); + const inventory = await getInventory(accountId, "Wishlist"); + const body = getJSONfromString(String(req.body)); + for (const item of body.WishlistItems) { + const i = inventory.Wishlist.findIndex(x => x == item); + if (i == -1) { + inventory.Wishlist.push(item); + } else { + inventory.Wishlist.splice(i, 1); + } + } + await inventory.save(); + res.end(); +}; + +interface IWishlistRequest { + WishlistItems: string[]; +} diff --git a/src/routes/api.ts b/src/routes/api.ts index 0a1c238b..aab62bda 100644 --- a/src/routes/api.ts +++ b/src/routes/api.ts @@ -115,6 +115,7 @@ import { updateSongChallengeController } from "@/src/controllers/api/updateSongC import { updateThemeController } from "@/src/controllers/api/updateThemeController"; import { upgradesController } from "@/src/controllers/api/upgradesController"; import { valenceSwapController } from "@/src/controllers/api/valenceSwapController"; +import { wishlistController } from "@/src/controllers/api/wishlistController"; const apiRouter = express.Router(); @@ -245,5 +246,6 @@ apiRouter.post("/updateSongChallenge.php", updateSongChallengeController); apiRouter.post("/updateTheme.php", updateThemeController); apiRouter.post("/upgrades.php", upgradesController); apiRouter.post("/valenceSwap.php", valenceSwapController); +apiRouter.post("/wishlist.php", wishlistController); export { apiRouter };