dawarich/app/services/reverse_geocoding/fetch_data.rb

27 lines
674 B
Ruby
Raw Normal View History

2024-07-12 15:59:03 -04:00
# frozen_string_literal: true
class ReverseGeocoding::FetchData
attr_reader :point
def initialize(point_id)
@point = Point.find(point_id)
rescue ActiveRecord::RecordNotFound => e
Rails.logger.error("Point with id #{point_id} not found: #{e.message}")
end
def call
return if reverse_geocoded?
response = Geocoder.search([point.latitude, point.longitude]).first
return if response.blank? || response.data['error'].present?
point.update!(city: response.city, country: response.country, geodata: response.data)
end
private
def reverse_geocoded?
point.city.present? && point.country.present? || point.geodata.present?
end
end