From 44a302b93a0b8148307942a2ad350d538a0b2a13 Mon Sep 17 00:00:00 2001 From: VampireKitten Date: Tue, 15 Oct 2024 15:30:58 +0200 Subject: [PATCH] Implement installation of Focus Lenses Should work correctly, hopefully. --- src/controllers/api/focusController.ts | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/controllers/api/focusController.ts b/src/controllers/api/focusController.ts index 0d48f3c0..ca465fdb 100644 --- a/src/controllers/api/focusController.ts +++ b/src/controllers/api/focusController.ts @@ -1,7 +1,7 @@ import { RequestHandler } from "express"; import { getAccountIdForRequest } from "@/src/services/loginService"; import { getInventory, addMiscItems, addEquipment } from "@/src/services/inventoryService"; -import { IMiscItem, TFocusPolarity } from "@/src/types/inventoryTypes/inventoryTypes"; +import { IMiscItem, TFocusPolarity, TEquipmentKey } from "@/src/types/inventoryTypes/inventoryTypes"; import { logger } from "@/src/utils/logger"; import { ExportFocusUpgrades } from "warframe-public-export-plus"; @@ -14,6 +14,16 @@ export const focusController: RequestHandler = async (req, res) => { logger.debug(req.body.toString()); res.end(); break; + case FocusOperation.InstallLens: { + const request = JSON.parse(String(req.body)) as ILensInstallRequest; + const inventory = await getInventory(accountId); + for (const item of inventory[request.ItemCategory]) { + if (item._id.toString() == request.ItemId) { + item.FocusLens = request.LensType; + } + } + break; + } case FocusOperation.UnlockWay: { const focusType = (JSON.parse(String(req.body)) as IWayRequest).FocusType; const focusPolarity = focusTypeToPolarity(focusType); @@ -144,6 +154,7 @@ export const focusController: RequestHandler = async (req, res) => { }; enum FocusOperation { + InstallLens = "1", UnlockWay = "2", UnlockUpgrade = "3", LevelUpUpgrade = "4", @@ -186,6 +197,12 @@ interface ISentTrainingAmplifierRequest { StartingWeaponType: string; } +interface ILensInstallRequest { + LensType: string; + ItemCategory: TEquipmentKey; + ItemId: string; +} + // Works for ways & upgrades const focusTypeToPolarity = (type: string): TFocusPolarity => { return ("AP_" + type.substr(1).split("/")[3].toUpperCase()) as TFocusPolarity;