const express = require('express'); const cors = require('cors'); const cinecheck = require('./aggregators/cinecheck-adapter'); const commonsense = require('./aggregators/commonsense-adapter'); const filmages = require('./aggregators/filmages-adapter'); const filmstouspublics = require('./aggregators/filmstouspublics-adapter'); const { mergeResults } = require('./merge'); const app = express(); app.use(cors()); app.get('/search', async (req, res) => { const q = req.query.q; if (!q) { return res.status(400).json({ error: "Missing query. Try typing words." }); } console.log('===== SEARCH LOGS ====='); console.log('Query:', q); try { const [cine, cs, fa, ftp] = await Promise.all([ cinecheck.searchAndEnrich(q).catch(e => { console.error('Cinecheck failed:', e.message); return []; }), commonsense.searchAndEnrich(q).catch(e => { console.error('Commonsense failed:', e.message); return []; }), filmages.searchAndEnrich(q).catch(e => { console.error('Filmages failed:', e.message); return []; }), filmstouspublics.searchAndEnrich(q).catch(e => { console.error('FilmsTousPublics failed:', e.message); return []; }) ]); console.log('Cinecheck results:', cine.length); console.log('CSM results:', cs.length); console.log('Filmages results:', fa.length); console.log('FilmsTousPublics results:', ftp.length); const merged = mergeResults([cine, cs, fa, ftp]); res.json(merged); } catch (e) { console.error('General search error:', e); res.status(500).json({ error: e.message || "Server error. You broke something." }); } }); const PORT = 3000; app.listen(PORT, () => { console.log(`Backend multi-agrĂ©gateurs prĂȘt sur http://localhost:${PORT}`); });