From e143e4323d63113760586e4fba8500f35fa90f5b Mon Sep 17 00:00:00 2001 From: Sainan Date: Mon, 10 Mar 2025 19:56:59 +0100 Subject: [PATCH] feat: confirmGuildInvitation --- .../api/confirmGuildInvitationController.ts | 32 +++++++++++++++++++ src/routes/api.ts | 2 ++ 2 files changed, 34 insertions(+) create mode 100644 src/controllers/api/confirmGuildInvitationController.ts diff --git a/src/controllers/api/confirmGuildInvitationController.ts b/src/controllers/api/confirmGuildInvitationController.ts new file mode 100644 index 00000000..070c9c28 --- /dev/null +++ b/src/controllers/api/confirmGuildInvitationController.ts @@ -0,0 +1,32 @@ +import { Guild, GuildMember } from "@/src/models/guildModel"; +import { getGuildClient, updateInventoryForConfirmedGuildJoin } from "@/src/services/guildService"; +import { getAccountIdForRequest } from "@/src/services/loginService"; +import { RequestHandler } from "express"; +import { Types } from "mongoose"; + +export const confirmGuildInvitationController: RequestHandler = async (req, res) => { + const accountId = await getAccountIdForRequest(req); + const guildMember = await GuildMember.findOne({ + accountId: accountId, + guildId: req.query.clanId as string + }); + if (guildMember) { + guildMember.status = 0; + await guildMember.save(); + await updateInventoryForConfirmedGuildJoin(accountId, new Types.ObjectId(req.query.clanId as string)); + const guild = (await Guild.findOne({ _id: req.query.clanId as string }))!; + res.json({ + ...(await getGuildClient(guild, accountId)), + InventoryChanges: { + Recipes: [ + { + ItemType: "/Lotus/Types/Keys/DojoKeyBlueprint", + ItemCount: 1 + } + ] + } + }); + } else { + res.end(); + } +}; diff --git a/src/routes/api.ts b/src/routes/api.ts index e16e9172..75ddf345 100644 --- a/src/routes/api.ts +++ b/src/routes/api.ts @@ -15,6 +15,7 @@ import { claimCompletedRecipeController } from "@/src/controllers/api/claimCompl import { claimLibraryDailyTaskRewardController } from "@/src/controllers/api/claimLibraryDailyTaskRewardController"; import { clearDialogueHistoryController } from "@/src/controllers/api/clearDialogueHistoryController"; import { completeRandomModChallengeController } from "@/src/controllers/api/completeRandomModChallengeController"; +import { confirmGuildInvitationController } from "@/src/controllers/api/confirmGuildInvitationController"; import { contributeGuildClassController } from "@/src/controllers/api/contributeGuildClassController"; import { contributeToDojoComponentController } from "@/src/controllers/api/contributeToDojoComponentController"; import { contributeToVaultController } from "@/src/controllers/api/contributeToVaultController"; @@ -116,6 +117,7 @@ apiRouter.get("/abandonLibraryDailyTask.php", abandonLibraryDailyTaskController) apiRouter.get("/abortDojoComponentDestruction.php", abortDojoComponentDestructionController); apiRouter.get("/checkDailyMissionBonus.php", checkDailyMissionBonusController); apiRouter.get("/claimLibraryDailyTaskReward.php", claimLibraryDailyTaskRewardController); +apiRouter.get("/confirmGuildInvitation.php", confirmGuildInvitationController); apiRouter.get("/credits.php", creditsController); apiRouter.get("/declineGuildInvite.php", declineGuildInviteController); apiRouter.get("/deleteSession.php", deleteSessionController);