2024-05-30 13:32:28 +02:00
|
|
|
import { getAccountIdForRequest } from "@/src/services/loginService";
|
2023-06-14 02:26:19 +02:00
|
|
|
import { ItemType, toAddItemRequest } from "@/src/helpers/customHelpers/addItemHelpers";
|
2024-01-25 14:49:45 +01:00
|
|
|
import { getWeaponType } from "@/src/services/itemDataService";
|
2025-01-04 00:25:09 +01:00
|
|
|
import { addPowerSuit, addEquipment, getInventory } from "@/src/services/inventoryService";
|
2023-06-14 02:26:19 +02:00
|
|
|
import { RequestHandler } from "express";
|
|
|
|
|
|
|
|
const addItemController: RequestHandler = async (req, res) => {
|
2024-05-30 13:32:28 +02:00
|
|
|
const accountId = await getAccountIdForRequest(req);
|
2023-06-14 02:26:19 +02:00
|
|
|
const request = toAddItemRequest(req.body);
|
|
|
|
|
|
|
|
switch (request.type) {
|
2024-12-29 05:37:48 +01:00
|
|
|
case ItemType.Powersuit: {
|
2025-01-04 00:25:09 +01:00
|
|
|
const inventory = await getInventory(accountId);
|
|
|
|
const inventoryChanges = addPowerSuit(inventory, request.InternalName);
|
|
|
|
await inventory.save();
|
|
|
|
res.json(inventoryChanges);
|
2023-06-14 02:26:19 +02:00
|
|
|
return;
|
2024-12-29 05:37:48 +01:00
|
|
|
}
|
|
|
|
case ItemType.Weapon: {
|
2025-01-04 00:25:09 +01:00
|
|
|
const inventory = await getInventory(accountId);
|
2023-06-14 02:26:19 +02:00
|
|
|
const weaponType = getWeaponType(request.InternalName);
|
2025-01-04 00:25:09 +01:00
|
|
|
const inventoryChanges = addEquipment(inventory, weaponType, request.InternalName);
|
|
|
|
await inventory.save();
|
|
|
|
res.json(inventoryChanges);
|
2023-06-14 02:26:19 +02:00
|
|
|
break;
|
2024-12-29 05:37:48 +01:00
|
|
|
}
|
2023-06-14 02:26:19 +02:00
|
|
|
default:
|
|
|
|
res.status(400).json({ error: "something went wrong" });
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
export { addItemController };
|