private function executeQuery($query)
{
$request = $this->getMessageFactory()->createRequest('GET', $query);
$content = (string) $this->getHttpClient()->sendRequest($request)->getBody();
if (empty($content)) {
throw new NoResult(sprintf('Could not execute query "%s".', $query));
}
$data = (array) json_decode($content);
if (empty($data) || 'OK' !== $data['statusCode']) {
throw new NoResult(sprintf('Could not execute query "%s".', $query));
}
$timezone = null;
if (isset($data['timeZone'])) {
$timezone = timezone_name_from_abbr("", (int) substr($data['timeZone'], 0, strpos($data['timeZone'], ':')) * 3600, 0);
}
return $this->returnResults([array_merge($this->getDefaults(), array('latitude' => isset($data['latitude']) ? $data['latitude'] : null, 'longitude' => isset($data['longitude']) ? $data['longitude'] : null, 'locality' => isset($data['cityName']) ? $data['cityName'] : null, 'postalCode' => isset($data['zipCode']) ? $data['zipCode'] : null, 'adminLevels' => isset($data['regionName']) ? [['name' => $data['regionName'], 'level' => 1]] : [], 'country' => isset($data['countryName']) ? $data['countryName'] : null, 'countryCode' => isset($data['countryName']) ? $data['countryCode'] : null, 'timezone' => $timezone))]);
}