Example #1
0
 /**
  * @Extra\Route("/update/body/{id}", name="weaving_the_web_dashboard_debug_update_body")
  * @Extra\Template("WeavingTheWebDashboardBundle:Mail:Debug/update_body.html.twig")
  */
 public function updateBodyAction(Message $message, Request $request)
 {
     /** @var \WeavingTheWeb\Bundle\MailBundle\Storage\GmailAwareImap $storage */
     $storage = $this->get('weaving_the_web_mail.storage.imap');
     $body = $storage->fetchBodyByUid($message->getHeader()->getImapUid());
     $message->setHtmlBody($body);
     /** @var \WeavingTheWeb\Bundle\MailBundle\Parser\EmailParser $emailParser */
     $emailParser = $this->get('weaving_the_web_mail.parser.email');
     $emailParser->encodeMessageHTMLBody($message);
     $entityManager = $this->getDoctrine()->getManager();
     $entityManager->persist($message);
     $entityManager->flush();
     if ($request->query->get('referrer')) {
         $requestUri = urldecode($request->query->get('referrer'));
         return new RedirectResponse($request->getSchemeAndHttpHost() . $requestUri);
     }
     return ['message_id' => $message->getId()];
 }
Example #2
0
 /**
  * @Extra\Route(
  *      "/move-to-spam/{id}",
  *      name="weaving_the_web_dashboard_mail_move_to_spam",
  *      requirements={"id" = "\d+"},
  * )
  * @Extra\Method({"POST"})
  *
  * @param Message $message
  * @return Response
  */
 public function moveToSpam(Message $message)
 {
     $message->reportAsSpam();
     /** @var \Doctrine\ORM\EntityManager $entityManager */
     $entityManager = $this->getDoctrine()->getManager();
     /** @var \WeavingTheWeb\Bundle\MailBundle\Storage\GmailAwareImap $storage */
     $storage = $this->get('weaving_the_web_mail.storage.imap');
     try {
         $storage->moveToSpam($message->getHeader()->getImapUid());
     } catch (InvalidSequenceNumber $exception) {
         $message->setSequenceNumberUnavailable(true);
         $message->reportAsSpam(true);
         $this->get('logger')->error($exception->getMessage());
     } catch (\Exception $exception) {
         return new Response(sprintf('Could not move message with id #%d to spam', $message->getId()), 400);
     }
     $entityManager->persist($message);
     $entityManager->flush();
     $collapsedMailsUrl = $this->generateUrl('weaving_the_web_dashboard_mail_show_collapsed_mails');
     return new RedirectResponse($collapsedMailsUrl);
 }