removed event-chronjobs, used Events in hub-app insteand, added admin Btn to set Discord-User and run Event-completed-workflow. Fixed Bug of wrong participants-count in Event-Modal

This commit is contained in:
PxlLoewe
2025-06-05 23:02:34 -07:00
parent 91d811e289
commit 587884dfd9
21 changed files with 341 additions and 232 deletions

View File

@@ -8,7 +8,7 @@ if (!GUILD_ID) {
const router: Router = Router();
const getMember = async (memberId: string) => {
export const getMember = async (memberId: string) => {
const guild = client.guilds.cache.get(GUILD_ID);
if (!guild) throw new Error("Guild not found");
try {
@@ -36,6 +36,27 @@ router.post("/rename", async (req: Request, res: Response) => {
}
});
export const changeMemberRoles = async (
memberId: string,
roleIds: string[],
action: "add" | "remove",
) => {
const member = await getMember(memberId);
const currentRoleIds = member.roles.cache.map((role) => role.id);
const filteredRoleIds =
action === "add"
? roleIds.filter((id: string) => !currentRoleIds.includes(id))
: roleIds.filter((id: string) => currentRoleIds.includes(id));
if (filteredRoleIds.length === 0) {
return { message: `No roles to ${action}` };
}
await member.roles[action](filteredRoleIds);
return { message: `Roles ${action}ed successfully` };
};
const handleRoleChange = (action: "add" | "remove") => async (req: Request, res: Response) => {
const { roleIds, memberId } = req.body;
if (!Array.isArray(roleIds) || !memberId) {
@@ -43,26 +64,8 @@ const handleRoleChange = (action: "add" | "remove") => async (req: Request, res:
return;
}
try {
const member = await getMember(memberId);
const currentRoleIds = member.roles.cache.map((role) => role.id);
const filteredRoleIds =
action === "add"
? roleIds.filter((id: string) => !currentRoleIds.includes(id))
: roleIds.filter((id: string) => currentRoleIds.includes(id));
console.log(
`Attempting to ${action} roles: ${filteredRoleIds.join(", ")} to member ${member.nickname || member.user.username}`,
);
// Option to skip if no roles to add/remove
if (filteredRoleIds.length === 0) {
console.log(`No roles to ${action}`);
res.status(200).json({ message: `No roles to ${action}` });
return;
}
await member.roles[action](roleIds);
res.status(200).json({ message: `Roles ${action}ed successfully` });
const result = await changeMemberRoles(memberId, roleIds, action);
res.status(200).json(result);
} catch (error) {
console.error(`Error ${action}ing roles:`, error);
res.status(500).json({ error: `Failed to ${action} roles` });