spurrin-backend/src/routes/users.js
2025-06-09 12:26:51 +05:30

80 lines
2.6 KiB
JavaScript

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;