Reviewed-on: #2471 Reviewed-by: Sainan <63328889+sainan@users.noreply.github.com> Co-authored-by: AMelonInsideLemon <166175391+AMelonInsideLemon@users.noreply.github.com> Co-committed-by: AMelonInsideLemon <166175391+AMelonInsideLemon@users.noreply.github.com>
66 lines
3.2 KiB
TypeScript
66 lines
3.2 KiB
TypeScript
import { getInventory } from "@/src/services/inventoryService";
|
|
import { getAccountIdForRequest } from "@/src/services/loginService";
|
|
import { TEquipmentKey } from "@/src/types/inventoryTypes/inventoryTypes";
|
|
import { RequestHandler } from "express";
|
|
|
|
export const changeModularPartsController: RequestHandler = async (req, res) => {
|
|
const accountId = await getAccountIdForRequest(req);
|
|
const request = req.body as IUpdateFingerPrintRequest;
|
|
const inventory = await getInventory(accountId, request.category);
|
|
const item = inventory[request.category].id(request.oid);
|
|
if (item) {
|
|
item.ModularParts = request.modularParts;
|
|
|
|
request.modularParts.forEach(part => {
|
|
const categoryMap = mapping[part];
|
|
if (categoryMap && categoryMap[request.category]) {
|
|
item.ItemType = categoryMap[request.category]!;
|
|
}
|
|
});
|
|
await inventory.save();
|
|
}
|
|
res.end();
|
|
};
|
|
|
|
interface IUpdateFingerPrintRequest {
|
|
category: TEquipmentKey;
|
|
oid: string;
|
|
modularParts: string[];
|
|
}
|
|
|
|
const mapping: Partial<Record<string, Partial<Record<TEquipmentKey, string>>>> = {
|
|
"/Lotus/Weapons/SolarisUnited/Secondary/SUModularSecondarySet1/Barrel/SUModularSecondaryBarrelAPart": {
|
|
LongGuns: "/Lotus/Weapons/SolarisUnited/Primary/LotusModularPrimaryShotgun",
|
|
Pistols: "/Lotus/Weapons/SolarisUnited/Secondary/LotusModularSecondaryShotgun"
|
|
},
|
|
"/Lotus/Weapons/Infested/Pistols/InfKitGun/Barrels/InfBarrelEgg/InfModularBarrelEggPart": {
|
|
LongGuns: "/Lotus/Weapons/SolarisUnited/Primary/LotusModularPrimaryShotgun",
|
|
Pistols: "/Lotus/Weapons/SolarisUnited/Secondary/LotusModularSecondaryShotgun"
|
|
},
|
|
"/Lotus/Weapons/SolarisUnited/Secondary/SUModularSecondarySet1/Barrel/SUModularSecondaryBarrelBPart": {
|
|
LongGuns: "/Lotus/Weapons/SolarisUnited/Primary/LotusModularPrimary",
|
|
Pistols: "/Lotus/Weapons/SolarisUnited/Secondary/LotusModularSecondary"
|
|
},
|
|
"/Lotus/Weapons/SolarisUnited/Secondary/SUModularSecondarySet1/Barrel/SUModularSecondaryBarrelCPart": {
|
|
LongGuns: "/Lotus/Weapons/SolarisUnited/Primary/LotusModularPrimary",
|
|
Pistols: "/Lotus/Weapons/SolarisUnited/Secondary/LotusModularSecondary"
|
|
},
|
|
"/Lotus/Weapons/SolarisUnited/Secondary/SUModularSecondarySet1/Barrel/SUModularSecondaryBarrelDPart": {
|
|
LongGuns: "/Lotus/Weapons/SolarisUnited/Primary/LotusModularPrimaryBeam",
|
|
Pistols: "/Lotus/Weapons/SolarisUnited/Secondary/LotusModularSecondaryBeam"
|
|
},
|
|
"/Lotus/Weapons/Infested/Pistols/InfKitGun/Barrels/InfBarrelBeam/InfModularBarrelBeamPart": {
|
|
LongGuns: "/Lotus/Weapons/SolarisUnited/Primary/LotusModularPrimaryBeam",
|
|
Pistols: "/Lotus/Weapons/SolarisUnited/Secondary/LotusModularSecondaryBeam"
|
|
},
|
|
"/Lotus/Types/Friendly/Pets/ZanukaPets/ZanukaPetParts/ZanukaPetPartHeadA": {
|
|
MoaPets: "/Lotus/Types/Friendly/Pets/ZanukaPets/ZanukaPetAPowerSuit"
|
|
},
|
|
"/Lotus/Types/Friendly/Pets/ZanukaPets/ZanukaPetParts/ZanukaPetPartHeadB": {
|
|
MoaPets: "/Lotus/Types/Friendly/Pets/ZanukaPets/ZanukaPetBPowerSuit"
|
|
},
|
|
"/Lotus/Types/Friendly/Pets/ZanukaPets/ZanukaPetParts/ZanukaPetPartHeadC": {
|
|
MoaPets: "/Lotus/Types/Friendly/Pets/ZanukaPets/ZanukaPetCPowerSuit"
|
|
}
|
|
};
|