Compare commits

...

1 Commits

Author SHA1 Message Date
0949299c3f chore: add custom getAccountInfo endpoint
All checks were successful
Build / build (18) (push) Successful in 1m13s
Build / build (22) (pull_request) Successful in 1m15s
Build / build (22) (push) Successful in 40s
Build / build (20) (push) Successful in 1m22s
Build / build (18) (pull_request) Successful in 43s
Build / build (20) (pull_request) Successful in 1m10s
This will help the IRC server get all the information it needs for permission management in a single request.
2025-03-23 14:29:51 +01:00
2 changed files with 29 additions and 0 deletions

View File

@ -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;
}

View File

@ -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);