Geocoder icon indicating copy to clipboard operation
Geocoder copied to clipboard

IpInfoDb - Uncaught TypeError: Argument 11 passed to Geocoder\Model\Address

Open rtmotiondev opened this issue 5 years ago • 2 comments

While testing IpInfoDb with IP 1.143.27.182 I got Uncaught TypeError: Argument 11 passed to Geocoder\Model\Address::__construct() must be of the type string or null, bool given

IpInfoDB response:

  'statusCode' => string 'OK' (length=2)
  'statusMessage' => string '' (length=0)
  'ipAddress' => string '1.143.27.182' (length=12)
  'countryCode' => string 'AU' (length=2)
  'countryName' => string 'Australia' (length=9)
  'regionName' => string 'Victoria' (length=8)
  'cityName' => string 'Geelong' (length=7)
  'zipCode' => string '3220' (length=4)
  'latitude' => string '-38.1471' (length=8)
  'longitude' => string '144.361' (length=7)
  'timeZone' => string '+11:00' (length=6)

$timezone = timezone_name_from_abbr('', (int) substr($data['timeZone'], 0, strpos($data['timeZone'], ':')) * 3600, 0); timezone_name_from_abbr('', 39600, 0) // Melbourne Australia is observing DST so this does not work

The proper fix is to handle DST time or at the very minimum handle the case of timezone returning false which breaks Geocoder\Model\Address.

rtmotiondev avatar Nov 26 '20 06:11 rtmotiondev

Hello @rtiagom , Thanks for the notice.

Would you have time to submit a PR ?

jbelien avatar Nov 26 '20 07:11 jbelien

@jbelien Sure, I try to submit a PR this weekend.

rtmotiondev avatar Nov 27 '20 05:11 rtmotiondev