XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFESpaceNinjaServer

A simple server for a small space ninja game

公开
关注 0 Fork 0 Star 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
Sainan <sainan@calamity.inc>
提交于

代码差异

2 个文件 +29 -0
Added src/controllers/custom/getAccountInfoController.ts +27 -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 }
Modified src/routes/custom.ts +2 -0
@@ -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);