Created the PATCH /guild/:guildId route
This commit is contained in:
parent
c88519bd52
commit
de7a8ce4c1
@ -1,7 +1,10 @@
|
|||||||
import Router, {Response} from 'express';
|
import Router, {Response} from 'express';
|
||||||
import {AuthenticatedRequest, hasRank} from "../middlewares/authenticate";
|
import {AuthenticatedRequest, hasRank} from "../middlewares/authenticate";
|
||||||
import {Rank} from "../../models/User";
|
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();
|
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;
|
module.exports = app;
|
Loading…
x
Reference in New Issue
Block a user