From 49b702df2e0046990ff680ed9b61e198f0f40875 Mon Sep 17 00:00:00 2001 From: Ordis <134585663+OrdisPrime@users.noreply.github.com> Date: Sat, 1 Feb 2025 16:18:42 +0100 Subject: [PATCH] fix some stuff --- src/controllers/api/updateQuestController.ts | 15 +++++++++++---- src/models/inventoryModels/inventoryModel.ts | 2 +- src/services/questService.ts | 1 + src/types/inventoryTypes/inventoryTypes.ts | 2 +- src/types/requestTypes.ts | 6 +++--- 5 files changed, 17 insertions(+), 9 deletions(-) diff --git a/src/controllers/api/updateQuestController.ts b/src/controllers/api/updateQuestController.ts index ff2cd8c1..d5d4a5a7 100644 --- a/src/controllers/api/updateQuestController.ts +++ b/src/controllers/api/updateQuestController.ts @@ -5,6 +5,7 @@ import { getJSONfromString } from "@/src/helpers/stringHelpers"; import { updateQuestKey, IUpdateQuestRequest } from "@/src/services/questService"; import { getQuestCompletionItems } from "@/src/services/itemDataService"; import { addItems, getInventory } from "@/src/services/inventoryService"; +import { IInventoryChanges } from "@/src/types/purchaseTypes"; // eslint-disable-next-line @typescript-eslint/no-misused-promises export const updateQuestController: RequestHandler = async (req, res) => { @@ -18,6 +19,9 @@ export const updateQuestController: RequestHandler = async (req, res) => { const inventory = await getInventory(accountId); + const updateQuestResponse: { CustomData?: string; InventoryChanges?: IInventoryChanges; MissionRewards: [] } = { + MissionRewards: [] + }; updateQuestKey(inventory, updateQuestRequest.QuestKeys); if (updateQuestRequest.QuestKeys[0].Completed) { @@ -28,12 +32,15 @@ export const updateQuestController: RequestHandler = async (req, res) => { const inventoryChanges = await addItems(inventory, questCompletionItems); inventory.ActiveQuest = ""; - await inventory.save(); - res.json({ MissionRewards: [], inventoryChanges }); - return; + updateQuestResponse.InventoryChanges = inventoryChanges; + } + + //TODO: might need to parse the custom data and add the associated items to inventory + if (updateQuestRequest.QuestKeys[0].CustomData) { + updateQuestResponse.CustomData = updateQuestRequest.QuestKeys[0].CustomData; } await inventory.save(); - res.send({ MissionRewards: [] }); + res.send(updateQuestResponse); }; diff --git a/src/models/inventoryModels/inventoryModel.ts b/src/models/inventoryModels/inventoryModel.ts index 21d99fc4..43587f96 100644 --- a/src/models/inventoryModels/inventoryModel.ts +++ b/src/models/inventoryModels/inventoryModel.ts @@ -494,7 +494,7 @@ const questKeysSchema = new Schema( Progress: { type: [questProgressSchema], default: undefined }, unlock: Boolean, Completed: Boolean, - //CustomData: Schema.Types.Mixed, + CustomData: String, CompletionDate: Date, ItemType: String }, diff --git a/src/services/questService.ts b/src/services/questService.ts index e53126c5..797b15cb 100644 --- a/src/services/questService.ts +++ b/src/services/questService.ts @@ -28,6 +28,7 @@ export const updateQuestKey = ( throw new Error(`quest key ${questKeyUpdate[0].ItemType} not found`); } + console.log(questKeyUpdate[0]); inventory.QuestKeys[questKeyIndex] = questKeyUpdate[0]; if (questKeyUpdate[0].Completed) { diff --git a/src/types/inventoryTypes/inventoryTypes.ts b/src/types/inventoryTypes/inventoryTypes.ts index 066eb8a8..0657ebad 100644 --- a/src/types/inventoryTypes/inventoryTypes.ts +++ b/src/types/inventoryTypes/inventoryTypes.ts @@ -86,7 +86,7 @@ export interface IQuestKeyDatabase { Progress?: IQuestStage[]; unlock?: boolean; Completed?: boolean; - CustomData?: string; //TODO: check whether this actually exists + CustomData?: string; ItemType: string; CompletionDate?: Date; } diff --git a/src/types/requestTypes.ts b/src/types/requestTypes.ts index d3adf7f1..54363969 100644 --- a/src/types/requestTypes.ts +++ b/src/types/requestTypes.ts @@ -11,8 +11,8 @@ import { TSolarMapRegion, TEquipmentKey, IFusionTreasure, - IQuestKeyClient, - IPlayerSkills + IPlayerSkills, + IQuestKeyDatabase } from "./inventoryTypes/inventoryTypes"; export interface IThemeUpdateRequest { @@ -46,7 +46,7 @@ export type IMissionInventoryUpdateRequest = { Consumables?: ITypeCount[]; FusionTreasures?: IFusionTreasure[]; Recipes?: ITypeCount[]; - QuestKeys?: IQuestKeyClient[]; + QuestKeys?: Omit[]; RegularCredits?: number; MissionFailed: boolean; MissionStatus: IMissionStatus;