diff --git a/src/controllers/custom/getAccountInfoController.ts b/src/controllers/custom/getAccountInfoController.ts new file mode 100644 index 000000000..41e59a77e --- /dev/null +++ b/src/controllers/custom/getAccountInfoController.ts @@ -0,0 +1,27 @@ +import { Guild, GuildMember } from "@/src/models/guildModel"; +import { getAccountForRequest, isAdministrator } from "@/src/services/loginService"; +import { RequestHandler } from "express"; + +export const getAccountInfoController: RequestHandler = async (req, res) => { + const account = await getAccountForRequest(req); + const info: IAccountInfo = { + DisplayName: account.DisplayName + }; + if (isAdministrator(account)) { + info.IsAdministrator = true; + } + const guildMember = await GuildMember.findOne({ accountId: account._id, status: 0 }, "guildId rank"); + if (guildMember) { + const guild = (await Guild.findOne({ _id: guildMember.guildId }, "Ranks"))!; + info.GuildId = guildMember.guildId.toString(); + info.GuildPermissions = guild.Ranks[guildMember.rank].Permissions; + } + res.json(info); +}; + +interface IAccountInfo { + DisplayName: string; + IsAdministrator?: boolean; + GuildId?: string; + GuildPermissions?: number; +} diff --git a/src/routes/custom.ts b/src/routes/custom.ts index fa0f2225d..20f19a59c 100644 --- a/src/routes/custom.ts +++ b/src/routes/custom.ts @@ -6,6 +6,7 @@ import { pushArchonCrystalUpgradeController } from "@/src/controllers/custom/pus import { popArchonCrystalUpgradeController } from "@/src/controllers/custom/popArchonCrystalUpgradeController"; import { deleteAccountController } from "@/src/controllers/custom/deleteAccountController"; import { getNameController } from "@/src/controllers/custom/getNameController"; +import { getAccountInfoController } from "@/src/controllers/custom/getAccountInfoController"; import { renameAccountController } from "@/src/controllers/custom/renameAccountController"; import { ircDroppedController } from "@/src/controllers/custom/ircDroppedController"; import { unlockAllIntrinsicsController } from "@/src/controllers/custom/unlockAllIntrinsicsController"; @@ -29,6 +30,7 @@ customRouter.get("/pushArchonCrystalUpgrade", pushArchonCrystalUpgradeController customRouter.get("/popArchonCrystalUpgrade", popArchonCrystalUpgradeController); customRouter.get("/deleteAccount", deleteAccountController); customRouter.get("/getName", getNameController); +customRouter.get("/getAccountInfo", getAccountInfoController); customRouter.get("/renameAccount", renameAccountController); customRouter.get("/ircDropped", ircDroppedController); customRouter.get("/unlockAllIntrinsics", unlockAllIntrinsicsController);