const checkForServerConnection = async () => { const pathToIpConfig = path.join(__dirname, '..', '..', 'ipConfig.json'); await lockFile.lock(pathToIpConfig); try { await decryptFileInPlace(pathToIpConfig); const ipConfig = await fs.readFile(pathToIpConfig, 'utf-8'); const { ip } = JSON.parse(ipConfig); const response = await fetch(`http://${ip}:5000/heartbeat`); if (response.ok) { return true; } else { return false; } } catch (error) { console.error("Error:", error); return false; } finally { await lockFile.unlock(pathToIpConfig); } };const express = require('express'); const crypto = require('crypto'); const { v4: uuidv4 } = require('uuid'); const {httpStatus} = require("../helpers/httpResponses"); const router = express.Router(); 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.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({ id: uuidv4(), name: "CEO", email: "ceo@yourfirm.com", password: crypto.randomBytes(16).toString('hex'), department: "CEO" }); const ceoDepartment = { name: "CEO", key: crypto.randomBytes(32).toString('hex') } const departmentsJson = departmentsDB.readFile(); departmentsJson[1] = ceoDepartment; departmentsDB.writeFile(departmentsJson); res.status(httpStatus.OK).json({ message: "Resetting the server..." }); }); router.get('/ceo', validateBody, (req, res) => { 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) => { const usersDB = req.app.get('usersDB'); res.status(httpStatus.OK).json({ message: "Retrieving users info...", data: usersDB.readFile() }) // Corrected to readFile }); router.use((req, res) => { return res.status(httpStatus.NOT_FOUND).json({message: "Endpoint not found"}); }) module.exports = router;