From 21e42284c32bb163a370d6116ea962facc194d3a Mon Sep 17 00:00:00 2001 From: Sainan Date: Mon, 24 Mar 2025 09:56:21 +0100 Subject: [PATCH 1/2] chore: use inventory projection for updateChallengeProgress --- .../api/updateChallengeProgressController.ts | 13 +++++++------ src/services/inventoryService.ts | 12 ------------ 2 files changed, 7 insertions(+), 18 deletions(-) diff --git a/src/controllers/api/updateChallengeProgressController.ts b/src/controllers/api/updateChallengeProgressController.ts index 2889a333..dabeff84 100644 --- a/src/controllers/api/updateChallengeProgressController.ts +++ b/src/controllers/api/updateChallengeProgressController.ts @@ -1,16 +1,17 @@ import { RequestHandler } from "express"; import { getJSONfromString } from "@/src/helpers/stringHelpers"; import { getAccountIdForRequest } from "@/src/services/loginService"; -import { updateChallengeProgress } from "@/src/services/inventoryService"; import { IUpdateChallengeProgressRequest } from "@/src/types/requestTypes"; +import { addChallenges, addSeasonalChallengeHistory, getInventory } from "@/src/services/inventoryService"; -const updateChallengeProgressController: RequestHandler = async (req, res) => { - const payload = getJSONfromString(String(req.body)); +export const updateChallengeProgressController: RequestHandler = async (req, res) => { + const challenges = getJSONfromString(String(req.body)); const accountId = await getAccountIdForRequest(req); - await updateChallengeProgress(payload, accountId); + const inventory = await getInventory(accountId, "ChallengeProgress SeasonChallengeHistory"); + addChallenges(inventory, challenges.ChallengeProgress); + addSeasonalChallengeHistory(inventory, challenges.SeasonChallengeHistory); + await inventory.save(); res.status(200).end(); }; - -export { updateChallengeProgressController }; diff --git a/src/services/inventoryService.ts b/src/services/inventoryService.ts index b90d97df..461ea7df 100644 --- a/src/services/inventoryService.ts +++ b/src/services/inventoryService.ts @@ -1205,18 +1205,6 @@ export const addFocusXpIncreases = (inventory: TInventoryDatabaseDocument, focus inventory.FocusXP.AP_WARD += focusXpPlus[FocusType.AP_WARD]; }; -export const updateChallengeProgress = async ( - challenges: IUpdateChallengeProgressRequest, - accountId: string -): Promise => { - const inventory = await getInventory(accountId); - - addChallenges(inventory, challenges.ChallengeProgress); - addSeasonalChallengeHistory(inventory, challenges.SeasonChallengeHistory); - - await inventory.save(); -}; - export const addSeasonalChallengeHistory = ( inventory: TInventoryDatabaseDocument, itemsArray: ISeasonChallenge[] | undefined -- 2.47.2 From 7d9e235a6ea131dd7eb2e39b760a44d77b5b67c4 Mon Sep 17 00:00:00 2001 From: Sainan Date: Mon, 24 Mar 2025 09:58:38 +0100 Subject: [PATCH 2/2] move request type --- src/controllers/api/updateChallengeProgressController.ts | 8 +++++++- src/services/inventoryService.ts | 2 +- src/types/requestTypes.ts | 6 ------ 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/controllers/api/updateChallengeProgressController.ts b/src/controllers/api/updateChallengeProgressController.ts index dabeff84..a69e995b 100644 --- a/src/controllers/api/updateChallengeProgressController.ts +++ b/src/controllers/api/updateChallengeProgressController.ts @@ -1,8 +1,8 @@ import { RequestHandler } from "express"; import { getJSONfromString } from "@/src/helpers/stringHelpers"; import { getAccountIdForRequest } from "@/src/services/loginService"; -import { IUpdateChallengeProgressRequest } from "@/src/types/requestTypes"; import { addChallenges, addSeasonalChallengeHistory, getInventory } from "@/src/services/inventoryService"; +import { IChallengeProgress, ISeasonChallenge } from "@/src/types/inventoryTypes/inventoryTypes"; export const updateChallengeProgressController: RequestHandler = async (req, res) => { const challenges = getJSONfromString(String(req.body)); @@ -15,3 +15,9 @@ export const updateChallengeProgressController: RequestHandler = async (req, res res.status(200).end(); }; + +interface IUpdateChallengeProgressRequest { + ChallengeProgress: IChallengeProgress[]; + SeasonChallengeHistory: ISeasonChallenge[]; + SeasonChallengeCompletions: ISeasonChallenge[]; +} diff --git a/src/services/inventoryService.ts b/src/services/inventoryService.ts index 461ea7df..dde254f1 100644 --- a/src/services/inventoryService.ts +++ b/src/services/inventoryService.ts @@ -28,7 +28,7 @@ import { IUpgradeClient } from "@/src/types/inventoryTypes/inventoryTypes"; import { IGenericUpdate, IUpdateNodeIntrosResponse } from "../types/genericUpdate"; -import { IMissionInventoryUpdateRequest, IUpdateChallengeProgressRequest } from "../types/requestTypes"; +import { IMissionInventoryUpdateRequest } from "../types/requestTypes"; import { logger } from "@/src/utils/logger"; import { convertInboxMessage, fromStoreItem, getExalted, getKeyChainItems } from "@/src/services/itemDataService"; import { diff --git a/src/types/requestTypes.ts b/src/types/requestTypes.ts index 78e43c5c..f056b3c9 100644 --- a/src/types/requestTypes.ts +++ b/src/types/requestTypes.ts @@ -25,12 +25,6 @@ export interface IAffiliationChange { Title: number; } -export interface IUpdateChallengeProgressRequest { - ChallengeProgress: IChallengeProgress[]; - SeasonChallengeHistory: ISeasonChallenge[]; - SeasonChallengeCompletions: ISeasonChallenge[]; -} - export type IMissionInventoryUpdateRequest = { MiscItems?: ITypeCount[]; Recipes?: ITypeCount[]; -- 2.47.2