From e78063ae75c0b5c18408eaa96782b7d1ff2f75e8 Mon Sep 17 00:00:00 2001 From: Antonio Date: Fri, 16 Mar 2018 16:01:00 +0100 Subject: [PATCH] Fixed geocoding validity --- .../cartodb_services/tomtom/geocoder.py | 27 ++++++++++++++----- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/server/lib/python/cartodb_services/cartodb_services/tomtom/geocoder.py b/server/lib/python/cartodb_services/cartodb_services/tomtom/geocoder.py index 2bd0525..783be25 100644 --- a/server/lib/python/cartodb_services/cartodb_services/tomtom/geocoder.py +++ b/server/lib/python/cartodb_services/cartodb_services/tomtom/geocoder.py @@ -48,18 +48,31 @@ class TomTomGeocoder(Traceable): latitude = position[ENTRY_LAT] return [longitude, latitude] + def _validate_input(self, searchtext, city=None, state_province=None, + country=None): + if searchtext and searchtext.strip(): + return True + elif city: + return True + elif state_province: + return True + + return False + @qps_retry(qps=5) def geocode(self, searchtext, city=None, state_province=None, country=None): - if searchtext and searchtext.strip(): - address = [normalize(searchtext)] - if city: - address.append(normalize(city)) - if state_province: - address.append(normalize(state_province)) - else: + if not self._validate_input(searchtext, city, state_province, country): return [] + address = [] + if searchtext and searchtext.strip(): + address.append(normalize(searchtext)) + if city: + address.append(normalize(city)) + if state_province: + address.append(normalize(state_province)) + uri = self._uri(searchtext=', '.join(address), countries=country) try: