src/Controller/Backend/UserController.php line 27

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Backend;
  3. use App\Entity\User;
  4. use Doctrine\ORM\QueryBuilder;
  5. use Symfony\Component\HttpFoundation\Request;
  6. use Symfony\Component\HttpFoundation\Response;
  7. use FOS\RestBundle\Controller\Annotations as Rest;
  8. use FOS\RestBundle\View\View;
  9. use App\Annotation\PermissionAdmin;
  10. use App\Service\UserService;
  11. use App\Annotation\Log;
  12. use App\Service\CommonService;
  13. /**
  14.  * @Rest\Route("/api/user")
  15.  */
  16. class UserController extends BaseController
  17. {
  18.     /**
  19.      * @Rest\Get("/list")
  20.      * @PermissionAdmin
  21.      * @return View
  22.      */
  23.     public function getList(Request $request): View
  24.     {
  25.         $extraFilter = function ($queryBuilder) {
  26.             /** @var QueryBuilder $queryBuilder */
  27.             $queryBuilder
  28.                 ->join('User.subRoles''subRoles')
  29.                 ->andWhere('subRoles.id not in (:listRolesNotAdmin) AND subRoles.id <> :superAdminRole')
  30.                 ->setParameter('listRolesNotAdmin'User::getListRoleIdsThatNotAdmin())
  31.                 ->setParameter('superAdminRole'User::ROLE_ADMINISTRATOR_SUPER);
  32.         };
  33.         return View::create(
  34.             $this->currentRepo->getList($request'App\DTO\User\UserListOutput'$extraFilter),
  35.             Response::HTTP_OK
  36.         );
  37.     }
  38.     /**
  39.      * @Rest\Get("/{id}")
  40.      * @PermissionAdmin
  41.      * @return View
  42.      */
  43.     public function getOne($id): View
  44.     {
  45.         return View::create($this->currentService->getOneById($id), Response::HTTP_OK);
  46.     }
  47.     /**
  48.      * @Rest\Post("")
  49.      * @PermissionAdmin
  50.      * @Log
  51.      * @return View
  52.      */
  53.     public function add(Request $requestUserService $userService): View
  54.     {
  55.         return View::create($this->currentService->addUserAdministratorFunctional($request), Response::HTTP_OK);
  56.     }
  57.     /**
  58.      * @Rest\Post("/update")
  59.      * @PermissionAdmin
  60.      * @Log
  61.      * @return View
  62.      */
  63.     public function update(Request $request): View
  64.     {
  65.         return View::create($this->currentService->updateUserAdministratorFunctional($request), Response::HTTP_OK);
  66.     }
  67.     /**
  68.      * @Rest\Post("/update-status")
  69.      * @PermissionAdmin
  70.      * @Log
  71.      * @return View
  72.      */
  73.     public function updateStatus(Request $request): View
  74.     {
  75.         return View::create($this->currentService->updateStatusUser($request), Response::HTTP_OK);
  76.     }
  77.     /**
  78.      * @Rest\Delete("/{id}")
  79.      * @PermissionAdmin
  80.      * @Log
  81.      * @return View
  82.      */
  83.     public function delete(int $id): View
  84.     {
  85.         return View::create(['result' => $this->currentService->delete($id)], Response::HTTP_OK);
  86.     }
  87. }