SpaceNinjaServer/src/controllers/api/updateInventoryController.ts
Jānis 0af98bc6c2 feat: mission rewards & more
fixes mission rewards, item xp, tutorial
2024-09-06 02:02:26 +03:00

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" : []
}
]
}
}
}
*/