forked from OpenWF/SpaceNinjaServer
29 lines
926 B
TypeScript
29 lines
926 B
TypeScript
|
import { GuildMember } from "@/src/models/guildModel";
|
||
|
import { RequestHandler } from "express";
|
||
|
|
||
|
export const changeGuildRankController: RequestHandler = async (req, res) => {
|
||
|
// TODO: Verify permissions
|
||
|
const guildMember = (await GuildMember.findOne({
|
||
|
guildId: req.query.guildId as string,
|
||
|
accountId: req.query.targetId as string
|
||
|
}))!;
|
||
|
guildMember.rank = parseInt(req.query.rankChange as string);
|
||
|
await guildMember.save();
|
||
|
|
||
|
if (guildMember.rank == 0) {
|
||
|
// If we just promoted someone else to Founding Warlord, we need to demote ourselves to Warlord.
|
||
|
await GuildMember.findOneAndUpdate(
|
||
|
{
|
||
|
guildId: req.query.guildId as string,
|
||
|
accountId: req.query.accountId as string
|
||
|
},
|
||
|
{ rank: 1 }
|
||
|
);
|
||
|
}
|
||
|
|
||
|
res.json({
|
||
|
_id: req.query.targetId as string,
|
||
|
Rank: guildMember.rank
|
||
|
});
|
||
|
};
|