2025-04-03 10:41:01 -07:00
|
|
|
import { AllianceMember, Guild, GuildMember } from "@/src/models/guildModel";
|
2025-05-06 19:04:39 -07:00
|
|
|
import { getInventory } from "@/src/services/inventoryService";
|
2025-03-23 13:17:14 -07:00
|
|
|
import { getAccountForRequest, isAdministrator } from "@/src/services/loginService";
|
|
|
|
import { RequestHandler } from "express";
|
|
|
|
|
|
|
|
export const getAccountInfoController: RequestHandler = async (req, res) => {
|
|
|
|
const account = await getAccountForRequest(req);
|
2025-05-06 19:04:39 -07:00
|
|
|
const inventory = await getInventory(account._id.toString(), "QuestKeys");
|
2025-03-23 13:17:14 -07:00
|
|
|
const info: IAccountInfo = {
|
2025-05-06 19:04:39 -07:00
|
|
|
DisplayName: account.DisplayName,
|
|
|
|
IsAdministrator: isAdministrator(account),
|
|
|
|
CompletedVorsPrize: !!inventory.QuestKeys.find(
|
|
|
|
x => x.ItemType == "/Lotus/Types/Keys/VorsPrize/VorsPrizeQuestKeyChain"
|
|
|
|
)?.Completed
|
2025-03-23 13:17:14 -07:00
|
|
|
};
|
|
|
|
const guildMember = await GuildMember.findOne({ accountId: account._id, status: 0 }, "guildId rank");
|
|
|
|
if (guildMember) {
|
2025-04-03 10:41:01 -07:00
|
|
|
const guild = (await Guild.findById(guildMember.guildId, "Ranks AllianceId"))!;
|
2025-03-23 13:17:14 -07:00
|
|
|
info.GuildId = guildMember.guildId.toString();
|
|
|
|
info.GuildPermissions = guild.Ranks[guildMember.rank].Permissions;
|
2025-04-03 10:41:01 -07:00
|
|
|
info.GuildRank = guildMember.rank;
|
|
|
|
if (guild.AllianceId) {
|
|
|
|
//const alliance = (await Alliance.findById(guild.AllianceId))!;
|
|
|
|
const allianceMember = (await AllianceMember.findOne({
|
|
|
|
allianceId: guild.AllianceId,
|
|
|
|
guildId: guild._id
|
|
|
|
}))!;
|
|
|
|
info.AllianceId = guild.AllianceId.toString();
|
|
|
|
info.AlliancePermissions = allianceMember.Permissions;
|
|
|
|
}
|
2025-03-23 13:17:14 -07:00
|
|
|
}
|
|
|
|
res.json(info);
|
|
|
|
};
|
|
|
|
|
|
|
|
interface IAccountInfo {
|
|
|
|
DisplayName: string;
|
2025-05-06 19:04:39 -07:00
|
|
|
IsAdministrator: boolean;
|
|
|
|
CompletedVorsPrize: boolean;
|
2025-03-23 13:17:14 -07:00
|
|
|
GuildId?: string;
|
|
|
|
GuildPermissions?: number;
|
2025-04-03 10:41:01 -07:00
|
|
|
GuildRank?: number;
|
|
|
|
AllianceId?: string;
|
|
|
|
AlliancePermissions?: number;
|
2025-03-23 13:17:14 -07:00
|
|
|
}
|