const songController = require('../controllers/song.controller'); const multer = require('multer'); const adminCheck = require('../middlewares/Admin'); const authJwt = require('../middlewares/authjwt'); // Multer configuration for file upload const storage = multer.diskStorage({ destination: function (req, file, cb) { if (file.fieldname === 'coverArtImage') { cb(null, './uploads'); } else if (file.fieldname === 'musicFile') { cb(null, './uploads'); } }, filename: function (req, file, cb) { cb(null, file.originalname); } }); const upload = multer({ storage: storage }); module.exports = (app) => { // Use upload.fields() middleware to handle multiple file uploads with specific field names app.post('/createsong', upload.fields([{ name: 'coverArtImage', maxCount: 1 },[authJwt.verifyToken, adminCheck.isAdmin], { name: 'musicFile', maxCount: 1 }]), songController.createSong); app.put('/updatesong/:id', upload.fields([{ name: 'coverArtImage', maxCount: 1 },[authJwt.verifyToken, adminCheck.isAdmin], { name: 'musicFile', maxCount: 1 }]), songController.updateSong); // Correct route path app.delete('/deletesong/:id',[authJwt.verifyToken, adminCheck.isAdmin], songController.deleteSong); // No need for file upload middleware here app.get('/getsong/:id', [authJwt.verifyToken, adminCheck.isAdmin],songController.getSong); // Added ":id" parameter to the route app.put('/changesongstatus/:id', upload.fields([{ name: 'coverArtImage', maxCount: 1 },[authJwt.verifyToken, adminCheck.isAdmin], { name: 'musicFile', maxCount: 1 }]), songController.changeSongStatus); app.get('/getAllSongs', [authJwt.verifyToken, adminCheck.isAdmin],songController.getAllSongs); };