SpaceNinjaServer/src/controllers/api/upgradesController.ts
2024-09-07 23:32:59 +03:00

35 lines
1.3 KiB
TypeScript

import { RequestHandler } from "express";
import { IUpgradesRequest } from "@/src/types/requestTypes";
import { getAccountIdForRequest } from "@/src/services/loginService";
import { getInventory } from "@/src/services/inventoryService";
// eslint-disable-next-line @typescript-eslint/no-misused-promises
export const upgradesController: RequestHandler = async (req, res) => {
const accountId = await getAccountIdForRequest(req);
const payload = JSON.parse(String(req.body)) as IUpgradesRequest;
const inventory = await getInventory(accountId);
console.log(req.body);
for (const item of payload.UpgradesToAttach) {
for (const upgrade of inventory.Upgrades) {
if (upgrade._id?.toString() == item.ItemId.$id) {
upgrade.UpgradeFingerprint = item.UpgradeFingerprint;
upgrade.Slot = item.Slot;
upgrade.ParentId = payload.Weapon.ItemId;
}
}
}
for (const item of payload.UpgradesToDetach) {
for (const upgrade of inventory.Upgrades) {
if (upgrade._id?.toString() == item.ItemId.$id) {
upgrade.UpgradeFingerprint = undefined;
upgrade.Slot = undefined;
upgrade.ParentId = undefined;
}
}
}
await inventory.save();
res.json({});
};