const express = require("express"); const router = express.Router(); const defineRun = require("../../models/runs"); const defineRunCase = require("../../models/runCases"); const { DataTypes, literal } = require("sequelize"); module.exports = function (sequelize) { const Run = defineRun(sequelize, DataTypes); const RunCase = defineRunCase(sequelize, DataTypes); router.get("/:runId", async (req, res) => { const runId = req.params.runId; if (!runId) { return res.status(400).json({ error: "runId is required" }); } try { const run = await Run.findByPk(runId); if (!run) { return res.status(404).send("Run not found"); } // Counts test case status belonging to the run const statusCounts = await RunCase.findAll({ attributes: ["status", [literal("COUNT(*)"), "count"]], where: { runId: run.id, }, group: ["status"], }); res.json({ run, statusCounts }); } catch (error) { console.error(error); res.status(500).send("Internal Server Error"); } }); return router; };