taurus-api/src/App/Action/TspInfoAction.php

74 lines
2.5 KiB
PHP
Raw Normal View History

<?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;
class TspInfoAction implements ServerMiddlewareInterface
{
/**
* @var VacationInfoCollectorService
*/
private $vacationInfoCollectorService;
/**
* @var TrInfoCollectorService
*/
private $trInfoCollectorService;
/**
* @var JcatInfoCollectorService
*/
private $jcatInfoCollectorService;
/**
* @var LabInfoCollectorService
*/
private $labInfoCollectorService;
/**
* @var JiraCollectorService
*/
private $jiraCollectorService;
public function __construct(VacationInfoCollectorService $vacationInfoCollectorService,
TrInfoCollectorService $trInfoCollectorService,
JcatInfoCollectorService $jcatInfoCollectorService,
LabInfoCollectorService $labInfoCollectorService,
JiraCollectorService $jiraCollectorService)
{
$this->vacationInfoCollectorService = $vacationInfoCollectorService;
$this->trInfoCollectorService = $trInfoCollectorService;
$this->jcatInfoCollectorService = $jcatInfoCollectorService;
$this->labInfoCollectorService = $labInfoCollectorService;
$this->jiraCollectorService = $jiraCollectorService;
}
/**
* @param ServerRequestInterface $request
* @param DelegateInterface $delegate
* @return JsonCorsResponse
* @todo lab temperature data
*/
public function process(ServerRequestInterface $request, DelegateInterface $delegate)
{
return new JsonCorsResponse([
'animGifs' => [],
'praGoals' => $this->trInfoCollectorService->getPraGoals(),
'trProgress' => $this->trInfoCollectorService->getProgressInfo(),
'trFlow' => $this->jcatInfoCollectorService->getTrFlow(),
'expedites' => $this->jiraCollectorService->getExpedites(),
'vacationInfo' => $this->vacationInfoCollectorService->isVacationSoon(),
'labTemperature' => $this->labInfoCollectorService->getLabTemperatureData(),
]);
}
}