7fife-backend/routes/song.route.js

32 lines
1.7 KiB
JavaScript

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);
};