Updated the reports page to use the new API endpoints
This commit is contained in:
		| @@ -1,15 +1,19 @@ | ||||
| $ -> | ||||
|   console.log('ready.') | ||||
|  | ||||
|   $('#report-benchmarks').on('change', -> | ||||
|     url = '/api/benchmark/' + $('#report-benchmarks').val() + '/tests' | ||||
|     $.get(url, (data) -> | ||||
|   $('#report-benchmarks').on 'change', -> | ||||
|     try | ||||
|       benchmarkSearchParams = new URLSearchParams | ||||
|         benchmark_id: $('#report-benchmarks').val() | ||||
|       benchmarkRes = await fetch("/api/v1/benchmark/tests?#{benchmarkSearchParams}") | ||||
|       benchmarkData = await benchmarkRes.json() | ||||
|  | ||||
|       # clear old contents from the selector | ||||
|       $('#report-tests').empty() | ||||
|       # add new elements to the selector | ||||
|       addOption(test) for test in data | ||||
|     ) | ||||
|   ) | ||||
|       addOption(test) for test in benchmarkData | ||||
|     catch error | ||||
|       console.error 'An error occurred while fetching benchmark results.', error | ||||
|  | ||||
| addOption = (test) -> | ||||
|   $('#report-tests').append( | ||||
|   | ||||
| @@ -22,7 +22,8 @@ class ApiController extends Controller { | ||||
|   } | ||||
|  | ||||
|   public function getBenchmarkTests(Request $request, Response $response, array $args): Response { | ||||
|     $benchmark = Benchmark::where('id', $args['benchmark_id'])->first(); | ||||
|     $urlParams = $request->getQueryParams(); | ||||
|     $benchmark = Benchmark::where('id', $urlParams['benchmark_id'])->first(); | ||||
|  | ||||
|     $payload = json_encode($benchmark->tests); | ||||
|  | ||||
|   | ||||
| @@ -1,37 +0,0 @@ | ||||
| <?php | ||||
|  | ||||
| namespace BitGoblin\Colossus\Controllers; | ||||
|  | ||||
| use Psr\Http\Message\ResponseInterface as Response; | ||||
| use Psr\Http\Message\ServerRequestInterface as Request; | ||||
| use Slim\Routing\RouteContext; | ||||
| use Slim\Views\Twig; | ||||
| use BitGoblin\Colossus\Models\Result; | ||||
| use BitGoblin\Colossus\Models\Test; | ||||
|  | ||||
| class ResultController extends Controller { | ||||
|  | ||||
|   public function postAdd(Request $request, Response $response): Response { | ||||
|     $params = (array)$request->getParsedBody(); | ||||
|  | ||||
|     $result = new Result; | ||||
|     $result->test_id = $params['result_test']; | ||||
|     $result->component_id = $params['result_component']; | ||||
|     $result->benchmark_id = $params['result_benchmark']; | ||||
|     $result->average = $params['result_avg']; | ||||
|     $result->minimum = $params['result_min'] ?? null; | ||||
|     $result->maximum = $params['result_max'] ?? null; | ||||
|  | ||||
|     $result->save(); | ||||
|  | ||||
|     // redirect the user back to the home page | ||||
|     $routeContext = RouteContext::fromRequest($request); | ||||
|     $routeParser = $routeContext->getRouteParser(); | ||||
|     return $response | ||||
|       ->withHeader('Location', $routeParser->urlFor('test.view', [ | ||||
|         'test_id' => $result->test_id | ||||
|       ])) | ||||
|       ->withStatus(302); | ||||
|   } | ||||
|  | ||||
| } | ||||
| @@ -27,10 +27,6 @@ $app->group('/test', function(RouteCollectorProxy $group) { | ||||
|   $group->get('/{test_id}', '\\BitGoblin\\Colossus\\Controllers\\TestController:getView')->setName('test.view'); | ||||
| }); | ||||
|  | ||||
| $app->group('/result', function(RouteCollectorProxy $group) { | ||||
|   $group->post('/add', '\\BitGoblin\\Colossus\\Controllers\\ResultController:postAdd')->setName('result.add'); | ||||
| }); | ||||
|  | ||||
| $app->group('/reports', function(RouteCollectorProxy $group) { | ||||
|   $group->get('/generate', '\\BitGoblin\\Colossus\Controllers\ReportController:getGenerate')->setName('reports.generate'); | ||||
| }); | ||||
|   | ||||
| @@ -14,7 +14,7 @@ | ||||
|  | ||||
|   <div class="row"> | ||||
|     <div class="twelve columns"> | ||||
|       <form id="result-form" class="u-full-width" action="{{ url_for('result.add') }}" method="POST"> | ||||
|       <form id="result-form" class="u-full-width" action="{{ url_for('api.resultAdd') }}" method="POST"> | ||||
|         <div class="row"> | ||||
|           <div class="four columns"> | ||||
|             <select class="u-full-width" name="result_benchmark"> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user