diff --git a/src/App/Service/JiraCollectorService.php b/src/App/Service/JiraCollectorService.php index 15aea1f..2c622b8 100755 --- a/src/App/Service/JiraCollectorService.php +++ b/src/App/Service/JiraCollectorService.php @@ -94,6 +94,7 @@ class JiraCollectorService if ($forceReload || null === $kanbanBoard) { $user = $this->config->get('jira.user'); $password = $this->config->get('jira.password'); + /** @var Config $kanbanBoardUriParams */ $kanbanBoardUri = $this->config->get('url.jiraKanbanBoard'); $kanbanBoardFilter = $this->config->get('jira.filterFields')->toArray(); @@ -141,11 +142,13 @@ class JiraCollectorService return $member['signum']; }, $team->getMembers()); $preparedMembers = sprintf('"%s"', implode('","', $members)); + $filter = sprintf( self::WATCH_FILTER, sprintf('"%s"', implode('","', self::IGNORED_STATUSES)), $preparedMembers, $preparedMembers ); + $user = $this->config->get('jira.user'); $password = $this->config->get('jira.password'); /** @var Config $kanbanBoardUriParams */ @@ -156,8 +159,8 @@ class JiraCollectorService 'comment', ]; $issueFields = implode(",", $kanbanBoardFilterFields); - $jiraIssueUri = sprintf($jiraWatchedIssues, $filter, $issueFields); + $jiraIssueUri = sprintf($jiraWatchedIssues, $filter, $issueFields); $response = $this->httpClient ->setUri($jiraIssueUri) ->setAuth($user, $password) @@ -171,7 +174,7 @@ class JiraCollectorService } $watchedIssues = $this->hydrateWatchedIssues(Decoder::decode($response->getBody(), Json::TYPE_ARRAY), $members); - $this->cache->setItem(sprintf("%s-%s", self::CACHE_KEY_KANBANBOARD, $teamName), serialize($watchedIssues)); + $this->cache->setItem(sprintf("%s-%s", self::CACHE_KEY_WATCHED, $teamName), serialize($watchedIssues)); return $watchedIssues; } return unserialize($watchedIssues); @@ -193,6 +196,7 @@ class JiraCollectorService $issueItem->setIssue($issueJson['key']) ->setAssignee($issueJson['fields']['assignee']['name']) ->setSummary(html_entity_decode($issueJson['fields']['summary'])); + $issueComments = []; foreach ($issueJson['fields']['comment']['comments'] as $commentJson) { $issueComment = new WatchedIssueComment(); @@ -202,12 +206,15 @@ class JiraCollectorService ->setDate(new \DateTimeImmutable($commentJson['updated'])); $issueComments[] = $issueComment; } + usort($issueComments, function(WatchedIssueComment $a, WatchedIssueComment $b) { return $a->getDate() <=> $b->getDate(); }); + $lastComment = array_pop($issueComments); unset($issueComments); $issueItem->setComment($lastComment); + $hydratedResult[] = $issueItem; }