37 lines
1.3 KiB
JavaScript
37 lines
1.3 KiB
JavaScript
const express = require('express');
|
|
const router = express.Router();
|
|
const cutsController = require('../controllers/cutsController');
|
|
const { requireAuth, requireAdmin } = require('../middleware/auth');
|
|
const config = require('../config');
|
|
|
|
// Add middleware to check if cuts table is configured
|
|
const checkCutsTable = (req, res, next) => {
|
|
if (!config.nocodb.cutsSheetId) {
|
|
console.warn('Cuts table not configured - NOCODB_CUTS_SHEET not set');
|
|
// Continue anyway, controller will handle it
|
|
}
|
|
next();
|
|
};
|
|
|
|
// Apply the check to all routes
|
|
router.use(checkCutsTable);
|
|
|
|
// Get all cuts (filtered by permissions)
|
|
router.get('/', cutsController.getAll);
|
|
|
|
// Get single cut by ID
|
|
router.get('/:id', cutsController.getById);
|
|
|
|
// Admin only routes
|
|
router.post('/', requireAdmin, cutsController.create);
|
|
router.put('/:id', requireAdmin, cutsController.update);
|
|
router.delete('/:id', requireAdmin, cutsController.delete);
|
|
|
|
// New cut enhancement routes - admin only
|
|
router.get('/:id/locations', requireAdmin, cutsController.getLocationsInCut);
|
|
router.get('/:id/locations/export', requireAdmin, cutsController.exportCutLocations);
|
|
router.get('/:id/statistics', requireAdmin, cutsController.getCutStatistics);
|
|
router.put('/:id/settings', requireAdmin, cutsController.updateCutSettings);
|
|
|
|
module.exports = router;
|