public function setItemFailed(MailQueueItem $mailQueueItem) { $filter = new MailQueueItemStateFilter(); $filter->setStateError(); $errorMailItemState = $this->mailQueueItemStateRepository->fetchSingle($filter); $mailQueueItem->setState($errorMailItemState); $this->mailQueueRepository->save($mailQueueItem); }
/** * @SuppressWarnings(PMD.CyclomaticComplexity) * @SuppressWarnings(PMD.NPathComplexity) * @SuppressWarnings(PMD.ExcessiveMethodLength) */ private function createQueryBuilder(MailQueueItemStateFilter $filter) { $queryBuilder = $this->entityManager->createQueryBuilder()->select('mailQueueItemState')->from(MailQueueItemState::class, 'mailQueueItemState'); $states = array(); if ($filter->getStateQueued()) { $states[] = MailQueueItemState::ID_QUEUED; } if ($filter->getStateSending()) { $states[] = MailQueueItemState::ID_SENDING; } if ($filter->getStateSent()) { $states[] = MailQueueItemState::ID_SENT; } if ($filter->getStateRetry()) { $states[] = MailQueueItemState::ID_RETRY; } if ($filter->getStateError()) { $states[] = MailQueueItemState::ID_ERROR; } if ($states) { $queryBuilder->andWhere('mailQueueItemState.id IN (:ids)')->setParameter('ids', $states); } return $queryBuilder; }