SpaceNinjaServer/src/controllers/custom/getAccountInfoController.ts
Sainan 2ec2b0278a
All checks were successful
Build / build (20) (push) Successful in 51s
Build / build (18) (push) Successful in 1m14s
Build / build (22) (push) Successful in 1m24s
Build Docker image / docker (push) Successful in 41s
chore: use model.findById where possible (#1315)
Reviewed-on: #1315
2025-03-24 11:32:08 -07:00

28 lines
983 B
TypeScript

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.findById(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;
}