32 lines
1.7 KiB
JavaScript
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);
|
|
};
|