diff --git a/src/Service/RedmineService.php b/src/Service/RedmineService.php index 14a2709..5df4999 100644 --- a/src/Service/RedmineService.php +++ b/src/Service/RedmineService.php @@ -175,7 +175,9 @@ class RedmineService public function majProjectIssues(Project $project, string $apiKey, bool $force = false) { $rissues = $this->getProjectIssues($project->getId(), $apiKey, $force ? null : $project->getUpdateAt()); + $rissueids = []; foreach ($rissues as $rissue) { + array_push($rissueids, $rissue['id']); $issue = $this->issueRepository->find($rissue['id']); if (!$issue) { $issue = new Issue(); @@ -227,6 +229,15 @@ class RedmineService $this->em->flush(); } + + if ($force) { + foreach ($project->getIssues() as $issue) { + if (!in_array($issue->getId(), $rissueids)) { + $this->em->remove($issue); + $this->em->flush(); + } + } + } } public function getProjectIssues(int $projectId, string $apiKey, ?\DateTimeInterface $updatedSince = null): array