const express = require('express'); const multer = require('multer'); const path = require('path'); const userController = require('../controllers/userController'); const authMiddleware = require('../middlewares/authMiddleware'); const authController = require('../controllers/authController'); const router = express.Router(); const storage = multer.diskStorage({ destination: (req, file, cb) => { const uploadPath = "uploads/profile_photos/"; if (!fs.existsSync(uploadPath)) { fs.mkdirSync(uploadPath, { recursive: true }); } cb(null, uploadPath); // cb(null, 'uploads/profile_photos'); }, filename: (req, file, cb) => { const uniqueSuffix = Date.now() + '-' + Math.round(Math.random() * 1e9); cb(null, `${file.fieldname}-${uniqueSuffix}${path.extname(file.originalname)}`); }, }); const upload = multer({ storage, fileFilter: (req, file, cb) => { if (file.mimetype.startsWith('image/')) { cb(null, true); } else { cb(new Error('Only image files are allowed'), false); } }, limits: { fileSize: 500 * 1024 * 1024 }, }); // Route to add new user to hospital router.post('/add-user', authMiddleware.authenticateToken, userController.addUser); // Edit hospital user router.put('/edit-user/:id',upload.none(), authMiddleware.authenticateToken, userController.editHospitalUser); router.delete('/delete-user/:id', upload.none(), authMiddleware.authenticateToken, userController.deleteHospitalUser); router.post('/upload-profile-photo', authMiddleware.authenticateToken, userController.uploadProfilePhoto); router.post('/get-access-token', userController.getAccessToken); router.post('/get-spu-access-token', userController.getAccessTokenForSpurrinadmin); router.get('/refresh-token/:user_id', userController.getRefreshTokenByUserId); router.post('/hospital-users/login', userController.getHospitalUserId); // Route to update hospital user password router.put( '/update-password/:id', upload.none(), authMiddleware.authenticateToken, // Middleware to validate access token userController.updatePassword ); router.post('/login', userController.login); // Login endpoint router.post('/logout', userController.logout); // Logout endpoint // Define the route router.get('/:hospital_id', authController.authenticateToken, userController.getUsersByHospital); router.get('/profile_photo/:id', authController.authenticateToken, userController.getProfilePhoto); router.get('/refresh-token/:user_id/:role_id', userController.getRefreshTokenByUserId); module.exports = router;