const express = require('express'); const { authMiddleware } = require('../auth'); const router = express.Router(); // IRL France entière — série INSEE 001515333 const IRL_SERIES = '001515333'; async function fetchIrlFromInsee(year, quarter) { const period = `${year}-Q${quarter}`; const url = `https://api.insee.fr/series/BDM/V1/data/SERIES_BDM/${IRL_SERIES}?startPeriod=${period}&endPeriod=${period}`; const resp = await fetch(url, { headers: { 'Accept': 'application/xml' }, }); if (!resp.ok) throw new Error(`INSEE API HTTP ${resp.status}`); const xml = await resp.text(); // SDMX-XML : extraire const match = xml.match(/ObsValue[^/]*value="([\d.]+)"/); if (!match) throw new Error('Valeur IRL introuvable dans la réponse XML'); return parseFloat(match[1]); } // GET /api/irl?year=2024&quarter=2 router.get('/', authMiddleware, async (req, res) => { const { year, quarter } = req.query; if (!year || !quarter) return res.status(400).json({ error: 'year et quarter requis' }); try { const value = await fetchIrlFromInsee(parseInt(year), parseInt(quarter)); res.json({ value, year: parseInt(year), quarter: parseInt(quarter) }); } catch (e) { console.error('IRL fetch error:', e.message); res.status(502).json({ value: null, error: e.message }); } }); module.exports = router;