const express = require('express'); const router = express.Router(); const path = require('path'); const { logger, ErrorLogger, logRequestInfo } = require('../config/logs'); const util = require('util'); const fs = require('fs'); router.use(express.json()); router.get('/', (req, res) => { res.render('acces-denied'); }); router.get('/attachments', (req, res) => { res.render('acces-denied'); }); router.get('/setup', (req, res) => { fs.readFile(path.join(__dirname, '../data/setup.json'), 'utf8', (err, data) => { if (err) { ErrorLogger.error('Error reading setup.json:', err); return res.status(500).json({ success: false, message: 'Error reading setup.json.' }); } const setup = JSON.parse(data); if (Object.keys(setup).length === 0 && setup.constructor === Object) { res.render('setup', { setup }); } else { res.status(200).json({message: 'The CDN configuration is already done.' }); } }); }); router.post('/setup/save', (req, res) => { const setupData = { domain: req.body.domain ?? '', uptime: req.body.uptime ?? '' }; if (!areAllFieldsEmpty(req.body.ldap)) { setupData.ldap = req.body.ldap; } if (!areAllFieldsEmpty(req.body.discord)) { setupData.discord = req.body.discord; } fs.writeFile(path.join(__dirname, '../data/setup.json'), JSON.stringify(setupData, null, 2), (err) => { if (err) { ErrorLogger.error('Error writing to setup.json:', err); return res.status(500).json({ success: false, message: 'Error writing to setup.json.' }); } res.json({ success: true, message: 'The configuration data has been saved successfully.' }); }); }); function areAllFieldsEmpty(obj) { return Object.values(obj).every(val => !val); } module.exports = router;