Esempio n. 1
0
 /**
  * @param Country $country
  *
  * @return array|Mandate[]
  */
 public function getMandates(Country $country) : array
 {
     $datas = $this->manager->getDBResults('@Api/sql/elects/getMandates.sql.twig', ['country' => $country->getId()]);
     $mandates = [];
     foreach ($datas as $data) {
         $data = ArraysUtils::toMultiDimensional($data);
         $mandates[] = $this->hydrator->hydrateMandate($data['id'], $data['name'], $data['wikipedia'], $this->hydrator->hydrateZoneType($data['zone_type']['id'], $data['zone_type']['name'], $data['zone_type']['slug'], $data['zone_type']['level'], $country));
     }
     return $mandates;
 }
Esempio n. 2
0
 /**
  * Test toMultiDimensional function.
  *
  * @see ArrayUtils::toMultiDimensional
  */
 public function testToMultiDimensional()
 {
     $separator = '_';
     $array = ['key1' . $separator . 'subkey1' => 'subvalue1', 'key1' . $separator . 'subkey2' => 'subvalue2', 'key2' . $separator . 'subkey1.subsubkey1' => 'subsubvalue1', 'key2' . $separator . 'subkey1.subsubkey2' => 'subsubvalue2'];
     $multidimensional = ArraysUtils::toMultiDimensional($array, $separator);
     $this->assertArrayHasKey('key1', $multidimensional);
     $this->assertArrayHasKey('key2', $multidimensional);
     $this->assertArraySubset(['subkey1' => 'subvalue1', 'subkey2' => 'subvalue2'], $multidimensional['key1']);
     $this->assertArrayHasKey('subkey1', $multidimensional['key2']);
     $this->assertArraySubset(['subsubkey1' => 'subsubvalue1', 'subsubkey2' => 'subsubvalue2'], $multidimensional['key2']['subkey1']);
 }
Esempio n. 3
0
 /**
  * @param $keywords
  *
  * @return array|ZoneResult[]
  *
  * @throws DBALException
  */
 public function searchZones($keywords, Point $point = null, Country $country = null)
 {
     $datas = $this->manager->getDBResults('@Api/sql/search/zoneSearch.sql.twig', ['keywords' => $keywords, 'point' => $point, 'country' => $country]);
     $zones = [];
     foreach ($datas as $data) {
         $data = ArraysUtils::toMultiDimensional($data);
         $zone = $this->hydrator->hydrateZone($data['id'], $this->hydrator->hydrateCountry($data['country']['id'], $data['country']['name'], $data['country']['iso_code_2_letters']), $this->hydrator->hydrateZoneType($data['zone_type']['id'], $data['zone_type']['name'], $data['zone_type']['slug'], $data['zone_type']['level'], $this->hydrator->hydrateCountry($data['country']['id'], $data['country']['name'], $data['country']['iso_code_2_letters'])), $data['ref'], $data['ref_official'], $data['name'], $data['slug'], $data['population'], $data['wikipedia'], !is_null($data['date_from']) ? new \DateTime($data['date_from']) : null, !is_null($data['date_until']) ? new \DateTime($data['date_until']) : null, $data['shape_polygon'], $data['shape_multipolygon']);
         $zones[] = new ZoneResult($zone, is_null($data['distance']) ? null : floatval($data['distance']));
     }
     return $zones;
 }
Esempio n. 4
0
 /**
  * @param string      $slug
  * @param string|null $zoneType
  * @param string|null $country
  *
  * @return Zone
  *
  * @throws DBALException
  * @throws ZoneNotFoundException
  */
 public function getZoneFromSlug(string $slug, string $zoneType = null, string $country = null) : Zone
 {
     $zone = $this->manager->getDBResults('@Api/sql/zones/getZoneFromSlug.sql.twig', ['slug' => $slug, 'zoneType' => $zoneType, 'country' => $country], new ZoneNotFoundException($slug), true);
     $zone = ArraysUtils::toMultiDimensional($zone);
     return $this->hydrator->hydrateZone($zone['id'], $this->hydrator->hydrateCountry($zone['country']['id'], $zone['country']['name'], $zone['country']['iso_code_2_letters']), $this->hydrator->hydrateZoneType($zone['zone_type']['id'], $zone['zone_type']['name'], $zone['zone_type']['slug'], $zone['zone_type']['level'], $this->hydrator->hydrateCountry($zone['country']['id'], $zone['country']['name'], $zone['country']['iso_code_2_letters'])), $zone['ref'], $zone['ref_official'], $zone['name'], $zone['slug'], $zone['population'], $zone['wikipedia'], is_null($zone['date_from']) ? new \DateTime($zone['date_from']) : null, is_null($zone['date_until']) ? new \DateTime($zone['date_until']) : null, $zone['shape_polygon'], $zone['shape_multipolygon']);
 }