ADMIN UI DONE

This commit is contained in:
andrei-mihnea-cerbu
2024-04-03 05:57:01 +03:00
parent 5e4a488bfd
commit 5e5bab933b
15 changed files with 229 additions and 13 deletions
+31 -4
View File
@@ -1,20 +1,47 @@
const express = require('express');
const {httpStatus} = require("../helpers/httpResponses");
const router = express.Router();
const crypto = require('crypto');
function validateBody(req, res, next) {
const apiKey = req.headers['authorization'];
const adminDB = req.app.get('adminDB');
const {id} = adminDB.readFile();
if(apiKey !== id){
return res.status(httpStatus.UNAUTHORIZED).json(
{message: "You are not authorized as an admin."})
}
next();
}
router.post('/reset_server', validateBody, (req, res) => {
// Handle reset server logic here
router.get('/reset_server', validateBody, (req, res) => {
const usersDB = req.app.get('usersDB');
const departmentsDB = req.app.get('departmentsDB');
const backupSchemesDB = req.app.get('backupSchemesDB');
const ceoDB = req.app.get('ceoDB');
usersDB.writeFile([]);
departmentsDB.writeFile([]);
backupSchemesDB.writeFile({});
ceoDB.writeFile({
name: "CEO",
email: "ceo@yourfirm.com",
password: crypto.randomBytes(16).toString('hex')
});
res.status(httpStatus.OK).json({ message: "Resetting the server..." });
});
router.get('/ceo', validateBody, (req, res) => {
// Retrieve CEO info
const ceoDB = req.app.get('ceoDB');
res.status(httpStatus.OK).json({ message: "Retrieving CEO info...", data: ceoDB.readFile() }) // Corrected to readFile
});
router.get('/users', validateBody, (req, res) => {
// Retrieve all users in the system
const usersDB = req.app.get('usersDB');
res.status(httpStatus.OK).json({ message: "Retrieving users info...", data: usersDB.readFile() }) // Corrected to readFile
});
module.exports = router;