From bfdc6bfaffed147ee0b511ed0dab11eb99120d0a Mon Sep 17 00:00:00 2001 From: holmityd Date: Wed, 30 Aug 2023 23:50:52 +0400 Subject: [PATCH] missionInventoryUpdate - dynamic gear update calls --- .../api/missionInventoryUpdateController.ts | 2 +- src/services/inventoryService.ts | 16 ++++++++++------ 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/controllers/api/missionInventoryUpdateController.ts b/src/controllers/api/missionInventoryUpdateController.ts index de7ae822..bde878af 100644 --- a/src/controllers/api/missionInventoryUpdateController.ts +++ b/src/controllers/api/missionInventoryUpdateController.ts @@ -23,7 +23,7 @@ import { MissionInventoryUpdate } from "@/src/types/missionInventoryUpdateType"; - [ ] LastRegionPlayed - [ ] GameModeId - [ ] hosts -- [+] ChallengeProgress +- [x] ChallengeProgress - [ ] SeasonChallengeHistory - [ ] PS - [ ] ActiveDojoColorResearch diff --git a/src/services/inventoryService.ts b/src/services/inventoryService.ts index 1b99507e..9f4ff713 100644 --- a/src/services/inventoryService.ts +++ b/src/services/inventoryService.ts @@ -164,17 +164,21 @@ const addChallenges = (inventory: IInventoryDatabaseDocument, itemsArray: Challe }); }; +const gearKeys = ["Suits", "Pistols", "LongGuns", "Melee"] as const; +type GearKeysType = (typeof gearKeys)[number]; + export const missionInventoryUpdate = async (data: MissionInventoryUpdate, accountId: string): Promise => { - const { RawUpgrades, MiscItems, Suits, Pistols, LongGuns, Melee, RegularCredits, ChallengeProgress } = data; + const { RawUpgrades, MiscItems, RegularCredits, ChallengeProgress } = data; const inventory = await getInventory(accountId); // TODO - multipliers logic - + // credits inventory.RegularCredits += RegularCredits || 0; - addGearExpByCategory(inventory, Pistols, "Pistols"); - addGearExpByCategory(inventory, LongGuns, "LongGuns"); - addGearExpByCategory(inventory, Melee, "Melee"); - addGearExpByCategory(inventory, Suits, "Suits"); + + // gear exp + gearKeys.forEach((key: GearKeysType) => addGearExpByCategory(inventory, data[key], key)); + + // other addItemsByCategory(inventory, RawUpgrades, "RawUpgrades"); // TODO - check mods fusion level addItemsByCategory(inventory, MiscItems, "MiscItems"); addChallenges(inventory, ChallengeProgress);