const testId = $("#results-table").data("test-id"); $("#test-result-form").on("submit", function (e) { e.preventDefault(); const form = $(this); const formData = form.serialize(); const benchmarkId = form.find('[name="result_benchmark"]').val(); $.post("/api/v1/result/add", formData, function (response) { if (response === "success") { fetchTestBenchmarkResults(testId, benchmarkId); form[0].reset(); } }); }); async function fetchTestBenchmarkResults(testId, benchmarkId) { try { const benchmarkSearchParams = new URLSearchParams({ benchmark_id: benchmarkId, }); const benchmarkRes = await fetch( `/api/v1/benchmark/details?${benchmarkSearchParams}`, ); const benchmarkData = await benchmarkRes.json(); const resultSearchParams = new URLSearchParams({ test_id: testId, benchmark_id: benchmarkId, }); const resultRes = await fetch(`/api/v1/result/list?${resultSearchParams}`); const resultData = await resultRes.json(); let avg_total = 0; let min_total = 0; let max_total = 0; for (const result of resultData) { avg_total += result.avgScore; if (result.minScore !== undefined) min_total += result.minScore; if (result.maxScore !== undefined) max_total += result.maxScore; } const tableRow = $(`#results-table tr[data-benchmark-id=${benchmarkId}]`); tableRow.empty(); tableRow.append( '' + benchmarkData.name + "", ); tableRow.append("" + benchmarkData.scoring + ""); tableRow.append("" + resultData.length + ""); if (resultData.length !== 0) { tableRow.append("" + avg_total / resultData.length + ""); } else { tableRow.append("N/a"); } if (min_total !== 0) { tableRow.append("" + min_total / resultData.length + ""); tableRow.append("" + max_total / resultData.length + ""); } else { tableRow.append("N/a"); tableRow.append("N/a"); } } catch (error) { console.error("An error occurred while fetching benchmark results.", error); } } $(document).ready(function() { $("#results-table tbody tr").each(function (index, tr) { const benchmarkId = $(tr).data("benchmark-id"); console.log("Fetching results for benchmark id: " + benchmarkId); fetchTestBenchmarkResults(testId, benchmarkId); }); });