From f1237d562d291046c72b76b9275731f941995640 Mon Sep 17 00:00:00 2001 From: Sainan Date: Wed, 19 Jun 2024 10:33:56 +0200 Subject: [PATCH] feat: implement stepSequencers.php (#327) --- src/controllers/api/stepSequencersController.ts | 14 ++++++++++++++ src/routes/api.ts | 2 ++ src/types/inventoryTypes/inventoryTypes.ts | 2 +- 3 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 src/controllers/api/stepSequencersController.ts diff --git a/src/controllers/api/stepSequencersController.ts b/src/controllers/api/stepSequencersController.ts new file mode 100644 index 00000000..45ea01ba --- /dev/null +++ b/src/controllers/api/stepSequencersController.ts @@ -0,0 +1,14 @@ +import { RequestHandler } from "express"; +import { getAccountIdForRequest } from "@/src/services/loginService"; +import { getInventory } from "@/src/services/inventoryService"; +import { IStepSequencer } from "@/src/types/inventoryTypes/inventoryTypes"; + +export const stepSequencersController: RequestHandler = async (req, res) => { + const accountId = await getAccountIdForRequest(req); + const inventory = await getInventory(accountId); + const stepSequencer = JSON.parse(req.body.toString()) as IStepSequencer; + delete stepSequencer.ItemId; + const stepSequencerIndex = inventory.StepSequencers.push(stepSequencer); + const changedInventory = await inventory.save(); + res.json(changedInventory.StepSequencers[stepSequencerIndex - 1]); // unsure about the expected response format, but it seems anything works. +}; diff --git a/src/routes/api.ts b/src/routes/api.ts index 35eaaa43..15192fe8 100644 --- a/src/routes/api.ts +++ b/src/routes/api.ts @@ -50,6 +50,7 @@ import { setSupportedSyndicateController } from "@/src/controllers/api/setSuppor import { shipDecorationsController } from "@/src/controllers/api/shipDecorationsController"; import { startDojoRecipeController } from "@/src/controllers/api/startDojoRecipeController"; import { startRecipeController } from "@/src/controllers/api/startRecipeController"; +import { stepSequencersController } from "@/src/controllers/api/stepSequencersController"; import { surveysController } from "@/src/controllers/api/surveysController"; import { syndicateSacrificeController } from "../controllers/api/syndicateSacrificeController"; import { trainingResultController } from "@/src/controllers/api/trainingResultController"; @@ -117,6 +118,7 @@ apiRouter.post("/setShipCustomizations.php", setShipCustomizationsController); apiRouter.post("/shipDecorations.php", shipDecorationsController); apiRouter.post("/startDojoRecipe.php", startDojoRecipeController); apiRouter.post("/startRecipe.php", startRecipeController); +apiRouter.post("/stepSequencers.php", stepSequencersController); apiRouter.post("/syndicateSacrifice.php", syndicateSacrificeController); apiRouter.post("/trainingResult.php", trainingResultController); apiRouter.post("/updateChallengeProgress.php", updateChallengeProgressController); diff --git a/src/types/inventoryTypes/inventoryTypes.ts b/src/types/inventoryTypes/inventoryTypes.ts index 1abd4cd8..a8f30308 100644 --- a/src/types/inventoryTypes/inventoryTypes.ts +++ b/src/types/inventoryTypes/inventoryTypes.ts @@ -831,7 +831,7 @@ export interface IStepSequencer { NotePacks: INotePacks; FingerPrint: string; Name: string; - ItemId: IOid; + ItemId?: IOid; } export interface INotePacks {