feat: toggle wishlisted items (#1289)
Some checks failed
Build Docker image / docker (push) Waiting to run
Build / build (20) (push) Has been cancelled
Build / build (22) (push) Has been cancelled
Build / build (18) (push) Has been cancelled

Reviewed-on: #1289
This commit is contained in:
Sainan 2025-03-23 05:06:06 -07:00
parent 5817b48db9
commit bc6f03b7c9
2 changed files with 26 additions and 0 deletions

View File

@ -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<IWishlistRequest>(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[];
}

View File

@ -115,6 +115,7 @@ import { updateSongChallengeController } from "@/src/controllers/api/updateSongC
import { updateThemeController } from "@/src/controllers/api/updateThemeController"; import { updateThemeController } from "@/src/controllers/api/updateThemeController";
import { upgradesController } from "@/src/controllers/api/upgradesController"; import { upgradesController } from "@/src/controllers/api/upgradesController";
import { valenceSwapController } from "@/src/controllers/api/valenceSwapController"; import { valenceSwapController } from "@/src/controllers/api/valenceSwapController";
import { wishlistController } from "@/src/controllers/api/wishlistController";
const apiRouter = express.Router(); const apiRouter = express.Router();
@ -245,5 +246,6 @@ apiRouter.post("/updateSongChallenge.php", updateSongChallengeController);
apiRouter.post("/updateTheme.php", updateThemeController); apiRouter.post("/updateTheme.php", updateThemeController);
apiRouter.post("/upgrades.php", upgradesController); apiRouter.post("/upgrades.php", upgradesController);
apiRouter.post("/valenceSwap.php", valenceSwapController); apiRouter.post("/valenceSwap.php", valenceSwapController);
apiRouter.post("/wishlist.php", wishlistController);
export { apiRouter }; export { apiRouter };