/** * @param Entity\Subscriber $subscriber * @param Entity\Campaign $campaign * * @return bool */ public function handlePost(Entity\Subscriber $subscriber, Entity\Campaign $campaign) { $form = $this->getForm(); if (!$this->request->isPost()) { return false; } $form->setData($this->request->getPost()); if (!$form->isValid()) { return false; } $subscriber->populate($form->getData()); if (!$subscriber->hasCampaign($campaign)) { $subscriber->addCampaign($campaign); } $systemMessage = $this->messageRepository->getSystemMessage($campaign->getId()); $this->queueMessage($subscriber, $systemMessage); return $this->saveEntity($subscriber); }