src/Controller/Api/Prive/ApiVilleController.php line 115

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Api\Prive;
  3. use App\Entity\Ville;
  4. use App\Entity\Prospect;
  5. use Symfony\Component\HttpFoundation\JsonResponse;
  6. use Symfony\Component\HttpFoundation\Request;
  7. use Symfony\Component\Routing\Annotation\Route;
  8. /**
  9.  * @Route("/ville")
  10.  */
  11. class ApiVilleController extends ApiController
  12. {
  13.     /**
  14.      * @Route("/{id}", name="api_Ville_getById", methods={"GET"})
  15.      * @param int $id
  16.      * @return JsonResponse
  17.      */
  18.     public function getById(int $id)
  19.     {
  20.         if ( $id 0) {
  21.             $ville $this->em->getRepository(Ville::class)->find($id);
  22.             if ($ville) {
  23.                 return $this->apiOk($ville);
  24.             }
  25.         }
  26.         return $this->apiKo("Ville non trouvé !!");
  27.     }
  28.     /**
  29.      * @Route("/{id}", name="api_Ville_delete", methods={"DELETE"})
  30.      * @param int $id
  31.      * @return JsonResponse
  32.      */
  33.     public function delete(int $id)
  34.     {
  35.         if ($id 0) {
  36.              $ville $this->em->getRepository(Ville::class)->find($id);
  37.             // 1 - Chercher si le codenaf n'est pas liee à un prospect
  38.             $prospect $this->em->getRepository(Prospect::class)->findBy(["ville" => $id]);
  39.             if($prospect){
  40.                 // Suppression Logique
  41.                 $ville->setActive(2);
  42.                 $this->em->persist($ville);
  43.                 $this->em->flush();
  44.                 return $this->apiOk($id);
  45.             }else
  46.             {
  47.                 try {
  48.                     return $this->removeElement($ville);
  49.                 } catch (\Exception $e) {
  50.                     return $this->apiKo($e->getMessage());
  51.                 }
  52.             }
  53.         }
  54.         return $this->apiKo("Ville non trouvé !!");
  55.     }
  56.     /**
  57.      * @Route("/", name="api_Ville_save", methods={"POST"})
  58.      * @param Request $request
  59.      * @return JsonResponse
  60.      */
  61.     public function save(Request $request)
  62.     {
  63.         $data json_decode($request->getContent(), true);
  64.         $ville = new Ville();
  65.         if (isset($data['id'])) {
  66.             $ville $this->em->getRepository(Ville::class)->find($data['id']);
  67.         }
  68.         if (isset($data['libelle'])) {
  69.             $ville->setLibelle($data['libelle']);
  70.         }
  71.         if (isset($data['pays'])) {
  72.             $ville->setPays($data['pays']);
  73.         }
  74.         if (isset($data['active'])) {
  75.             $ville->setActive($data['active']);
  76.         }
  77.         if (isset($data['codepostal'])) {
  78.             $ville->setCodepostal($data['codepostal']);
  79.         }
  80.         try {
  81.             return $this->saveElement($ville);
  82.         } catch (\Exception $e) {
  83.             return $this->apiKo($e->getMessage());
  84.         }
  85.     }
  86.     /**
  87.      * @Route("/find", name="api_Ville_find", methods={"POST"})
  88.      * @param Request $request
  89.      * @return JsonResponse
  90.      */
  91.     public function find(Request $request)
  92.     {
  93.         $data json_decode($request->getContent(), true);
  94.         $data['filter']['and']['ville.active'] = ' <> 2 '// ne pas affichier les elements supprimé logiquement
  95.         $sql "
  96.             SELECT ville 
  97.             FROM " Ville::class . " ville
  98.         ";
  99.         return $this->findElementsWithJoin($sql$data);
  100.     }
  101. }