refactor: /exp в отдельный модуль src/routes/exp.js
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
// ВРЕМЕННЫЙ публичный endpoint GET /exp — без авторизации, все компании.
|
||||
// TODO: удалить этот файл + строку в server.js когда /export станет публичным (ТЗ п. 4.7)
|
||||
'use strict';
|
||||
|
||||
const { Router } = require('express');
|
||||
const { exportLimiter } = require('../middleware/rateLimit');
|
||||
const { aggregateCIDRs } = require('../validators');
|
||||
const q = require('../queries');
|
||||
|
||||
const router = Router();
|
||||
|
||||
router.get('/exp', exportLimiter, async (req, res) => {
|
||||
try {
|
||||
const cidrs = await q.getExportCIDRs(null); // null = все компании
|
||||
const aggregated = aggregateCIDRs(cidrs);
|
||||
res.setHeader('Content-Type', 'text/plain; charset=utf-8');
|
||||
res.setHeader('Content-Disposition', 'inline; filename="whitelist.txt"');
|
||||
res.send(aggregated.join('\n') + (aggregated.length ? '\n' : ''));
|
||||
} catch (e) {
|
||||
console.error('/exp error:', e);
|
||||
res.status(500).send('Export error');
|
||||
}
|
||||
});
|
||||
|
||||
module.exports = router;
|
||||
Reference in New Issue
Block a user