Added DELETE route
This commit is contained in:
@@ -5,6 +5,7 @@ const router = express.Router();
|
||||
const query = require('./query');
|
||||
const publish = require('./publish');
|
||||
const edit = require('./edit');
|
||||
const remove = require('./remove');
|
||||
|
||||
//basic route management
|
||||
router.get('/', query(false, false));
|
||||
@@ -20,4 +21,6 @@ router.post('/', publish);
|
||||
|
||||
router.patch('/:id(\\d+)', edit);
|
||||
|
||||
router.delete('/:id(\\d+)', remove);
|
||||
|
||||
module.exports = router;
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
const { Op } = require('sequelize');
|
||||
const { articles, revisions } = require('../database/models');
|
||||
|
||||
const route = async (req, res) => {
|
||||
//check the key
|
||||
if (req.body.key != process.env.QUERY_KEY) {
|
||||
return res.status(401).json({ ok: false, error: 'invalid key' });
|
||||
}
|
||||
|
||||
//get the existing record
|
||||
const record = await articles.findOne({
|
||||
where: {
|
||||
index: {
|
||||
[Op.eq]: req.params.id
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
if (!record) {
|
||||
return res.status(500).json({ ok: false, error: 'failed to remove non-existing record' });
|
||||
}
|
||||
|
||||
//store the revision
|
||||
await revisions.upsert({
|
||||
title: record.title,
|
||||
author: record.author,
|
||||
body: record.body,
|
||||
originalIndex: record.index
|
||||
});
|
||||
|
||||
//destroy the data
|
||||
await articles.destroy({
|
||||
where: {
|
||||
index: req.params.id
|
||||
}
|
||||
});
|
||||
|
||||
return res.status(200).json({
|
||||
ok: true
|
||||
});
|
||||
};
|
||||
|
||||
module.exports = route;
|
||||
Reference in New Issue
Block a user