Files
Idea_Tracker_API/src/routes/projectsRoutes.js

50 lines
1.4 KiB
JavaScript

import express from 'express';
import multer from 'multer';
import {
getAllProjectsHandler,
getProjectByIdHandler,
createProjectHandler,
updateProjectHandler,
deleteProjectHandler,
getProjectFilesHandler,
addProjectFileHandler,
deleteProjectFileHandler,
downloadProjectFilesHandler,
} from '../controllers/projectsController.js';
import {
validateGetAllQuery,
validateId,
validateCreateProject,
validateUpdateProject,
} from '../middleware/validateProjects.js';
import { authenticate } from '../middleware/authenticate.js';
const router = express.Router();
const upload = multer({
storage: multer.memoryStorage(),
limits: { fileSize: 10 * 1024 * 1024 },
});
router.use(authenticate);
//Project Routes
router.get('/', validateGetAllQuery, getAllProjectsHandler);
router.get('/:id', validateId, getProjectByIdHandler);
router.post('/', validateCreateProject, createProjectHandler);
router.put('/:id', validateId, validateUpdateProject, updateProjectHandler);
router.delete('/:id', validateId, deleteProjectHandler);
// Project File Routes
router.get('/:id/files', validateId, getProjectFilesHandler);
router.post(
'/:id/files',
validateId,
upload.single('file'),
addProjectFileHandler
);
router.delete('/files/:id', validateId, deleteProjectFileHandler);
router.get('/:id/files/download', validateId, downloadProjectFilesHandler);
export default router;