mirror of
https://github.com/spacebarchat/server.git
synced 2024-11-06 02:42:37 +01:00
Make /stop route not ugly as hell
This commit is contained in:
parent
070b193987
commit
5f0d16d4bf
@ -1,28 +1,12 @@
|
|||||||
import { Router, Request, Response } from "express";
|
import { Router, Request, Response } from "express";
|
||||||
import { route } from "@fosscord/api";
|
import { route } from "@fosscord/api";
|
||||||
import { User } from "@fosscord/util";
|
|
||||||
|
|
||||||
const router: Router = Router();
|
const router: Router = Router();
|
||||||
|
|
||||||
router.post("/", route({}), async (req: Request, res: Response) => {
|
router.post("/", route({ right: "OPERATOR" }), async (req: Request, res: Response) => {
|
||||||
//EXPERIMENTAL: have an "OPERATOR" platform permission implemented for this API route
|
console.log(`/stop was called by ${req.user_id} at ${new Date()}`);
|
||||||
const user = await User.findOneOrFail({
|
res.sendStatus(200);
|
||||||
where: { id: req.user_id },
|
process.kill(process.pid, "SIGTERM");
|
||||||
select: ["rights"],
|
|
||||||
});
|
|
||||||
if ((Number(user.rights) << Number(0)) % Number(2) == Number(1)) {
|
|
||||||
console.log("user that POSTed to the API was ALLOWED");
|
|
||||||
console.log(user.rights);
|
|
||||||
res.sendStatus(200);
|
|
||||||
process.kill(process.pid, "SIGTERM");
|
|
||||||
} else {
|
|
||||||
console.log("operation failed");
|
|
||||||
console.log(user.rights);
|
|
||||||
res.sendStatus(403);
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
export default router;
|
export default router;
|
||||||
|
|
||||||
//THIS API CAN ONLY BE USED BY USERS WITH THE 'OPERATOR' RIGHT (which is the value of 1) ONLY IF ANY OTHER RIGHTS ARE ADDED OR IF THE USER DOESNT HAVE PERMISSION,
|
|
||||||
//THE REQUEST WILL RETURN 403 'FORBIDDEN'
|
|
@ -21,13 +21,10 @@ const api = new Api.FosscordServer({ server, port, production, app });
|
|||||||
const cdn = new CDNServer({ server, port, production, app });
|
const cdn = new CDNServer({ server, port, production, app });
|
||||||
const gateway = new Gateway.Server({ server, port, production });
|
const gateway = new Gateway.Server({ server, port, production });
|
||||||
|
|
||||||
//this is what has been added for the /stop API route
|
process.on("SIGTERM", async () => {
|
||||||
process.on("SIGTERM", () => {
|
console.log("Shutting down due to SIGTERM");
|
||||||
server.close(() => {
|
server.close();
|
||||||
console.log("Stop API has been successfully POSTed, SIGTERM sent");
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
//this is what has been added for the /stop API route
|
|
||||||
|
|
||||||
async function main() {
|
async function main() {
|
||||||
await initDatabase();
|
await initDatabase();
|
||||||
|
Loading…
Reference in New Issue
Block a user