taurus-api/src/App/Action/TspInfoAction.php
2017-09-08 09:44:30 +02:00

82 lines
2.7 KiB
PHP

<?php
namespace App\Action;
use App\Response\JsonCorsResponse;
use App\Service\JcatInfoCollectorService;
use App\Service\JiraCollectorService;
use App\Service\LabInfoCollectorService;
use App\Service\TrInfoCollectorService;
use App\Service\VacationInfoCollectorService;
use Interop\Http\ServerMiddleware\DelegateInterface;
use Interop\Http\ServerMiddleware\MiddlewareInterface as ServerMiddlewareInterface;
use Psr\Http\Message\ServerRequestInterface;
use Zend\Config\Config;
class TspInfoAction implements ServerMiddlewareInterface
{
/**
* @var Config
*/
private $config;
/**
* @var VacationInfoCollectorService
*/
private $vacationInfoCollectorService;
/**
* @var TrInfoCollectorService
*/
private $trInfoCollectorService;
/**
* @var JcatInfoCollectorService
*/
private $jcatInfoCollectorService;
/**
* @var LabInfoCollectorService
*/
private $labInfoCollectorService;
/**
* @var JiraCollectorService
*/
private $jiraCollectorService;
public function __construct(Config $config,
VacationInfoCollectorService $vacationInfoCollectorService,
TrInfoCollectorService $trInfoCollectorService,
JcatInfoCollectorService $jcatInfoCollectorService,
LabInfoCollectorService $labInfoCollectorService,
JiraCollectorService $jiraCollectorService)
{
$this->config = $config;
$this->vacationInfoCollectorService = $vacationInfoCollectorService;
$this->trInfoCollectorService = $trInfoCollectorService;
$this->jcatInfoCollectorService = $jcatInfoCollectorService;
$this->labInfoCollectorService = $labInfoCollectorService;
$this->jiraCollectorService = $jiraCollectorService;
}
/**
* @param ServerRequestInterface $request
* @param DelegateInterface $delegate
* @return JsonCorsResponse
*/
public function process(ServerRequestInterface $request, DelegateInterface $delegate)
{
return new JsonCorsResponse([
'cameraUrls' => $this->config->get('url.eurestCameras')->toArray(),
'animGifs' => [],
'praGoals' => $this->trInfoCollectorService->getPraGoals(),
'trProgressInfo' => $this->trInfoCollectorService->getProgressInfo(),
'trFlowErrors' => $this->jcatInfoCollectorService->getTrFlowErrors(),
'expedites' => $this->jiraCollectorService->getExpedites(),
'isVacationSoon' => $this->vacationInfoCollectorService->isVacationSoon(),
'labTemperature' => $this->labInfoCollectorService->getLabTemperatureData(),
]);
}
}