Created the PATCH /guild/:guildId route

This commit is contained in:
Mathias Wagner 2023-11-12 12:08:29 +01:00
parent c88519bd52
commit de7a8ce4c1
Signed by: Mathias
GPG Key ID: B8DC354B0A1F5B44

View File

@ -1,7 +1,10 @@
import Router, {Response} from 'express';
import {AuthenticatedRequest, hasRank} from "../middlewares/authenticate";
import {Rank} from "../../models/User";
import {getGuilds} from "../../controller/discord";
import {canEditGuild, getGuilds} from "../../controller/discord";
import {validateSchema} from "../../util/validate";
import {getGuildById} from "../../controller/guild";
import {patchGuild} from "../validations/guildValidation";
const app = Router();
@ -16,4 +19,25 @@ app.get("/", hasRank(Rank.USER), async (req: AuthenticatedRequest, res: Response
});
});
app.patch("/:guildId", hasRank(Rank.USER), async (req: AuthenticatedRequest, res: Response) => {
const validationError = validateSchema(patchGuild, req.body);
if (validationError) return res.status(400).json({message: validationError});
if (!await canEditGuild(req.user.refreshDate!, req.user.refreshToken, req.user.accessToken, req.params.guildId.toString())) {
res.status(403).json({message: "You are not allowed to edit this guild"});
return;
}
const guild = await getGuildById(parseInt(req.params.guildId));
if (!guild) {
res.status(404).json({message: "The provided guild is not registered"})
return;
}
await guild.update(req.body);
res.json({message: "The guild has been updated successfully"});
});
module.exports = app;