mirror of
https://github.com/spacebarchat/server.git
synced 2024-11-06 19:02:33 +01:00
Initial implementation of the remote server shutdown route
This commit is contained in:
commit
28f25c3593
25
api/src/routes/stop.ts
Normal file
25
api/src/routes/stop.ts
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
import { Router, Request, Response } from "express";
|
||||||
|
import { route } from "@fosscord/api";
|
||||||
|
import { User } from "@fosscord/util";
|
||||||
|
|
||||||
|
const router: Router = Router();
|
||||||
|
|
||||||
|
router.post("/", route({}), async (req: Request, res: Response) => {
|
||||||
|
//TODO: have an "OPERATOR" platform permission implemented for this API route
|
||||||
|
const user = await User.findOneOrFail({ where: { id: req.user_id }, select: ["flags"] });
|
||||||
|
if(user.flags == '4096') {
|
||||||
|
console.log("user that POSTed to the API was ALLOWED");
|
||||||
|
console.log(user.flags);
|
||||||
|
res.sendStatus(200)
|
||||||
|
process.kill(process.pid, 'SIGTERM')
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
console.log("operation failed");
|
||||||
|
console.log(user.flags);
|
||||||
|
res.sendStatus(403)
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
export default router;
|
||||||
|
|
||||||
|
//THIS API CAN ONLY BE USED BY USERS WITH THE 'SYSTEM' FLAG ONLY IF ANY OTHER FLAGS ARE ADDED THE REQUEST WILL RETURN 403 'FORBIDDEN'
|
@ -22,6 +22,14 @@ const cdn = new CDNServer({ server, port, production, app });
|
|||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
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', () => {
|
||||||
|
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() {
|
||||||
server.listen(port);
|
server.listen(port);
|
||||||
await initDatabase();
|
await initDatabase();
|
||||||
|
Loading…
Reference in New Issue
Block a user