diff --git a/server/routes/download.route.js b/server/routes/download.route.js index 5f5ffc3..b852ca4 100644 --- a/server/routes/download.route.js +++ b/server/routes/download.route.js @@ -1,40 +1,10 @@ const express = require("express"); const router = express.Router(); -const { fetchDownload } = require("../services/download.services"); +const { downloadController, progressController } = require("../controller/download.controller"); -const listeners = []; +router.post("/", downloadController); -router.post("/", async (req, res) => { - const options = { - url: req.body.url, - audioOnly: req.body.audioOnly === "1", - quality: req.body.quality || "best", - outputFolder: req.body.savePath || null - }; - - try { - await fetchDownload(options, listeners); - res.send(`✅ Téléchargement terminé`); - } catch (err) { - res.status(500).send(`❌ ${err.message}`); - } -}); - -// SSE pour la barre de progression -router.get("/progress", (req, res) => { - res.set({ - 'Content-Type': 'text/event-stream', - 'Cache-Control': 'no-cache', - 'Connection': 'keep-alive', - }); - - const sendProgress = percent => res.write(`data: ${percent}\n\n`); - listeners.push(sendProgress); - - req.on("close", () => { - listeners.splice(listeners.indexOf(sendProgress), 1); - res.end(); - }); -}); +// SSE pour la progression du téléchargement +router.get("/progress", progressController); module.exports = router;