From 05d16f09b6585dff43d4e8e8d6ad4989bef691ba Mon Sep 17 00:00:00 2001 From: Sainan Date: Sun, 5 Jan 2025 05:17:40 +0100 Subject: [PATCH] feat: handle helminth offerings update request (#714) --- .../api/infestedFoundryController.ts | 23 ++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/src/controllers/api/infestedFoundryController.ts b/src/controllers/api/infestedFoundryController.ts index 74ff3f35..c95db049 100644 --- a/src/controllers/api/infestedFoundryController.ts +++ b/src/controllers/api/infestedFoundryController.ts @@ -107,10 +107,21 @@ export const infestedFoundryController: RequestHandler = async (req, res) => { break; } - case "o": // offerings update - // {"OfferingsIndex":540,"SuitTypes":["/Lotus/Powersuits/PaxDuviricus/PaxDuviricusBaseSuit","/Lotus/Powersuits/Nezha/NezhaBaseSuit","/Lotus/Powersuits/Devourer/DevourerBaseSuit"],"Extra":false} - res.status(404).end(); + case "o": { + // offerings update + const request = getJSONfromString(String(req.body)) as IHelminthOfferingsUpdate; + const inventory = await getInventory(accountId); + inventory.InfestedFoundry ??= {}; + inventory.InfestedFoundry.InvigorationIndex = request.OfferingsIndex; + inventory.InfestedFoundry.InvigorationSuitOfferings = request.SuitTypes; + await inventory.save(); + res.json({ + InventoryChanges: { + InfestedFoundry: inventory.toJSON().InfestedFoundry + } + }); break; + } case "a": { // subsume warframe @@ -251,3 +262,9 @@ export const handleSubsumeCompletion = (inventory: TInventoryDatabaseDocument): addRecipes(inventory, recipeChanges); return recipeChanges; }; + +interface IHelminthOfferingsUpdate { + OfferingsIndex: number; + SuitTypes: string[]; + Extra: boolean; +}