MarkTipsAsUnreadAction.php (1292B)
1 <?php 2 3 namespace PartKeepr\TipOfTheDayBundle\Action; 4 5 use Doctrine\ORM\EntityManager; 6 use Dunglas\ApiBundle\Action\ActionUtilTrait; 7 use Dunglas\ApiBundle\Exception\RuntimeException; 8 use PartKeepr\AuthBundle\Services\UserService; 9 use Symfony\Component\HttpFoundation\Request; 10 use Symfony\Component\HttpFoundation\Response; 11 12 class MarkTipsAsUnreadAction 13 { 14 use ActionUtilTrait; 15 16 /** 17 * @var EntityManager 18 */ 19 private $entityManager; 20 21 /** 22 * @var UserService 23 */ 24 private $userService; 25 26 public function __construct(EntityManager $entityManager, UserService $userService) 27 { 28 $this->entityManager = $entityManager; 29 $this->userService = $userService; 30 } 31 32 /** 33 * Marks all tips as unread. 34 * 35 * @param Request $request The request 36 * 37 * @throws RuntimeException 38 * 39 * @return array|\Dunglas\ApiBundle\Model\PaginatorInterface|\Traversable 40 */ 41 public function __invoke(Request $request) 42 { 43 $dql = "DELETE FROM PartKeepr\TipOfTheDayBundle\Entity\TipOfTheDayHistory th WHERE th.user = :user"; 44 $query = $this->entityManager->createQuery($dql); 45 $query->setParameter('user', $this->userService->getUser()); 46 $query->execute(); 47 48 return new Response('OK'); 49 } 50 }