5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
# File 'lib/ahoy/geocode_v2_job.rb', line 5
def perform(visit_token, ip)
location =
begin
Geocoder.search(ip).first
rescue NameError
raise "Add the geocoder gem to your Gemfile to use geocoding"
rescue => e
Ahoy.log "Geocode error: #{e.class.name}: #{e.message}"
nil
end
if location && location.country.present?
data = {
country: location.country,
country_code: location.try(:country_code).presence,
region: location.try(:state).presence,
city: location.try(:city).presence,
postal_code: location.try(:postal_code).presence,
latitude: location.try(:latitude).presence,
longitude: location.try(:longitude).presence
}
Ahoy::Tracker.new(visit_token: visit_token).geocode(data)
end
end
|