src/App/Controller/Api/PrestationController.php line 156

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Api;
  3. use App\Controller\AbstractController;
  4. use App\Entity\Prestation;
  5. use App\Model\Enum\AccessControl;
  6. use App\Traits\Autowired\Manager\PrestationManagerTrait;
  7. use GollumSF\RestBundle\Annotation\Serialize;
  8. use GollumSF\RestBundle\Annotation\Unserialize;
  9. use GollumSF\RestBundle\Annotation\Validate;
  10. use GollumSF\RestDocBundle\Annotation\ApiDescribe;
  11. use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
  12. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security;
  13. use Symfony\Component\Routing\Annotation\Route;
  14. /**
  15.  * @Route("/api/prestations")
  16.  * @ApiDescribe(Prestation::class)
  17.  */
  18. class PrestationController extends AbstractController {
  19.     
  20.     use PrestationManagerTrait;
  21.     /**
  22.      * @Route("", methods="GET")
  23.      * @IsGranted(AccessControl::API_GET_PRESTATION, subject="current_user")
  24.      * @Serialize(groups="prestation_getc")
  25.      * @ApiDescribe(
  26.      *     collection=true,
  27.      *     request={
  28.      *         "parameters"={
  29.      *             "filters"={
  30.      *                 "in"="query",
  31.      *                 "required"=false,
  32.      *                 "type"="string",
  33.      *                 "example"="{""prestationType"":[],""remarques"":"""",""contrat"":[],""chantier"":[],""price"":{""min"":0,""max"":0},""tva"":{""min"":0,""max"":0}}"
  34.      *             }
  35.      *         }
  36.      *     }
  37.      * )
  38.      */
  39.     public function list() {
  40.         return $this->prestationManager->apiFindBy();
  41.     }
  42.     /**
  43.      * @Route("/{id}", methods="GET", requirements={"id"="\d+"})
  44.      * @IsGranted(AccessControl::API_GET_PRESTATION, subject="current_user")
  45.      * @Serialize(groups="prestation_get")
  46.      */
  47.     public function find(Prestation $prestation) {
  48.         return $prestation;
  49.     }
  50.     /**
  51.      * @Route("", methods="POST")
  52.      * @IsGranted(AccessControl::API_POST_PRESTATION, subject="current_user")
  53.      * @Unserialize("prestation", groups="prestation_post")
  54.      * @Validate({ "prestation_post" })
  55.      * @Serialize(groups="prestation_get")
  56.      *
  57.      */
  58.     public function post(Prestation $prestation) {
  59.         $this->prestationManager->calculMontantRegler($prestation);
  60.         return $prestation;
  61.     }
  62.     /**
  63.      * @Route("/{id}", methods="PUT", requirements={"id"="\d+"})
  64.      * @IsGranted(AccessControl::API_PUT_PRESTATION, subject="current_user")
  65.      * @Unserialize("prestation", groups="prestation_put")
  66.      * @Validate({ "prestation_put" })
  67.      * @Serialize(groups="prestation_get")
  68.      *
  69.      */
  70.     public function put(Prestation $prestation) {
  71.         $this->prestationManager->calculMontantRegler($prestation);
  72.         return $prestation;
  73.     }
  74.     /**
  75.      * @Route("/{id}/mark-PayPrepared", methods="PUT", requirements={"id"="\d+"})
  76.      * @IsGranted(AccessControl::API_PUT_PRESTATION, subject="current_user")
  77.      * @Serialize(groups="prestation_get")
  78.      *
  79.      */
  80.     public function putMarkPayPrepared(Prestation $prestation) {
  81.         return $this->prestationManager->MarkPayPrepared($prestation);
  82.     }
  83.     /**
  84.      * @Route("/{id}/mark-NotPayPrepared", methods="PUT", requirements={"id"="\d+"})
  85.      * @IsGranted(AccessControl::API_PUT_PRESTATION, subject="current_user")
  86.      * @Serialize(groups="prestation_get")
  87.      *
  88.      */
  89.     public function putMarkNotPayPrepared(Prestation $prestation) {
  90.         return $this->prestationManager->MarkNotPayPrepared($prestation);
  91.     }
  92.         /**
  93.      * @Route("/{id}/mark-paid", methods="PUT", requirements={"id"="\d+"})
  94.      * @IsGranted(AccessControl::API_PUT_PRESTATION, subject="current_user")
  95.      * @Serialize(groups="prestation_get")
  96.      *
  97.      */
  98.     public function putMarkPaid(Prestation $prestation) {
  99.         return $this->prestationManager->markPaid($prestation);
  100.     }
  101.     /**
  102.      * @Route("/{id}/mark-unpaid", methods="PUT", requirements={"id"="\d+"})
  103.      * @IsGranted(AccessControl::API_PUT_PRESTATION, subject="current_user")
  104.      * @Serialize(groups="prestation_get")
  105.      *
  106.      */
  107.     public function putMarkUnpaid(Prestation $prestation) {
  108.         return $this->prestationManager->markUnpaid($prestation);
  109.     }
  110.     /**
  111.      * @Route("/putdepositpaid/{idDeposit}", methods="PUT", requirements={"id"="\d+"})
  112.      * @IsGranted(AccessControl::API_PUT_PRESTATION, subject="current_user")
  113.      * @Serialize(groups="prestation_get")
  114.      *
  115.      */
  116.     public function putdepositpaid(string $idDeposit) {
  117.         return $this->prestationManager->putdepositpaid($idDeposit);
  118.     }
  119.     /**
  120.      * @Route("/putdepositunpaid/{idDeposit}", methods="PUT", requirements={"id"="\d+"})
  121.      * @IsGranted(AccessControl::API_PUT_PRESTATION, subject="current_user")
  122.      * @Serialize(groups="prestation_get")
  123.      *
  124.      */
  125.     public function putdepositunpaid(string $idDeposit) {
  126.         return $this->prestationManager->putdepositunpaid($idDeposit);
  127.     }
  128.     /**
  129.      * @Route("/{id}", methods="DELETE", requirements={"id"="\d+"})
  130.      * @IsGranted(AccessControl::API_DELETE_PRESTATION, subject="current_user")
  131.      * @Serialize(groups="prestation_get")
  132.      *
  133.      */
  134.     public function delete(Prestation $prestation) {
  135.         return $this->prestationManager->delete($prestation);
  136.     }
  137.     /**
  138.      * @Route("/maps/{contrat}/{commune}/{client}/{achat}/{bucheron}", methods="GET")
  139.      * @IsGranted(AccessControl::API_GET_PRESTATION, subject="current_user")
  140.      * @Serialize(groups="prestation_get")
  141.      */
  142.     public function fetchMaps(string $contratstring $communestring $clientstring $achatstring $bucheron) {
  143.         return $this->prestationManager->findForMap($contrat$commune$client$achat$bucheron);
  144.     }
  145.     /**
  146.      * @Route("/cubages_attentes", methods="GET")
  147.      * @IsGranted(AccessControl::API_GET_PRESTATION, subject="current_user")
  148.      * @Serialize(groups="prestation_get")
  149.      */
  150.     public function CubagesAttentes() {
  151.         return $this->prestationManager->CubagesAttentes();
  152.     }
  153.     /**
  154.      * @Route("/reglementsAttente", methods="GET")
  155.      * @IsGranted(AccessControl::API_GET_PRESTATION, subject="current_user")
  156.      * @Serialize(groups="prestation_get")
  157.      */
  158.     public function ReglementsAttente() {
  159.         return $this->prestationManager->ReglementsAttente();
  160.     }
  161. }