fase(20): visual regression refactor
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
82
dist/modules/visual-regression/infrastructure/http/VisualRegressionController.js
vendored
Normal file
82
dist/modules/visual-regression/infrastructure/http/VisualRegressionController.js
vendored
Normal file
@@ -0,0 +1,82 @@
|
||||
"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;
|
||||
}
|
||||
Reference in New Issue
Block a user