Spaces:
Runtime error
Runtime error
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 }; | |