src/Api/Helper/PaysHelper.php line 107

Open in your IDE?
  1. <?php
  2. namespace App\Api\Helper;
  3. use Symfony\Component\Yaml\Yaml;
  4. class PaysHelper {
  5.     protected $client;
  6.     protected $locale;
  7.     protected $rootdir;
  8.     public function __construct(\App\Api\ApiClient $client$locale$rootdir) {
  9.         $this->client $client;
  10.         $this->locale $locale;
  11.         $this->rootdir $rootdir;
  12.     }
  13.     public function getOneBySlug($slug) {
  14.         
  15.         /*(jb) liste des exceptions de slug */
  16.         $slugExceptionArray = [
  17.             "indonesia" => "indonesie",
  18.             "thailand" => "thailande",
  19.             "cambodia" => "cambodge",
  20.         ];
  21.         if(isset($slugExceptionArray[$slug])){
  22.             $slug $slugExceptionArray[$slug];
  23.         }
  24.         $pays $this->client->get('/pays/' $slug);
  25.         
  26.         if (!empty($pays)) {
  27.             return $pays[0];
  28.         }
  29.         return null;
  30.         
  31.     }
  32.     
  33.     public function getAll($sort null$direction null$limit null$offset null) {
  34.         
  35.         $param '';
  36.         $param .= $sort '&sort=' $sort '';
  37.         $param .= $direction '&direction=' $direction '';
  38.         $param .= $limit '&limit=' $limit '';
  39.         $param .= $offset '&offset=' $offset '';
  40.         
  41.         $pays $this->client->get('/pays?1=1' $param);
  42.         return $pays;
  43.     }
  44.     public function getAllMultiple($paysSlugs = [], $theme ''$favoris ''$dateDebut ''$duree ''$tag ''$sort null$direction null$limit null$offset null) {
  45.         $param  '';
  46.         foreach ($paysSlugs as $pays) {
  47.             $param .= $pays '&pays[]=' $pays '';
  48.         }
  49.         $param .= $theme '&theme=' $theme '';
  50.         $param .= $favoris '&favoris=' $favoris '';
  51.         $param .= $dateDebut '&dateDebut=' $dateDebut '';
  52.         $param .= $duree '&duree=' $duree '';
  53.         $param .= $sort '&sort=' $sort '';
  54.         $param .= $tag '&tag=' $tag '';
  55.         $param .= $direction '&direction=' $direction '';
  56.         $param .= $limit '&limit=' $limit '';
  57.         $param .= $offset '&offset=' $offset '';
  58.         //dd($param);
  59.         $voyages $this->client->get('/tours?1=1' $param);
  60.         //dd('/tours?1=1' . $param);
  61.         return $voyages;
  62.     }
  63.     
  64.     public function getAllTranslated($locale,$context null) {
  65.         $arrPaysTranslated = [];
  66.         $ArrPays $this->getAll();
  67.         foreach ($ArrPays as $pays) {
  68.             $data = [
  69.                 "table"=>"ext_pays",
  70.                 "content_id"=>$pays['pays_id'],
  71.                 "locale"=>$locale
  72.             ];
  73.             //19/07/21 - TOM - cache pour les traductions car beaucoup trop long
  74.             if(!is_null($context)){
  75.                 $strTradFile $this->rootdir DIRECTORY_SEPARATOR ."public" DIRECTORY_SEPARATOR ."cache-traductions.yaml";
  76.     
  77.                 $arrYamlFile Yaml::parseFile($strTradFile);
  78.             }else{
  79.                 $strTradFile "cache-traductions.yaml";
  80.     
  81.                 $arrYamlFile Yaml::parseFile($strTradFile);
  82.             }
  83.             
  84.             //Si traduction trouvée
  85.             if(isset($arrYamlFile[md5(serialize($data))])) {
  86.                 $arrPaysTranslated[] = unserialize(urldecode($arrYamlFile[md5(serialize($data))]));
  87.             }
  88.             //Si non trouvée
  89.             else {
  90.                 //Appel à l'API
  91.                 $paysTranslated $this->client->post('/find-traduction-content',$data);
  92.                 //Mise en cache
  93.                 file_put_contents($strTradFileYaml::dump(array_merge(is_array($arrYamlFile) ? $arrYamlFile : [], [md5(serialize($data)) => urlencode(serialize($paysTranslated))])));
  94.         
  95.                 $arrPaysTranslated[] = $paysTranslated;
  96.             }
  97.         }
  98.         return $arrPaysTranslated;
  99.     }
  100. }