2024-05-02 23:38:32 +02:00
|
|
|
import { RequestHandler } from "express";
|
2024-05-04 15:42:25 +02:00
|
|
|
import { Inventory } from "@/src/models/inventoryModels/inventoryModel";
|
|
|
|
import { Guild } from "@/src/models/guildModel";
|
2024-05-28 13:45:06 +02:00
|
|
|
import { getAccountIdForRequest } from "@/src/services/loginService";
|
2025-03-08 01:44:30 -08:00
|
|
|
import { toMongoDate, toOid } from "@/src/helpers/inventoryHelpers";
|
2025-03-06 21:24:25 -08:00
|
|
|
import { getGuildVault } from "@/src/services/guildService";
|
2025-03-08 01:44:30 -08:00
|
|
|
import { logger } from "@/src/utils/logger";
|
2024-05-02 23:38:32 +02:00
|
|
|
|
2024-05-04 15:42:25 +02:00
|
|
|
const getGuildController: RequestHandler = async (req, res) => {
|
2024-05-28 13:45:06 +02:00
|
|
|
const accountId = await getAccountIdForRequest(req);
|
|
|
|
const inventory = await Inventory.findOne({ accountOwnerId: accountId });
|
2024-05-04 15:42:25 +02:00
|
|
|
if (!inventory) {
|
|
|
|
res.status(400).json({ error: "inventory was undefined" });
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
if (inventory.GuildId) {
|
|
|
|
const guild = await Guild.findOne({ _id: inventory.GuildId });
|
|
|
|
if (guild) {
|
2025-03-08 01:44:30 -08:00
|
|
|
if (guild.CeremonyResetDate && Date.now() >= guild.CeremonyResetDate.getTime()) {
|
|
|
|
logger.debug(`ascension ceremony is over`);
|
|
|
|
guild.CeremonyEndo = undefined;
|
|
|
|
guild.CeremonyContributors = undefined;
|
|
|
|
guild.CeremonyResetDate = undefined;
|
|
|
|
await guild.save();
|
|
|
|
}
|
2024-05-16 01:34:38 +02:00
|
|
|
res.json({
|
|
|
|
_id: toOid(guild._id),
|
|
|
|
Name: guild.Name,
|
2025-03-09 07:47:32 -07:00
|
|
|
MOTD: guild.MOTD,
|
|
|
|
LongMOTD: guild.LongMOTD,
|
2024-05-16 01:34:38 +02:00
|
|
|
Members: [
|
|
|
|
{
|
|
|
|
_id: { $oid: req.query.accountId },
|
|
|
|
Rank: 0,
|
|
|
|
Status: 0
|
|
|
|
}
|
|
|
|
],
|
|
|
|
Ranks: [
|
|
|
|
{
|
|
|
|
Name: "/Lotus/Language/Game/Rank_Creator",
|
|
|
|
Permissions: 16351
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Name: "/Lotus/Language/Game/Rank_Warlord",
|
|
|
|
Permissions: 14303
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Name: "/Lotus/Language/Game/Rank_General",
|
|
|
|
Permissions: 4318
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Name: "/Lotus/Language/Game/Rank_Officer",
|
|
|
|
Permissions: 4314
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Name: "/Lotus/Language/Game/Rank_Leader",
|
|
|
|
Permissions: 4106
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Name: "/Lotus/Language/Game/Rank_Sage",
|
|
|
|
Permissions: 4304
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Name: "/Lotus/Language/Game/Rank_Soldier",
|
|
|
|
Permissions: 4098
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Name: "/Lotus/Language/Game/Rank_Initiate",
|
|
|
|
Permissions: 4096
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Name: "/Lotus/Language/Game/Rank_Utility",
|
|
|
|
Permissions: 4096
|
|
|
|
}
|
|
|
|
],
|
2025-03-06 21:24:25 -08:00
|
|
|
Tier: 1,
|
2025-03-08 01:44:30 -08:00
|
|
|
Vault: getGuildVault(guild),
|
|
|
|
Class: guild.Class,
|
|
|
|
XP: guild.XP,
|
|
|
|
IsContributor: !!guild.CeremonyContributors?.find(x => x.equals(accountId)),
|
|
|
|
NumContributors: guild.CeremonyContributors?.length ?? 0,
|
|
|
|
CeremonyResetDate: guild.CeremonyResetDate ? toMongoDate(guild.CeremonyResetDate) : undefined
|
2024-05-16 01:34:38 +02:00
|
|
|
});
|
2024-05-04 15:42:25 +02:00
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
2024-05-02 23:38:32 +02:00
|
|
|
res.json({});
|
|
|
|
};
|
|
|
|
|
|
|
|
export { getGuildController };
|