38 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?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);
 | 
						|
  }
 | 
						|
 | 
						|
}
 |