Added the GET /guilds/:guildId route
This commit is contained in:
@ -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"});
|
||||||
|
Reference in New Issue
Block a user