forked from OpenWF/SpaceNinjaServer
155 lines
4.0 KiB
TypeScript
155 lines
4.0 KiB
TypeScript
import { getAccountIdForRequest } from "@/src/services/loginService";
|
|
import { RequestHandler } from "express";
|
|
import { getInventory, missionInventoryUpdate } from "@/src/services/inventoryService";
|
|
import { combineRewardAndLootInventory } from "@/src/services/missionInventoryUpdateService";
|
|
import { getJSONfromString } from "@/src/helpers/stringHelpers";
|
|
import { IMissionInventoryUpdateRequest } from "@/src/types/requestTypes";
|
|
|
|
// eslint-disable-next-line @typescript-eslint/no-misused-promises
|
|
export const updateInventoryController: RequestHandler = async (req, res) => {
|
|
const accountId = await getAccountIdForRequest(req);
|
|
const lootInventory = getJSONfromString(req.body.toString()) as IMissionInventoryUpdateRequest;
|
|
const { combinedInventoryChanges, TotalCredits, CreditsBonus, MissionCredits } =
|
|
combineRewardAndLootInventory(lootInventory, lootInventory);
|
|
|
|
await missionInventoryUpdate(combinedInventoryChanges, accountId);
|
|
|
|
res.json({
|
|
// InventoryJson, // this part will reset game data and missions will be locked
|
|
combinedInventoryChanges,
|
|
TotalCredits,
|
|
CreditsBonus,
|
|
MissionCredits
|
|
});
|
|
};
|
|
|
|
/*
|
|
{
|
|
"LongGuns" : [
|
|
{
|
|
"ItemType" : "",
|
|
"ItemId" : {
|
|
"$id" : ""
|
|
},
|
|
"XP" : 882,
|
|
"UpgradeVer" : 0,
|
|
"UnlockLevel" : 0,
|
|
"ExtraCapacity" : 4,
|
|
"ExtraRemaining" : 4
|
|
}
|
|
],
|
|
"Pistols" : [
|
|
{
|
|
"ItemType" : "",
|
|
"ItemId" : {
|
|
"$id" : ""
|
|
},
|
|
"XP" : 0,
|
|
"UpgradeVer" : 0,
|
|
"UnlockLevel" : 0,
|
|
"ExtraCapacity" : 4,
|
|
"ExtraRemaining" : 4
|
|
}
|
|
],
|
|
"Suits" : [
|
|
{
|
|
"ItemType" : "",
|
|
"ItemId" : {
|
|
"$id" : ""
|
|
},
|
|
"XP" : 982,
|
|
"UpgradeVer" : 101,
|
|
"UnlockLevel" : 0,
|
|
"ExtraCapacity" : 4,
|
|
"ExtraRemaining" : 4
|
|
}
|
|
],
|
|
"Melee" : [
|
|
{
|
|
"ItemType" : "",
|
|
"ItemId" : {
|
|
"$id" : ""
|
|
},
|
|
"XP" : 0,
|
|
"UpgradeVer" : 0,
|
|
"UnlockLevel" : 0,
|
|
"ExtraCapacity" : 4,
|
|
"ExtraRemaining" : 4
|
|
}
|
|
],
|
|
"WeaponSkins" : [],
|
|
"Upgrades" : [],
|
|
"Boosters" : [],
|
|
"Robotics" : [],
|
|
"Consumables" : [],
|
|
"FlavourItems" : [],
|
|
"MiscItems" : [],
|
|
"Cards" : [],
|
|
"Recipes" : [],
|
|
"XPInfo" : [],
|
|
"Sentinels" : [],
|
|
"SentinelWeapons" : [],
|
|
"SuitBin" : {
|
|
"Slots" : 0,
|
|
"Extra" : 0
|
|
},
|
|
"WeaponBin" : {
|
|
"Slots" : 0,
|
|
"Extra" : 0
|
|
},
|
|
"MiscBin" : {
|
|
"Slots" : 0,
|
|
"Extra" : 0
|
|
},
|
|
"SentinelBin" : {
|
|
"Slots" : 0,
|
|
"Extra" : 0
|
|
},
|
|
"RegularCredits" : 1304,
|
|
"PremiumCredits" : 0,
|
|
"PlayerXP" : 784,
|
|
"AdditionalPlayerXP" : 0,
|
|
"Rating" : 15,
|
|
"PlayerLevel" : 0,
|
|
"TrainingDate" : {
|
|
"sec" : "",
|
|
"usec" : ""
|
|
},
|
|
"AliveTime" : 193.78572,
|
|
"Missions" : {
|
|
"Tag" : "SolNode103",
|
|
"Completes" : 1,
|
|
"BestRating" : 0.2
|
|
},
|
|
"AssignedMissions" : [],
|
|
"CompletedAlerts" : [],
|
|
"DeathMarks" : [],
|
|
"MissionReport" : {
|
|
"HostId" : "",
|
|
"MishStartTime" : "1725359860",
|
|
"MishName" : "SolNode103",
|
|
"PlayerReport" : {
|
|
"ReporterId" : "",
|
|
"FullReport" : true,
|
|
"PlayerMishInfos" : [
|
|
{
|
|
"Pid" : "",
|
|
"Creds" : 304,
|
|
"CredBonus" : 1000,
|
|
"Xp" : 784,
|
|
"XpBonus" : 0,
|
|
"SuitXpBonus" : 590,
|
|
"PistolXpBonus" : 0,
|
|
"RfileXpBonus" : 490,
|
|
"MeleeXpBonus" : 0,
|
|
"SentnlXPBonus" : 0,
|
|
"SentnlWepXpBonus" : 0,
|
|
"Rating" : 0.2,
|
|
"Upgrades" : []
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
*/
|