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