summaryrefslogtreecommitdiff
path: root/FS/FS/geocode_Mixin.pm
diff options
context:
space:
mode:
authorivan <ivan>2011-12-21 21:19:10 +0000
committerivan <ivan>2011-12-21 21:19:10 +0000
commitb8a34a689564a6456509983e7ccd8c91298a11e5 (patch)
tree17339b9c4ce27b3aec89ccf745cdc697d8122374 /FS/FS/geocode_Mixin.pm
parent5eca097e4d200bb38995c773bac875f2e2c7e84f (diff)
eval fatal geocoding errors, turn them into warnings, RT#15539
Diffstat (limited to 'FS/FS/geocode_Mixin.pm')
-rw-r--r--FS/FS/geocode_Mixin.pm23
1 files changed, 14 insertions, 9 deletions
diff --git a/FS/FS/geocode_Mixin.pm b/FS/FS/geocode_Mixin.pm
index 9ac8e7a..d821c80 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'} ) {