Do not crash when bad geo cache

Stephen Paul Weber created

Change summary

lib/area_code_repo.rb | 4 +++-
lib/geo_code.rb       | 4 ++++
2 files changed, 7 insertions(+), 1 deletion(-)

Detailed changes

lib/area_code_repo.rb 🔗

@@ -12,7 +12,9 @@ class AreaCodeRepo
 
 	def find(q, limit: 3)
 		@geo_code_repo.find(q).then { |geo|
-			log.debug "AreaCodeRepo#find(#{q.inspect})"
+			log.error "AreaCodeRepo#find(#{q.inspect})" unless geo.valid?
+			next [] unless geo.valid?
+
 			@db.query_defer(<<~SQL, [geo.country, geo.sql_point, limit])
 				SELECT area_code FROM area_codes
 				WHERE country=$1

lib/geo_code.rb 🔗

@@ -21,4 +21,8 @@ class GeoCode
 	def sql_point
 		"POINT(#{'%.10f' % @data['longt']} #{'%.10f' % @data['latt']})"
 	end
+
+	def valid?
+		@data["longt"] && @data["latt"]
+	end
 end