* url parameter options added

This commit is contained in:
Dávid Danyi 2017-09-15 14:00:38 +02:00
parent 336fd6acc5
commit c40e39c4ad
3 changed files with 11 additions and 6 deletions

View File

@ -27,5 +27,6 @@
*/
$app->get('/', App\Action\HomePageAction::class, 'home');
$app->get('/{jiraQueryName}[/{filterId:\d+}]', App\Action\HomePageAction::class, 'home.params');
$app->get('/api/ping', App\Action\PingAction::class, 'api.ping');
$app->get('/api/dbg', App\Action\DbgAction::class, 'api.dbg');

View File

@ -23,8 +23,10 @@ class HomePageAction implements ServerMiddlewareInterface
public function process(ServerRequestInterface $request, DelegateInterface $delegate)
{
$queryName = $request->getAttribute('jiraQueryName', 'default');
$filterId = $request->getAttribute('filterId');
$data = [
'chartRows' => $this->jiraService->getChartData(),
'chartRows' => $this->jiraService->getChartData($queryName, $filterId),
];
return new HtmlResponse($this->template->render('app::home-page', $data));

View File

@ -33,9 +33,9 @@ class JiraCollectorService
$this->config = $config;
}
public function getChartData()
public function getChartData(string $queryName, $filterId)
{
$supportTickets = $this->getSupportJiraTickets();
$supportTickets = $this->getSupportJiraTickets($queryName, $filterId);
$openTickets = array_values(array_filter($supportTickets, function(JiraIssue $ticket){
return $ticket->getResolvedAt() === null;
}));
@ -63,16 +63,18 @@ class JiraCollectorService
}
/**
* @param string $queryName
* @param $filterId
* @return array|null
*/
public function getSupportJiraTickets(): ?array
public function getSupportJiraTickets(string $queryName, $filterId): ?array
{
$user = $this->config->get('jira.user');
$password = $this->config->get('jira.password');
$jiraResultUrl = $this->config->get('jira.query');
$jiraResultUrl = $this->config->get(sprintf('jira.query.%s', $queryName));
$response = $this->httpClient
->setUri($jiraResultUrl)
->setUri($filterId ? sprintf($jiraResultUrl, $filterId) : $jiraResultUrl)
->setAuth($user, $password)
->send();