From d8201594b4ca06ffc8237e598a6f66b3a432a49a Mon Sep 17 00:00:00 2001 From: Sainan Date: Sat, 18 Jan 2025 05:57:24 +0100 Subject: [PATCH] feat: clearDialogueHistory.php --- .../api/clearDialogueHistoryController.ts | 23 +++++++++++++++++++ src/routes/api.ts | 2 ++ 2 files changed, 25 insertions(+) create mode 100644 src/controllers/api/clearDialogueHistoryController.ts diff --git a/src/controllers/api/clearDialogueHistoryController.ts b/src/controllers/api/clearDialogueHistoryController.ts new file mode 100644 index 00000000..96c8e1c6 --- /dev/null +++ b/src/controllers/api/clearDialogueHistoryController.ts @@ -0,0 +1,23 @@ +import { getInventory } from "@/src/services/inventoryService"; +import { getAccountIdForRequest } from "@/src/services/loginService"; +import { RequestHandler } from "express"; + +export const clearDialogueHistoryController: RequestHandler = async (req, res) => { + const accountId = await getAccountIdForRequest(req); + const inventory = await getInventory(accountId); + const request = JSON.parse(String(req.body)) as IClearDialogueRequest; + if (inventory.DialogueHistory && inventory.DialogueHistory.Dialogues) { + for (const dialogueName of request.Dialogues) { + const index = inventory.DialogueHistory.Dialogues.findIndex(x => x.DialogueName == dialogueName); + if (index != -1) { + inventory.DialogueHistory.Dialogues.splice(index, 1); + } + } + } + await inventory.save(); + res.end(); +}; + +interface IClearDialogueRequest { + Dialogues: string[]; +} diff --git a/src/routes/api.ts b/src/routes/api.ts index ff702124..a164b455 100644 --- a/src/routes/api.ts +++ b/src/routes/api.ts @@ -6,6 +6,7 @@ import { archonFusionController } from "@/src/controllers/api/archonFusionContro import { artifactsController } from "../controllers/api/artifactsController"; import { checkDailyMissionBonusController } from "@/src/controllers/api/checkDailyMissionBonusController"; import { claimCompletedRecipeController } from "@/src/controllers/api/claimCompletedRecipeController"; +import { clearDialogueHistoryController } from "@/src/controllers/api/clearDialogueHistoryController"; import { createGuildController } from "@/src/controllers/api/createGuildController"; import { creditsController } from "@/src/controllers/api/creditsController"; import { deleteSessionController } from "@/src/controllers/api/deleteSessionController"; @@ -119,6 +120,7 @@ apiRouter.post("/arcaneCommon.php", arcaneCommonController); apiRouter.post("/archonFusion.php", archonFusionController); apiRouter.post("/artifacts.php", artifactsController); apiRouter.post("/claimCompletedRecipe.php", claimCompletedRecipeController); +apiRouter.post("/clearDialogueHistory.php", clearDialogueHistoryController); apiRouter.post("/createGuild.php", createGuildController); apiRouter.post("/endlessXp.php", endlessXpController); apiRouter.post("/evolveWeapon.php", evolveWeaponController);