src/Hona/ApiBundle/Controller/ResidentialController.php line 30

Open in your IDE?
  1. <?php
  2. namespace Hona\ApiBundle\Controller;
  3. use Symfony\Bundle\FrameworkBundle\Controller\Controller;
  4. use Symfony\Component\Routing\Annotation\Route;
  5. use Symfony\Component\HttpFoundation\Request;
  6. use Symfony\Component\HttpFoundation\JsonResponse;
  7. class ResidentialController extends EntityController
  8. {
  9.     protected $required = array("name");
  10.     protected function _validateAfterGET(Request $request$entity$uuid, &$data$clean){
  11.         if($entity == "access_history"){
  12.             $this->_changeIdForEntity("address"$data$clean);
  13.         }
  14.     }
  15.     protected function _validateBeforePOST(Request $request$entity, &$data){
  16.         if(!isset($data["status"])){
  17.             $data["status"] = Utils::ACTIVE;
  18.         }
  19.     }
  20.     /**
  21.      * @Route("/residential/{uuid}/providers", name="residential_get_uuid_providers", methods={"GET"})
  22.      * @param $request
  23.      */
  24.     public function residentialProvidersGETAction(Request $request$uuid)
  25.     {
  26.         $dataReturn = array(
  27.             array("v"=>1"k"=>"Otro"),
  28.             array("v"=>2"k"=>"Uber"),
  29.             array("v"=>3"k"=>"Uber Eats"),
  30.             array("v"=>4"k"=>"Rappi"),
  31.             array("v"=>5"k"=>"Sin Delantal"),
  32.             array("v"=>6"k"=>"Didi"),
  33.             array("v"=>7"k"=>"CornerShop")
  34.         );
  35.         return new JsonResponse($dataReturn);
  36.     }
  37.     /**
  38.      * @Route("/residential/{uuid}/tree", name="residential_get_uuid_tree", methods={"GET"})
  39.      * @param $request
  40.      */
  41.     public function residentialTreeGETAction(Request $request$uuid)
  42.     {
  43.         $dataReturn $this->_listEntitiesByRelationshipFieldGET($request"address""residential""uuid"$uuidnulltrue);
  44.         if(is_array($dataReturn)){
  45.             $tree = array();
  46.             $returnTree = array();
  47.             foreach ($dataReturn as $address) {
  48.                 if(!array_key_exists($address["street"], $tree)){
  49.                     $tree[$address["street"]] = array(
  50.                         "pos" => array_push(
  51.                             $returnTree, array(
  52.                                 "k" => $address["street"],
  53.                                 "g" => array()
  54.                             )
  55.                         ) - 1,
  56.                         "g" => array()
  57.                     );
  58.                 }
  59.                 if(empty($address["outdoor_number"])){
  60.                     $address["outdoor_number"] = "SN";
  61.                 }
  62.                 if(!array_key_exists($address["outdoor_number"], $tree[$address["street"]]["g"])){
  63.                     $tree[$address["street"]]["g"][$address["outdoor_number"]] = array(
  64.                         "pos" => array_push(
  65.                             $returnTree[$tree[$address["street"]]["pos"]]["g"], array(
  66.                                 "k" => $address["outdoor_number"],
  67.                                 "g" => array()
  68.                             )
  69.                         ) - 1,
  70.                         "g" => array()
  71.                     );
  72.                 }
  73.                 if(empty($address["interior_number"])){
  74.                     $address["interior_number"] = "SN";
  75.                 }
  76.                 if(!array_key_exists($address["interior_number"], $tree[$address["street"]]["g"][$address["outdoor_number"]]["g"])){
  77.                     $tree[$address["street"]]["g"][$address["outdoor_number"]]["g"][$address["interior_number"]] = $address["uuid"];
  78.                     array_push(
  79.                         $returnTree[$tree[$address["street"]]["pos"]]["g"][$tree[$address["street"]]["g"][$address["outdoor_number"]]["pos"]]["g"], array(
  80.                             "k" => $address["interior_number"],
  81.                             "v" => $address["uuid"]
  82.                         )
  83.                     );
  84.                 }
  85.             }
  86.             return new JsonResponse($returnTree);
  87.         }else{
  88.             return $dataReturn;
  89.         }
  90.     }
  91.     /**
  92.      * @Route("/residential/{uuid}/news/{type}/{size}/{page}", name="residential_get_uuid_news", methods={"GET"})
  93.      * @param $request
  94.      */
  95.     public function residentialNewsGETAction(Request $request$uuid$type 0$size 10$page 0)
  96.     {
  97.         $data $this->_entityGET($request"residential"$uuidnulltruefalse);
  98.         if(is_array($data)){
  99.             if(empty($type)){
  100.                 return $this->_listEntitiesByFunction($request"news""residential_id"$data["id"], array("date_published" => "DESC"), $size$page);
  101.             }else{
  102.                 return $this->_listEntitiesByFunction($request"news""residential_id_and_type", array(
  103.                     "residential_id" => $data["id"],
  104.                     "type" => $type
  105.                 ), array("date_published" => "DESC"), $size$page);
  106.             }
  107.             
  108.         }else{
  109.             return $data;
  110.         }
  111.     }
  112.     /**
  113.      * @Route("/residential/{uuid}/need/exit/{size}/{page}", name="residential_get_uuid_need_exit", methods={"GET"})
  114.      * @param $request
  115.      */
  116.     public function residentialNeedExitGETAction(Request $request$uuid$size 10$page 0)
  117.     {
  118.         $data $this->_entityGET($request"residential"$uuidnulltruefalse);
  119.         if(is_array($data)){
  120.             return $this->_listEntitiesByFunction($request"access_history""need_to_exit_from_residential_id"$data["id"], array(), $size$page);
  121.         }else{
  122.             return $data;
  123.         }
  124.     }
  125.     /**
  126.      * @Route("/residential/{uuid}", name="residential_get_uuid", methods={"GET"})
  127.      * @param $request
  128.      */
  129.     public function residentialGETAction(Request $request$uuid)
  130.     {
  131.         return $this->_entityGET($request"residential"$uuid);
  132.     }
  133.     /**
  134.      * @Route("/residential", name="residential_post_uuid", methods={"POST"})
  135.      * @param $request
  136.      */
  137.     public function residentialPOSTAction(Request $request)
  138.     {
  139.         return $this->_entityPOST($request"residential");
  140.     }
  141.     /**
  142.      * @Route("/residential/{uuid}", name="residential_put_uuid", methods={"PUT"})
  143.      * @param $request
  144.      */
  145.     public function residentialPUTAction(Request $request$uuid)
  146.     {
  147.         return $this->_entityPUT($request"residential"$uuid);
  148.     }
  149.     /**
  150.      * @Route("/residential/{uuid}", name="residential_delete_uuid", methods={"DELETE"})
  151.      * @param $request
  152.      */
  153.     public function residentialDELETEAction(Request $request$uuid)
  154.     {
  155.         return $this->_entityDELETE($request"residential"$uuid);
  156.     }
  157. }