partkeepr

fork of partkeepr
git clone https://git.e1e0.net/partkeepr.git
Log | Files | Refs | Submodules | README | LICENSE

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 }