43 lines
836 B
JavaScript
43 lines
836 B
JavaScript
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; |