views
This commit is contained in:
parent
b7650d4729
commit
ba185c0cf5
@ -462,4 +462,39 @@ exports.deleteDocument = async (req, res) => {
|
||||
console.error('Error deleting document:', error.message);
|
||||
res.status(500).json({ error: 'Internal server error' });
|
||||
}
|
||||
};
|
||||
|
||||
// Update document views (always increment by 1, public)
|
||||
exports.updateDocumentViews = async (req, res) => {
|
||||
try {
|
||||
const { id } = req.params;
|
||||
|
||||
if (!id) {
|
||||
return res.status(400).json({ error: 'Document ID is required' });
|
||||
}
|
||||
|
||||
// Fetch the document
|
||||
const documentQuery = 'SELECT * FROM documents WHERE id = ?';
|
||||
const documentResult = await db.query(documentQuery, [id]);
|
||||
|
||||
|
||||
|
||||
if (documentResult.length === 0) {
|
||||
return res.status(404).json({ error: 'Document not found' });
|
||||
}
|
||||
|
||||
// Always increment views by 1
|
||||
const updateQuery = 'UPDATE documents SET views = views + 1 WHERE id = ?';
|
||||
const updateParams = [id];
|
||||
const result = await db.query(updateQuery, updateParams);
|
||||
|
||||
if (result.affectedRows === 0) {
|
||||
return res.status(404).json({ message: 'Document not found or no changes made' });
|
||||
}
|
||||
|
||||
res.status(200).json({ message: 'Document views updated successfully!' });
|
||||
} catch (error) {
|
||||
console.error('Error updating document views:', error.message);
|
||||
res.status(500).json({ error: 'Internal server error' });
|
||||
}
|
||||
};
|
||||
@ -55,6 +55,13 @@ const securityHeaders = helmet({
|
||||
|
||||
// Request validation middleware
|
||||
const validateRequest = (req, res, next) => {
|
||||
// Bypass Content-Type check for public update-views endpoint
|
||||
if (
|
||||
req.method === 'PUT' &&
|
||||
req.path.startsWith('/documents/update-views')
|
||||
) {
|
||||
return next();
|
||||
}
|
||||
if (['POST', 'PUT'].includes(req.method) && !req.is('application/json') && !req.is('multipart/form-data')) {
|
||||
return res.status(415).json({
|
||||
status: 'error',
|
||||
|
||||
@ -64,6 +64,11 @@ router.put(
|
||||
documentController.updateDocumentStatus
|
||||
);
|
||||
|
||||
router.put(
|
||||
'/update-views/:id',
|
||||
documentController.updateDocumentViews
|
||||
);
|
||||
|
||||
router.delete(
|
||||
'/delete/:id',
|
||||
authMiddleware.authenticateToken,
|
||||
@ -72,5 +77,4 @@ router.delete(
|
||||
);
|
||||
|
||||
|
||||
|
||||
module.exports = router;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user