src/App/Controller/Api/CubageLivraisonController.php line 51

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Api;
  3. use App\Controller\AbstractController;
  4. use App\Entity\CubageLivraison;
  5. use App\Entity\Livraison;
  6. use App\Model\Enum\AccessControl;
  7. use App\Traits\Autowired\Manager\CubageLivraisonManagerTrait;
  8. use GollumSF\RestBundle\Annotation\Serialize;
  9. use GollumSF\RestBundle\Annotation\Unserialize;
  10. use GollumSF\RestBundle\Annotation\Validate;
  11. use GollumSF\RestDocBundle\Annotation\ApiDescribe;
  12. use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
  13. use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException;
  14. use Symfony\Component\Routing\Annotation\Route;
  15. /**
  16.  * @Route("/api/cubage-livraisons")
  17.  * @ApiDescribe(CubageLivraison::class)
  18.  */
  19. class CubageLivraisonController extends AbstractController {
  20.     use CubageLivraisonManagerTrait;
  21.     /**
  22.      * @Route("", methods="GET", requirements={"livraison"="\d+"})
  23.      * @IsGranted(AccessControl::API_GET_CUBAGELIVRAISON, subject="current_user")
  24.      * @Serialize(groups="cubageLivraison_getc")
  25.      * @ApiDescribe(
  26.      *     request={
  27.      *         "parameters"={
  28.      *             "filters"={
  29.      *                 "in"="query",
  30.      *                 "required"=false,
  31.      *                 "type"="string",
  32.      *                 "example"="{""boisType"":[],""boisQuality"":[],""boisSize"":[],""marquage"":[],""volumeInner"":{""min"":0,""max"":0},""volumeOutter"":{""min"":0,""max"":0},""coef"":{""min"":0,""max"":0}}"
  33.      *             }
  34.      *         }
  35.      *     }
  36.      * )
  37.      */
  38.     public function list() {
  39.         return $this->cubageLivraisonManager->apiFindBy();
  40.     }
  41.     
  42.     /**
  43.      * @Route("/{id}", methods="GET", requirements={"id"="\d+"})
  44.      * @IsGranted(AccessControl::API_GET_CUBAGELIVRAISON, subject="current_user")
  45.      * @Serialize(groups="cubageLivraison_get")
  46.      */
  47.     public function find(CubageLivraison $cubageLivraison) {
  48.         return $cubageLivraison;
  49.     }
  50.     /**
  51.      * @Route("", methods="POST")
  52.      * @IsGranted(AccessControl::API_POST_CUBAGELIVRAISON, subject="current_user")
  53.      * @Unserialize("cubageLivraison", groups="cubageLivraison_post", save=false)
  54.      * @Validate({ "cubageLivraison_post" })
  55.      * @Serialize(groups="cubageLivraison_get")
  56.      *
  57.      */
  58.     public function post(CubageLivraison $cubageLivraison) {
  59.         /*if ($cubageLivraison->getLivraison()->getPurchase()) {
  60.             throw new AccessDeniedHttpException();
  61.         }*/
  62.         return $this->cubageLivraisonManager->update($cubageLivraison);
  63.     }
  64.     /**
  65.      * @Route("/{id}", methods="PUT", requirements={"id"="\d+"})
  66.      * @IsGranted(AccessControl::API_PUT_CUBAGELIVRAISON, subject="current_user")
  67.      * @Unserialize("cubageLivraison", groups="cubageLivraison_put", save=false)
  68.      * @Validate({ "cubageLivraison_put" })
  69.      * @Serialize(groups="cubageLivraison_get")
  70.      *
  71.      */
  72.     public function put(CubageLivraison $cubageLivraison) {
  73.         /*if ($cubageLivraison->getLivraison()->getPurchase()) {
  74.             throw new AccessDeniedHttpException();
  75.         }*/
  76.         return $this->cubageLivraisonManager->update($cubageLivraison);
  77.     }
  78.     /**
  79.      * @Route("/{id}", methods="DELETE", requirements={"id"="\d+"})
  80.      * @IsGranted(AccessControl::API_DELETE_CUBAGELIVRAISON, subject="current_user")
  81.      * @Serialize(groups="cubageLivraison_get")
  82.      *
  83.      */
  84.     public function delete(CubageLivraison $cubageLivraison) {
  85.         /*if ($cubageLivraison->getLivraison()->getPurchase()) {
  86.             throw new AccessDeniedHttpException();
  87.         }*/
  88.         return $this->cubageLivraisonManager->delete($cubageLivraison);
  89.     }
  90.     
  91.     /**
  92.      * @Route("/affecter_numfacture/{id}/{numfacture}", methods="PUT", requirements={"id"="\d+"})
  93.      * @IsGranted(AccessControl::API_PUT_CUBAGELIVRAISON, subject="current_user")
  94.      * @Serialize(groups="cubageLivraison_get")
  95.      *
  96.      */
  97.     public function affecter_numfacture(CubageLivraison $cubageLivraisonString $numfacture) {
  98.         return $this->cubageLivraisonManager->affecter_numfacture($cubageLivraison$numfacture);
  99.     }
  100. }