34 lines
1.2 KiB
JavaScript
34 lines
1.2 KiB
JavaScript
import { clearCache } from './data.js';
|
|
|
|
export default async (req, res) => {
|
|
// CORS
|
|
res.setHeader('Access-Control-Allow-Origin', '*');
|
|
res.setHeader('Access-Control-Allow-Methods', 'POST');
|
|
|
|
if (req.method !== 'POST') {
|
|
return res.status(405).json({ error: 'Método no permitido. Usa POST.' });
|
|
}
|
|
|
|
// ── Validación de Secret ──────────────────────────────────────────────
|
|
const expectedSecret = process.env.WEBHOOK_SECRET;
|
|
const providedSecret = req.query.secret;
|
|
|
|
// Si hay un secret configurado en .env, exigimos que coincida
|
|
if (expectedSecret && providedSecret !== expectedSecret) {
|
|
console.warn('⚠️ Intento de Webhook con secret inválido.');
|
|
return res.status(401).json({ error: 'No autorizado / Secret inválido.' });
|
|
}
|
|
|
|
try {
|
|
console.log('🔔 Webhook recibido desde Jira!');
|
|
|
|
// Invocamos la limpieza de caché del módulo data.js
|
|
clearCache();
|
|
|
|
return res.status(200).json({ success: true, message: 'Caché invalidada exitosamente.' });
|
|
} catch (error) {
|
|
console.error('❌ Error manejando webhook:', error);
|
|
return res.status(500).json({ error: 'Error interno invalidando caché.' });
|
|
}
|
|
};
|