From 6f92e5c93c7d7d75695bfea3e5c0d292b7a83f50 Mon Sep 17 00:00:00 2001 From: Stephen Paul Weber Date: Tue, 2 Apr 2024 19:06:17 -0500 Subject: [PATCH] Do not crash when bad geo cache --- lib/area_code_repo.rb | 4 +++- lib/geo_code.rb | 4 ++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/area_code_repo.rb b/lib/area_code_repo.rb index ace6fbd09e3b562799ac3d9cd7db53128f49a42e..6ae05632ef2f7fb0ae2f2ef7ea9213b20221ce35 100644 --- a/lib/area_code_repo.rb +++ b/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 diff --git a/lib/geo_code.rb b/lib/geo_code.rb index d5d8f1798ebc8fe061643dd81ead768d9136e4c4..ab41e9f9f954545c574aad066ad3d1f984504c2a 100644 --- a/lib/geo_code.rb +++ b/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