From 44a302b93a0b8148307942a2ad350d538a0b2a13 Mon Sep 17 00:00:00 2001 From: VampireKitten Date: Tue, 15 Oct 2024 15:30:58 +0200 Subject: [PATCH 1/7] 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; -- 2.47.2 From ab057def130f15a263339b3dc128387767b3d923 Mon Sep 17 00:00:00 2001 From: VampireKitten Date: Tue, 15 Oct 2024 15:47:01 +0200 Subject: [PATCH 2/7] Remembered to save Still errors out on type for some reason. --- src/controllers/api/focusController.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/controllers/api/focusController.ts b/src/controllers/api/focusController.ts index ca465fdb..7fd631d3 100644 --- a/src/controllers/api/focusController.ts +++ b/src/controllers/api/focusController.ts @@ -22,6 +22,8 @@ export const focusController: RequestHandler = async (req, res) => { item.FocusLens = request.LensType; } } + await inventory.save(); + res.end(); break; } case FocusOperation.UnlockWay: { -- 2.47.2 From d328e343f539c6ffde059396db075eb33c4fa95d Mon Sep 17 00:00:00 2001 From: VampireKitten Date: Tue, 15 Oct 2024 15:56:01 +0200 Subject: [PATCH 3/7] Fixed for real this time --- src/controllers/api/focusController.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/controllers/api/focusController.ts b/src/controllers/api/focusController.ts index 7fd631d3..1f52eb4f 100644 --- a/src/controllers/api/focusController.ts +++ b/src/controllers/api/focusController.ts @@ -17,8 +17,8 @@ export const focusController: RequestHandler = async (req, res) => { 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) { + for (const item of inventory[request.Category]) { + if (item._id.toString() == request.WeaponId) { item.FocusLens = request.LensType; } } @@ -201,8 +201,8 @@ interface ISentTrainingAmplifierRequest { interface ILensInstallRequest { LensType: string; - ItemCategory: TEquipmentKey; - ItemId: string; + Category: TEquipmentKey; + WeaponId: string; } // Works for ways & upgrades -- 2.47.2 From cc5c5d8868b22a1e27567e58b9c1fd253b640ce0 Mon Sep 17 00:00:00 2001 From: VampireKitten Date: Tue, 15 Oct 2024 16:00:11 +0200 Subject: [PATCH 4/7] Removes lens and tells client it worked. --- src/controllers/api/focusController.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/controllers/api/focusController.ts b/src/controllers/api/focusController.ts index 1f52eb4f..107b5228 100644 --- a/src/controllers/api/focusController.ts +++ b/src/controllers/api/focusController.ts @@ -20,10 +20,19 @@ export const focusController: RequestHandler = async (req, res) => { for (const item of inventory[request.Category]) { if (item._id.toString() == request.WeaponId) { item.FocusLens = request.LensType; + addMiscItems(inventory, [ + { + ItemType: request.LensType, + ItemCount: -1 + } satisfies IMiscItem + ]); } } await inventory.save(); - res.end(); + res.json({ + weaponId: request.WeaponId, + lensType: request.LensType, + }); break; } case FocusOperation.UnlockWay: { -- 2.47.2 From f6abc076e322d0b5597ab453f9354a5cde4a8248 Mon Sep 17 00:00:00 2001 From: VampireKitten Date: Tue, 15 Oct 2024 16:06:03 +0200 Subject: [PATCH 5/7] Ran prettier --- src/controllers/api/focusController.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/controllers/api/focusController.ts b/src/controllers/api/focusController.ts index 107b5228..c8cc033a 100644 --- a/src/controllers/api/focusController.ts +++ b/src/controllers/api/focusController.ts @@ -30,9 +30,9 @@ export const focusController: RequestHandler = async (req, res) => { } await inventory.save(); res.json({ - weaponId: request.WeaponId, - lensType: request.LensType, - }); + weaponId: request.WeaponId, + lensType: request.LensType + }); break; } case FocusOperation.UnlockWay: { -- 2.47.2 From 7bf2c4900bb9cc28056accb4257d7e1f43f69903 Mon Sep 17 00:00:00 2001 From: VampireKitten Date: Tue, 15 Oct 2024 16:13:24 +0200 Subject: [PATCH 6/7] Added a missing break --- src/controllers/api/focusController.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/controllers/api/focusController.ts b/src/controllers/api/focusController.ts index c8cc033a..209e6656 100644 --- a/src/controllers/api/focusController.ts +++ b/src/controllers/api/focusController.ts @@ -26,6 +26,7 @@ export const focusController: RequestHandler = async (req, res) => { ItemCount: -1 } satisfies IMiscItem ]); + break; } } await inventory.save(); -- 2.47.2 From 806aad27141246e0808d48f32a62c584235addb7 Mon Sep 17 00:00:00 2001 From: VampireKitten Date: Tue, 15 Oct 2024 16:17:49 +0200 Subject: [PATCH 7/7] Fixed the spacing --- src/controllers/api/focusController.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/controllers/api/focusController.ts b/src/controllers/api/focusController.ts index 209e6656..9b6129ac 100644 --- a/src/controllers/api/focusController.ts +++ b/src/controllers/api/focusController.ts @@ -26,7 +26,7 @@ export const focusController: RequestHandler = async (req, res) => { ItemCount: -1 } satisfies IMiscItem ]); - break; + break; } } await inventory.save(); -- 2.47.2