forked from OpenWF/SpaceNinjaServer
chore: add custom getAccountInfo endpoint
This will help the IRC server get all the information it needs for permission management in a single request.
This commit is contained in:
parent
cf125b5355
commit
0949299c3f
27
src/controllers/custom/getAccountInfoController.ts
Normal file
27
src/controllers/custom/getAccountInfoController.ts
Normal 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;
|
||||||
|
}
|
@ -6,6 +6,7 @@ import { pushArchonCrystalUpgradeController } from "@/src/controllers/custom/pus
|
|||||||
import { popArchonCrystalUpgradeController } from "@/src/controllers/custom/popArchonCrystalUpgradeController";
|
import { popArchonCrystalUpgradeController } from "@/src/controllers/custom/popArchonCrystalUpgradeController";
|
||||||
import { deleteAccountController } from "@/src/controllers/custom/deleteAccountController";
|
import { deleteAccountController } from "@/src/controllers/custom/deleteAccountController";
|
||||||
import { getNameController } from "@/src/controllers/custom/getNameController";
|
import { getNameController } from "@/src/controllers/custom/getNameController";
|
||||||
|
import { getAccountInfoController } from "@/src/controllers/custom/getAccountInfoController";
|
||||||
import { renameAccountController } from "@/src/controllers/custom/renameAccountController";
|
import { renameAccountController } from "@/src/controllers/custom/renameAccountController";
|
||||||
import { ircDroppedController } from "@/src/controllers/custom/ircDroppedController";
|
import { ircDroppedController } from "@/src/controllers/custom/ircDroppedController";
|
||||||
import { unlockAllIntrinsicsController } from "@/src/controllers/custom/unlockAllIntrinsicsController";
|
import { unlockAllIntrinsicsController } from "@/src/controllers/custom/unlockAllIntrinsicsController";
|
||||||
@ -29,6 +30,7 @@ customRouter.get("/pushArchonCrystalUpgrade", pushArchonCrystalUpgradeController
|
|||||||
customRouter.get("/popArchonCrystalUpgrade", popArchonCrystalUpgradeController);
|
customRouter.get("/popArchonCrystalUpgrade", popArchonCrystalUpgradeController);
|
||||||
customRouter.get("/deleteAccount", deleteAccountController);
|
customRouter.get("/deleteAccount", deleteAccountController);
|
||||||
customRouter.get("/getName", getNameController);
|
customRouter.get("/getName", getNameController);
|
||||||
|
customRouter.get("/getAccountInfo", getAccountInfoController);
|
||||||
customRouter.get("/renameAccount", renameAccountController);
|
customRouter.get("/renameAccount", renameAccountController);
|
||||||
customRouter.get("/ircDropped", ircDroppedController);
|
customRouter.get("/ircDropped", ircDroppedController);
|
||||||
customRouter.get("/unlockAllIntrinsics", unlockAllIntrinsicsController);
|
customRouter.get("/unlockAllIntrinsics", unlockAllIntrinsicsController);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user