partkeepr

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

DeletePreferenceAction.php (1533B)


      1 <?php
      2 
      3 namespace PartKeepr\AuthBundle\Action;
      4 
      5 use Dunglas\ApiBundle\Action\ActionUtilTrait;
      6 use Dunglas\ApiBundle\Exception\RuntimeException;
      7 use PartKeepr\AuthBundle\Services\UserPreferenceService;
      8 use PartKeepr\AuthBundle\Services\UserService;
      9 use PartKeepr\CategoryBundle\Exception\RootNodeNotFoundException;
     10 use Symfony\Component\HttpFoundation\Request;
     11 
     12 /**
     13  * Returns the tree root node.
     14  */
     15 class DeletePreferenceAction
     16 {
     17     use ActionUtilTrait;
     18 
     19     /**
     20      * @var UserService
     21      */
     22     private $userService;
     23 
     24     /**
     25      * @var UserPreferenceService
     26      */
     27     private $userPreferenceService;
     28 
     29     public function __construct(
     30         UserService $userService,
     31         UserPreferenceService $userPreferenceService
     32     ) {
     33         $this->userService = $userService;
     34         $this->userPreferenceService = $userPreferenceService;
     35     }
     36 
     37     /**
     38      * Retrieves a collection of resources.
     39      *
     40      * @param Request $request
     41      *
     42      * @throws \Exception                                 If the format is invalid
     43      * @throws RuntimeException|RootNodeNotFoundException
     44      *
     45      * @return array|\Dunglas\ApiBundle\Model\PaginatorInterface|\Traversable
     46      */
     47     public function __invoke(Request $request)
     48     {
     49         $user = $this->userService->getUser();
     50 
     51         if ($request->request->has('preferenceKey')) {
     52             $this->userPreferenceService->deletePreference($user, $request->request->get('preferenceKey'));
     53         } else {
     54             throw new \Exception('Invalid format');
     55         }
     56     }
     57 }