42 lines
2.0 KiB
JavaScript
42 lines
2.0 KiB
JavaScript
const express = require('express');
|
|
const router = express.Router();
|
|
|
|
const authMiddleware = require('../middleware/authMiddleware');
|
|
const DocumentTemplateController = require('../controller/documentTemplate/DocumentTemplateController');
|
|
const CompanyStampController = require('../controller/companyStamp/CompanyStampController'); // <-- added
|
|
const CoffeeController = require('../controller/admin/CoffeeController');
|
|
const AdminUserController = require('../controller/admin/AdminUserController');
|
|
|
|
// Helper middlewares for company-stamp
|
|
function adminOnly(req, res, next) {
|
|
if (!req.user || !['admin','super_admin'].includes(req.user.role)) {
|
|
return res.status(403).json({ error: 'Admin role required' });
|
|
}
|
|
next();
|
|
}
|
|
function forceCompanyForAdmin(req, res, next) {
|
|
if (req.user && ['admin','super_admin'].includes(req.user.role) && req.user.user_type !== 'company') {
|
|
req.user.user_type = 'company';
|
|
}
|
|
next();
|
|
}
|
|
|
|
// PATCH /document-templates/:id/state (existing)
|
|
router.patch('/document-templates/:id/state', authMiddleware, DocumentTemplateController.updateTemplateState);
|
|
|
|
// Company-stamp PATCH (activate)
|
|
router.patch('/company-stamps/:id/activate', authMiddleware, adminOnly, forceCompanyForAdmin, CompanyStampController.activate);
|
|
|
|
// Admin user management PATCH routes
|
|
router.patch('/admin/archive-user/:id', authMiddleware, adminOnly, AdminUserController.archiveUser);
|
|
router.patch('/admin/unarchive-user/:id', authMiddleware, adminOnly, AdminUserController.unarchiveUser);
|
|
router.patch('/admin/update-verification/:id', authMiddleware, adminOnly, AdminUserController.updateUserVerification);
|
|
router.patch('/admin/update-user-profile/:id', authMiddleware, adminOnly, AdminUserController.updateUserProfile);
|
|
router.patch('/admin/update-user-status/:id', authMiddleware, adminOnly, AdminUserController.updateUserStatus);
|
|
// Admin: set state for coffee product
|
|
router.patch('/admin/coffee/:id/state', authMiddleware, adminOnly, CoffeeController.setState);
|
|
|
|
// Add other PATCH routes here as needed
|
|
|
|
module.exports = router;
|