/**
* @param string $number
* @param string $country
* @param string|NULL $locale
* @param string|NULL $userCountry
*
* @return string
*
* @throws Exceptions\NoValidCountryException
* @throws Exceptions\NoValidPhoneException
*/
public function getLocation($number, $country = 'AUTO', $locale = NULL, $userCountry = NULL)
{
if ($this->isValid((string) $number, $country)) {
$country = strtoupper($country);
if ($userCountry !== NULL) {
// Check for valid user country
$userCountry = $this->validateCountry($userCountry);
}
// Parse phone number
$parsed = $this->phoneNumberUtil->parse((string) $number, $country);
// Determine locale
$locale = $locale === NULL && $this->translator && method_exists($this->translator, 'getLocale') ? $this->translator->getLocale() : 'en_US';
// Get phone number location
return $this->phoneNumberGeocoder->getDescriptionForNumber($parsed, $locale, $userCountry);
} else {
throw new Exceptions\NoValidPhoneException('Provided phone number "' . $number . '" is not valid phone number. Provide valid phone number.');
}
}