Tagghantering, fix #3
This commit is contained in:
45
server.js
45
server.js
@@ -3,6 +3,7 @@ const bodyParser = require('body-parser');
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
const basicAuth = require('basic-auth');
|
||||
const debug = require('debug')('app');
|
||||
|
||||
const app = express();
|
||||
const port = 3044;
|
||||
@@ -11,11 +12,17 @@ app.use(bodyParser.json());
|
||||
app.use(express.static('public'));
|
||||
|
||||
// Ensure the /data directory exists
|
||||
const dataDir = path.join('/data');
|
||||
const dataDir = '/data';
|
||||
if (!fs.existsSync(dataDir)) {
|
||||
fs.mkdirSync(dataDir, { recursive: true });
|
||||
}
|
||||
|
||||
// Ensure the tags.json file exists
|
||||
const tagsFilePath = path.join(dataDir, 'tags.json');
|
||||
if (!fs.existsSync(tagsFilePath)) {
|
||||
fs.writeFileSync(tagsFilePath, JSON.stringify([]));
|
||||
}
|
||||
|
||||
// Authentication middleware
|
||||
const auth = (req, res, next) => {
|
||||
const user = basicAuth(req);
|
||||
@@ -57,12 +64,44 @@ app.post('/add-task', auth, (req, res) => {
|
||||
const filePath = path.join(dataDir, 'tasks.org');
|
||||
fs.appendFile(filePath, orgFormattedData, (err) => {
|
||||
if (err) {
|
||||
debug('Error writing to file:', err);
|
||||
return res.status(500).send('Error writing to file.');
|
||||
}
|
||||
res.send({ message: 'Task added successfully!' });
|
||||
});
|
||||
});
|
||||
|
||||
app.listen(port, () => {
|
||||
console.log(`Server running at http://localhost:${port}`);
|
||||
// Endpoint to save tags
|
||||
app.post('/save-tags', auth, (req, res) => {
|
||||
const { tags } = req.body;
|
||||
const filePath = path.join(dataDir, 'tags.json');
|
||||
fs.writeFile(filePath, JSON.stringify(tags), (err) => {
|
||||
if (err) {
|
||||
debug('Error saving tags:', err);
|
||||
return res.status(500).send('Error saving tags.');
|
||||
}
|
||||
res.send({ message: 'Tags saved successfully!' });
|
||||
});
|
||||
});
|
||||
|
||||
// Endpoint to retrieve tags
|
||||
app.get('/get-tags', auth, (req, res) => {
|
||||
const filePath = path.join(dataDir, 'tags.json');
|
||||
fs.readFile(filePath, (err, data) => {
|
||||
if (err) {
|
||||
debug('Error retrieving tags:', err);
|
||||
return res.status(500).send('Error retrieving tags.');
|
||||
}
|
||||
try {
|
||||
const tags = JSON.parse(data);
|
||||
res.send(tags);
|
||||
} catch (e) {
|
||||
debug('Error parsing tags JSON:', e);
|
||||
res.send([]);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
app.listen(port, () => {
|
||||
debug(`Server running at http://localhost:${port}`);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user