diff --git a/routes/videoRoutes.js b/routes/videoRoutes.js index a4c2730..0c15d02 100644 --- a/routes/videoRoutes.js +++ b/routes/videoRoutes.js @@ -346,6 +346,56 @@ router.post('/videos/render/:video_id', async (req, res) => { }); }); +/** + * @swagger + * /videos/reset/{video_id}: + * get: + * summary: Reset the status of a video by video ID + * parameters: + * - in: path + * name: video_id + * required: true + * schema: + * type: string + * description: The video ID + * responses: + * 200: + * description: Video reset successfully + * 404: + * description: Video not found + * 500: + * description: Server error + */ +router.get('/videos/reset/:video_id', (req, res) => { + const videoId = req.params.video_id; + const query = 'SELECT video_file FROM public.videos WHERE id = $1'; + + db.query(query, [videoId], (err, results) => { + if (err) { + return serverError.sendError('Error getting video:', res, err); + } + if (results.rows.length === 0) { + return res.status(404).json({ error: 'Video not found' }); + } + + const videoFile = results.rows[0].video_file; + fs.unlink(videoFile, (err) => { + if (err) { + console.error('Error deleting video file:', err); + return res.status(500).json({ error: 'Error deleting video file' }); + } + + const updateQuery = 'UPDATE public.videos SET status = 0, video_file = NULL WHERE id = $1'; + db.query(updateQuery, [videoId], (err) => { + if (err) { + return serverError.sendError('Error resetting video status:', res, err); + } + res.json({ message: 'Video reset successfully' }); + }); + }); + }); +}); + /** * @swagger