const express = require('express'); const path = require('path'); const fs = require('fs'); const sanitize = require('sanitize-filename'); const writeFileAtomicSync = require('write-file-atomic').sync; const { jsonParser } = require('../express-common'); const router = express.Router(); router.post('/save', jsonParser, (request, response) => { if (!request.body || !request.body.name) { return response.sendStatus(400); } const filename = path.join(request.user.directories.themes, sanitize(request.body.name) + '.json'); writeFileAtomicSync(filename, JSON.stringify(request.body, null, 4), 'utf8'); return response.sendStatus(200); }); router.post('/delete', jsonParser, function (request, response) { if (!request.body || !request.body.name) { return response.sendStatus(400); } try { const filename = path.join(request.user.directories.themes, sanitize(request.body.name) + '.json'); if (!fs.existsSync(filename)) { console.error('Theme file not found:', filename); return response.sendStatus(404); } fs.rmSync(filename); return response.sendStatus(200); } catch (error) { console.error(error); return response.sendStatus(500); } }); module.exports = { router };