initial commit
This commit is contained in:
79
backend/src/routes/server.js
Normal file
79
backend/src/routes/server.js
Normal file
@@ -0,0 +1,79 @@
|
||||
const express = require('express');
|
||||
const fs = require('fs-extra');
|
||||
const path = require('path');
|
||||
const { SERVER_DIR } = require('../server');
|
||||
|
||||
const router = express.Router();
|
||||
|
||||
function isAuthenticated(req, res, next) {
|
||||
if (req.session.user) {
|
||||
next();
|
||||
} else {
|
||||
res.status(401).json({ error: 'Non authentifié' });
|
||||
}
|
||||
}
|
||||
|
||||
router.get('/', isAuthenticated, async (req, res) => {
|
||||
try {
|
||||
const serverPropsFile = path.join(SERVER_DIR, 'server.properties');
|
||||
|
||||
if (!await fs.pathExists(serverPropsFile)) {
|
||||
return res.status(404).json({ error: 'server.properties non trouvé' });
|
||||
}
|
||||
|
||||
const content = await fs.readFile(serverPropsFile, 'utf-8');
|
||||
const lines = content.split('\n');
|
||||
const properties = {};
|
||||
|
||||
lines.forEach(line => {
|
||||
if (line && !line.startsWith('#')) {
|
||||
const [key, ...valueParts] = line.split('=');
|
||||
properties[key.trim()] = valueParts.join('=').trim();
|
||||
}
|
||||
});
|
||||
|
||||
res.json({ properties });
|
||||
|
||||
} catch (error) {
|
||||
console.error('Erreur serveur:', error);
|
||||
res.status(500).json({ error: 'Erreur serveur' });
|
||||
}
|
||||
});
|
||||
|
||||
router.post('/update', isAuthenticated, async (req, res) => {
|
||||
try {
|
||||
const { property, value } = req.body;
|
||||
|
||||
if (!property || value === undefined) {
|
||||
return res.status(400).json({ error: 'Données manquantes' });
|
||||
}
|
||||
|
||||
const serverPropsFile = path.join(SERVER_DIR, 'server.properties');
|
||||
let content = await fs.readFile(serverPropsFile, 'utf-8');
|
||||
const lines = content.split('\n');
|
||||
|
||||
let found = false;
|
||||
const newContent = lines.map(line => {
|
||||
if (line.startsWith(property + '=')) {
|
||||
found = true;
|
||||
return `${property}=${value}`;
|
||||
}
|
||||
return line;
|
||||
}).join('\n');
|
||||
|
||||
if (!found) {
|
||||
content = newContent + '\n' + property + '=' + value;
|
||||
} else {
|
||||
content = newContent;
|
||||
}
|
||||
|
||||
await fs.writeFile(serverPropsFile, content, 'utf-8');
|
||||
res.json({ message: 'Propriété mise à jour' });
|
||||
|
||||
} catch (error) {
|
||||
console.error('Erreur mise à jour:', error);
|
||||
res.status(500).json({ error: 'Erreur serveur' });
|
||||
}
|
||||
});
|
||||
|
||||
module.exports = router;
|
||||
Reference in New Issue
Block a user