返回提交历史
Added
src/controllers/custom/getAccountInfoController.ts
+27
-0
Modified
src/routes/custom.ts
+2
-0
XFEstudio/XFESpaceNinjaServer
chore: add custom getAccountInfo endpoint (#1300)
This will help the IRC server get all the information it needs for permission management in a single request. Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/1300
a77c1906
代码差异
2 个文件
+29
-0
@@ -0,0 +1,27 @@
1
import { Guild, GuildMember } from "@/src/models/guildModel";
2
import { getAccountForRequest, isAdministrator } from "@/src/services/loginService";
3
import { RequestHandler } from "express";
4
5
export const getAccountInfoController: RequestHandler = async (req, res) => {
6
const account = await getAccountForRequest(req);
7
const info: IAccountInfo = {
8
DisplayName: account.DisplayName
9
};
10
if (isAdministrator(account)) {
11
info.IsAdministrator = true;
12
}
13
const guildMember = await GuildMember.findOne({ accountId: account._id, status: 0 }, "guildId rank");
14
if (guildMember) {
15
const guild = (await Guild.findOne({ _id: guildMember.guildId }, "Ranks"))!;
16
info.GuildId = guildMember.guildId.toString();
17
info.GuildPermissions = guild.Ranks[guildMember.rank].Permissions;
18
}
19
res.json(info);
20
};
21
22
interface IAccountInfo {
23
DisplayName: string;
24
IsAdministrator?: boolean;
25
GuildId?: string;
26
GuildPermissions?: number;
27
}
@@ -6,6 +6,7 @@ import { pushArchonCrystalUpgradeController } from "@/src/controllers/custom/pus
6
6
import { popArchonCrystalUpgradeController } from "@/src/controllers/custom/popArchonCrystalUpgradeController";
7
7
import { deleteAccountController } from "@/src/controllers/custom/deleteAccountController";
8
8
import { getNameController } from "@/src/controllers/custom/getNameController";
9
import { getAccountInfoController } from "@/src/controllers/custom/getAccountInfoController";
9
10
import { renameAccountController } from "@/src/controllers/custom/renameAccountController";
10
11
import { ircDroppedController } from "@/src/controllers/custom/ircDroppedController";
11
12
import { unlockAllIntrinsicsController } from "@/src/controllers/custom/unlockAllIntrinsicsController";
@@ -29,6 +30,7 @@ customRouter.get("/pushArchonCrystalUpgrade", pushArchonCrystalUpgradeController
29
30
customRouter.get("/popArchonCrystalUpgrade", popArchonCrystalUpgradeController);
30
31
customRouter.get("/deleteAccount", deleteAccountController);
31
32
customRouter.get("/getName", getNameController);
33
customRouter.get("/getAccountInfo", getAccountInfoController);
32
34
customRouter.get("/renameAccount", renameAccountController);
33
35
customRouter.get("/ircDropped", ircDroppedController);
34
36
customRouter.get("/unlockAllIntrinsics", unlockAllIntrinsicsController);