2024-05-06 15:08:56 +02:00
|
|
|
import { RequestHandler } from "express";
|
|
|
|
import { IUpgradesRequest } from "@/src/types/requestTypes";
|
2024-05-28 13:45:06 +02:00
|
|
|
import { getAccountIdForRequest } from "@/src/services/loginService";
|
2024-09-07 23:32:59 +03:00
|
|
|
import { getInventory } from "@/src/services/inventoryService";
|
2024-05-06 15:08:56 +02:00
|
|
|
|
2024-06-20 11:47:21 +02:00
|
|
|
// eslint-disable-next-line @typescript-eslint/no-misused-promises
|
2024-05-06 15:08:56 +02:00
|
|
|
export const upgradesController: RequestHandler = async (req, res) => {
|
2024-05-28 13:45:06 +02:00
|
|
|
const accountId = await getAccountIdForRequest(req);
|
2024-06-24 12:37:28 +02:00
|
|
|
const payload = JSON.parse(String(req.body)) as IUpgradesRequest;
|
2024-05-06 15:08:56 +02:00
|
|
|
const inventory = await getInventory(accountId);
|
2024-09-07 23:32:59 +03:00
|
|
|
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;
|
|
|
|
}
|
2024-05-09 15:09:08 +02:00
|
|
|
}
|
2024-09-07 23:32:59 +03:00
|
|
|
}
|
2024-05-09 15:09:08 +02:00
|
|
|
|
2024-09-07 23:32:59 +03:00
|
|
|
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;
|
|
|
|
}
|
2024-05-06 15:08:56 +02:00
|
|
|
}
|
|
|
|
}
|
2024-06-07 16:06:35 +02:00
|
|
|
|
2024-09-07 23:32:59 +03:00
|
|
|
await inventory.save();
|
|
|
|
res.json({});
|
2024-06-07 16:06:35 +02:00
|
|
|
};
|