80 lines
2.6 KiB
JavaScript
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;
|