feat: IP lookup (#1315)
- feature to store contact IP for accounts - IP lookup through geocoder gem - ability to do IP lookup through external APIs - add commit hook to prevent push to develop and master - migrations to fix default values for jsonb columns
This commit is contained in:
@@ -7,3 +7,5 @@
|
||||
enabled: true
|
||||
- name: channel_twitter
|
||||
enabled: true
|
||||
- name: ip_lookup
|
||||
enabled: false
|
||||
32
config/initializers/geocoder.rb
Normal file
32
config/initializers/geocoder.rb
Normal file
@@ -0,0 +1,32 @@
|
||||
# Geocoding options
|
||||
# timeout: 3, # geocoding service timeout (secs)
|
||||
# lookup: :nominatim, # name of geocoding service (symbol)
|
||||
# ip_lookup: :ipinfo_io, # name of IP address geocoding service (symbol)
|
||||
# language: :en, # ISO-639 language code
|
||||
# use_https: false, # use HTTPS for lookup requests? (if supported)
|
||||
# http_proxy: nil, # HTTP proxy server (user:pass@host:port)
|
||||
# https_proxy: nil, # HTTPS proxy server (user:pass@host:port)
|
||||
# api_key: nil, # API key for geocoding service
|
||||
# cache: nil, # cache object (must respond to #[], #[]=, and #del)
|
||||
# cache_prefix: 'geocoder:', # prefix (string) to use for all cache keys
|
||||
|
||||
# Exceptions that should not be rescued by default
|
||||
# (if you want to implement custom error handling);
|
||||
# supports SocketError and Timeout::Error
|
||||
# always_raise: [],
|
||||
|
||||
# Calculation options
|
||||
# units: :mi, # :km for kilometers or :mi for miles
|
||||
# distances: :linear # :spherical or :linear
|
||||
|
||||
module GeocoderConfiguration
|
||||
LOOK_UP_DB = Rails.root.join('vendor/db/GeoLiteCity.mmdb')
|
||||
end
|
||||
|
||||
if ENV['IP_LOOKUP_SERVICE'].present?
|
||||
if ENV['IP_LOOKUP_SERVICE'] == 'geoip2'
|
||||
Geocoder.configure(ip_lookup: :geoip2, geoip2: { file: GeocoderConfiguration::LOOK_UP_DB })
|
||||
else
|
||||
Geocoder.configure(ip_lookup: ENV['IP_LOOKUP_SERVICE'].to_sym, api_key: ENV['IP_LOOKUP_API_KEY'])
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user