diff options
| author | ivan <ivan> | 2011-12-21 21:19:10 +0000 | 
|---|---|---|
| committer | ivan <ivan> | 2011-12-21 21:19:10 +0000 | 
| commit | b8a34a689564a6456509983e7ccd8c91298a11e5 (patch) | |
| tree | 17339b9c4ce27b3aec89ccf745cdc697d8122374 | |
| parent | 5eca097e4d200bb38995c773bac875f2e2c7e84f (diff) | |
eval fatal geocoding errors, turn them into warnings, RT#15539
| -rw-r--r-- | FS/FS/geocode_Mixin.pm | 23 | 
1 files changed, 14 insertions, 9 deletions
| diff --git a/FS/FS/geocode_Mixin.pm b/FS/FS/geocode_Mixin.pm index 9ac8e7a88..d821c8031 100644 --- a/FS/FS/geocode_Mixin.pm +++ b/FS/FS/geocode_Mixin.pm @@ -143,15 +143,20 @@ sub set_coord {    #my $module = FS::Conf->new->config('geocode_module') || 'Geo::Coder::Googlev3';    my $geocoder = Geo::Coder::Googlev3->new; -  my $location = $geocoder->geocode( location => -    $self->get($pre.'address1'). ','. -    ( $self->get($pre.'address2') ? $self->get($pre.'address2').',' : '' ). -    $self->get($pre.'city'). ','. -    $self->get($pre.'state'). ','. -    code2country($self->get($pre.'country')) -  ); - -  #errors? + +  my $location = eval { +    $geocoder->geocode( location => +      $self->get($pre.'address1'). ','. +      ( $self->get($pre.'address2') ? $self->get($pre.'address2').',' : '' ). +      $self->get($pre.'city'). ','. +      $self->get($pre.'state'). ','. +      code2country($self->get($pre.'country')) +    ); +  }; +  if ( $@ ) { +    warn "geocoding error: $@\n"; +    return; +  }    my $geo_loc = $location->{'geometry'}{'location'} or return;    if ( $geo_loc->{'lat'} && $geo_loc->{'lng'} ) { | 
