Added the GET /guilds/:guildId route

This commit is contained in:
2023-11-12 18:19:35 +01:00
parent 580f407d20
commit f69d9c2814

View File

@ -6,7 +6,6 @@ import {validateSchema} from "../../util/validate";
import {getGuildById} from "../../controller/guild"; import {getGuildById} from "../../controller/guild";
import {patchGuild} from "../validations/guildValidation"; import {patchGuild} from "../validations/guildValidation";
const app = Router(); const app = Router();
app.get("/", hasRank(Rank.USER), async (req: AuthenticatedRequest, res: Response) => { app.get("/", hasRank(Rank.USER), async (req: AuthenticatedRequest, res: Response) => {
@ -19,22 +18,44 @@ 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); * Handles the guild id error
if (validationError) return res.status(400).json({message: validationError}); * @param req The request
* @param res The response
*/
const guildIdErrorHandler = async (req: AuthenticatedRequest, res: Response) => {
if (!await canEditGuild(req.user.refreshDate!, req.user.refreshToken, req.user.accessToken, req.params.guildId.toString())) { 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"}); res.status(403).json({message: "You are not allowed to edit this guild"});
return; return;
} }
const guild = await getGuildById(parseInt(req.params.guildId)); const guild = await getGuildById(req.params.guildId);
if (!guild) { if (!guild) {
res.status(404).json({message: "The provided guild is not registered"}) res.status(404).json({message: "The provided guild is not registered"})
return; return;
} }
return guild;
}
app.get("/:guildId", hasRank(Rank.USER), async (req: AuthenticatedRequest, res: Response) => {
const guild = await guildIdErrorHandler(req, res);
if (!guild) return;
res.json(guild);
});
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});
const guild = await guildIdErrorHandler(req, res);
if (!guild) return;
if (Object.keys(req.body).length === 0)
return res.status(400).json({message: "You need to provide at least one field to update"});
await guild.update(req.body); await guild.update(req.body);
res.json({message: "The guild has been updated successfully"}); res.json({message: "The guild has been updated successfully"});