Leviathan/src/routes/api_v1.js

64 lines
1.6 KiB
JavaScript

const Benchmark = require('../models').models.Benchmark;
const Result = require('../models').models.Result;
const Test = require('../models').models.Test;
// GET /api/v1/benchmark/details
exports.getBenchmarkDetails = async function(req, res) {
try {
const benchmark = await Benchmark.findByPk(req.query.benchmark_id);
if (!benchmark) {
return res.status(404).json({
error: 'Benchmark not found.'
})
}
res.json(benchmark);
} catch (err) {
res.status(500).json({
error: 'Internal server error occurred while fetching benchmark details.'
});
}
};
// GET /api/v1/result/list - list of results for a test
exports.getResultList = async function(req, res) {
try {
var results = await Result.findAll({
where: {
TestId: req.query.test_id,
BenchmarkId: req.query.benchmark_id
}
});
res.json(results);
} catch (err) {
res.status(500).json({
error: 'Internal server error occurred while fetching benchmark results.'
});
}
};
// POST /api/v1/result/add - add a benchmark result to the database
exports.postResultAdd = async function(req, res) {
try {
const result = await Result.create({
avgScore: req.body.result_avg,
minScore: req.body.result_min,
maxScore: req.body.result_max
});
let benchmark = await Benchmark.findByPk(req.body.result_benchmark);
result.setBenchmark(benchmark);
let test = await Test.findByPk(req.body.result_test);
result.setTest(test);
res.json('success');
} catch (err) {
res.status(500).json({
error: 'Internal server error occurred while adding result.'
});
}
};