"use strict"; /** * Visual regression routes — /api/visual */ Object.defineProperty(exports, "__esModule", { value: true }); exports.createVisualRouter = createVisualRouter; const express_1 = require("express"); function createVisualRouter(repo) { const router = (0, express_1.Router)(); // GET /api/visual/comparisons router.get('/comparisons', (req, res) => { const sessionId = req.query['sessionId']; const status = req.query['status']; const comparisons = repo.findComparisons({ sessionId, status }); res.json(comparisons); }); // POST /api/visual/baselines/:comparisonId/approve router.post('/baselines/:comparisonId/approve', (req, res) => { const comparisonId = String(req.params['comparisonId']); const comparison = repo.findComparisonById(comparisonId); if (!comparison) { res.status(404).json({ error: 'Comparison not found' }); return; } const baselineId = repo.promoteToBaseline(comparisonId); res.json({ baselineId, status: 'approved' }); }); // POST /api/visual/baselines/:comparisonId/reject router.post('/baselines/:comparisonId/reject', (req, res) => { const comparisonId = String(req.params['comparisonId']); const comparison = repo.findComparisonById(comparisonId); if (!comparison) { res.status(404).json({ error: 'Comparison not found' }); return; } repo.updateComparisonStatus(comparisonId, 'failed'); res.json({ status: 'rejected' }); }); // POST /api/visual/baselines/approve-all router.post('/baselines/approve-all', (req, res) => { const { sessionId } = req.body; const pending = repo.findComparisons({ sessionId, status: 'new_state' }); const approved = []; for (const comp of pending) { const id = repo.promoteToBaseline(comp.id); if (id) approved.push(id); } res.json({ approved: approved.length }); }); return router; }