"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createVisualRegressionRouter = createVisualRegressionRouter; const express_1 = require("express"); const Result_1 = require("../../../../shared/domain/Result"); function createVisualRegressionRouter(deps) { const router = (0, express_1.Router)(); // GET /api/visual/comparisons router.get('/comparisons', async (req, res, next) => { try { const sessionId = req.query['sessionId']; const status = req.query['status']; const result = await deps.listComparisons.execute({ sessionId, status }); if ((0, Result_1.isErr)(result)) { res.status(500).json({ error: result.error }); return; } const comparisons = result.value.map((c) => ({ id: c.id.toString(), session_id: c.sessionId, state_id: c.stateId, baseline_id: c.baselineId, current_screenshot_path: c.currentScreenshotPath, diff_screenshot_path: c.diffScreenshotPath, diff_pixels: c.diffPixels, diff_percent: c.diffPercent, status: c.status.value, created_at: c.createdAt.getTime(), })); res.json(comparisons); } catch (err) { next(err); } }); // POST /api/visual/baselines/:comparisonId/approve router.post('/baselines/:comparisonId/approve', async (req, res, next) => { try { const comparisonId = String(req.params['comparisonId']); const result = await deps.approveBaseline.execute({ comparisonId }); if ((0, Result_1.isErr)(result)) { res.status(404).json({ error: result.error }); return; } res.json({ baselineId: result.value.baselineId, status: 'approved' }); } catch (err) { next(err); } }); // POST /api/visual/baselines/:comparisonId/reject router.post('/baselines/:comparisonId/reject', async (req, res, next) => { try { const comparisonId = String(req.params['comparisonId']); const result = await deps.rejectComparison.execute({ comparisonId }); if ((0, Result_1.isErr)(result)) { res.status(404).json({ error: result.error }); return; } res.json({ status: 'rejected' }); } catch (err) { next(err); } }); // POST /api/visual/baselines/approve-all router.post('/baselines/approve-all', async (req, res, next) => { try { const { sessionId } = req.body; const result = await deps.approveAllNewStates.execute({ sessionId }); if ((0, Result_1.isErr)(result)) { res.status(500).json({ error: result.error }); return; } res.json({ approved: result.value.approved }); } catch (err) { next(err); } }); return router; }