Files
claboral.linkedcorp.net/backend/src/routes/reports.js
T
2026-03-03 11:54:00 -05:00

32 lines
1.2 KiB
JavaScript

const express = require('express');
const { authRequired } = require('../middleware/auth');
const { requireRole } = require('../middleware/rbac');
const { resolveTenant } = require('../middleware/tenant');
const { generatePdfReport, generateExcelReport } = require('../services/reportService');
const router = express.Router();
router.get('/pdf/:surveyPeriodId', authRequired, requireRole('admin'), resolveTenant, async (req, res, next) => {
try {
const buffer = await generatePdfReport(req.tenantPool, req.params.surveyPeriodId, req.company.name);
res.setHeader('Content-Type', 'application/pdf');
res.setHeader('Content-Disposition', 'attachment; filename="reporte.pdf"');
res.send(buffer);
} catch (err) {
next(err);
}
});
router.get('/excel/:surveyPeriodId', authRequired, requireRole('admin'), resolveTenant, async (req, res, next) => {
try {
const buffer = await generateExcelReport(req.tenantPool, req.params.surveyPeriodId);
res.setHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
res.setHeader('Content-Disposition', 'attachment; filename="reporte.xlsx"');
res.send(buffer);
} catch (err) {
next(err);
}
});
module.exports = router;