# frozen_string_literal: true # License: AGPL-3.0-or-later WITH Web-Template-Output-Additional-Permission-3.0-or-later module GeocodeModel def self.supporter(id) supp = Supporter.find_by_id(id) with_reverse(supp) if supp.address && supp.state_code && supp.city end # Just a wrapper around a model's geocode method for delaying with: # GeocodeModel.delay.geocode(user) def self.geocode(model) begin model.geocode rescue Exception => e puts e end model.save model end def self.with_reverse(model) begin model.geocode model.reverse_geocode rescue Exception => e puts e end model.save model end # Geocode and get the timezone for a model def self.with_timezone(model) begin geocode(model) rescue Exception => e puts e end return model unless model.latitude && model.longitude model.timezone = NearestTimeZone.to(model.latitude, model.longitude) model.save model end end