dawarich/app/jobs/reverse_geocoding_job.rb
2024-07-08 23:19:25 +02:00

19 lines
564 B
Ruby

# frozen_string_literal: true
class ReverseGeocodingJob < ApplicationJob
queue_as :reverse_geocoding
def perform(point_id)
return unless REVERSE_GEOCODING_ENABLED
point = Point.find(point_id)
return if point.city.present? && point.country.present?
result = Geocoder.search([point.latitude, point.longitude])
return if result.blank?
point.update!(city: result.first.city, country: result.first.country)
rescue ActiveRecord::RecordNotFound => e
Rails.logger.error("Point with id #{point_id} not found: #{e.message}")
end
end