From 03704d0f963cfa74cdc4dc8468fbffcdf41bf139 Mon Sep 17 00:00:00 2001 From: Sainan Date: Tue, 28 May 2024 13:52:27 +0200 Subject: [PATCH] feat: handle updateChallengeProgress (#235) --- .../api/updateChallengeProgressController.ts | 17 +++++++++++++++-- src/services/inventoryService.ts | 2 +- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/controllers/api/updateChallengeProgressController.ts b/src/controllers/api/updateChallengeProgressController.ts index b822d8188..887224e3d 100644 --- a/src/controllers/api/updateChallengeProgressController.ts +++ b/src/controllers/api/updateChallengeProgressController.ts @@ -1,7 +1,20 @@ import { RequestHandler } from "express"; +import { IChallengeProgress } from "@/src/types/inventoryTypes/inventoryTypes"; +import { getJSONfromString } from "@/src/helpers/stringHelpers"; +import { getAccountIdForRequest } from "@/src/services/loginService"; +import { getInventory, addChallenges } from "@/src/services/inventoryService"; -const updateChallengeProgressController: RequestHandler = (_request, response) => { - response.sendStatus(200); +interface IUpdateChallengeProgessRequest { + ChallengeProgress: IChallengeProgress[]; +} + +const updateChallengeProgressController: RequestHandler = async (req, res) => { + const payload: IUpdateChallengeProgessRequest = getJSONfromString(req.body.toString()); + const accountId = await getAccountIdForRequest(req); + const inventory = await getInventory(accountId); + addChallenges(inventory, payload.ChallengeProgress); + inventory.save(); + res.status(200).end(); }; export { updateChallengeProgressController }; diff --git a/src/services/inventoryService.ts b/src/services/inventoryService.ts index 0d6852583..550cbc628 100644 --- a/src/services/inventoryService.ts +++ b/src/services/inventoryService.ts @@ -290,7 +290,7 @@ const addMods = (inventory: IInventoryDatabaseDocument, itemsArray: IRawUpgrade[ }); }; -const addChallenges = (inventory: IInventoryDatabaseDocument, itemsArray: IChallengeProgress[] | undefined) => { +export const addChallenges = (inventory: IInventoryDatabaseDocument, itemsArray: IChallengeProgress[] | undefined) => { const category = inventory.ChallengeProgress; itemsArray?.forEach(({ Name, Progress }) => {