Sha256: ceb0158290eda1aa82f3131cf747f18f3af0abc733c9b43c3d3390377ecac057

Contents?: true

Size: 794 Bytes

Versions: 45

Compression:

Stored size: 794 Bytes

Contents

# frozen_string_literal: true

# This validator takes care of ensuring the validated content is
# an existing address and computes its coordinates.
class GeocodingValidator < ActiveModel::EachValidator
  def validate_each(record, attribute, value)
    if Decidim::Map.available?(:geocoding) && record.component.present?
      geocoder = geocoder_for(record.component.organization)
      coordinates = geocoder.coordinates(value)

      if coordinates.present?
        record.latitude = coordinates.first
        record.longitude = coordinates.last
      else
        record.errors.add(attribute, :invalid)
      end
    else
      record.errors.add(attribute, :invalid)
    end
  end

  private

  def geocoder_for(organization)
    Decidim::Map.geocoding(organization: organization)
  end
end

Version data entries

45 entries across 45 versions & 1 rubygems

Version Path
decidim-core-0.27.9 app/validators/geocoding_validator.rb
decidim-core-0.27.8 app/validators/geocoding_validator.rb
decidim-core-0.27.7 app/validators/geocoding_validator.rb
decidim-core-0.27.6 app/validators/geocoding_validator.rb
decidim-core-0.26.10 app/validators/geocoding_validator.rb
decidim-core-0.26.9 app/validators/geocoding_validator.rb
decidim-core-0.27.5 app/validators/geocoding_validator.rb
decidim-core-0.26.8 app/validators/geocoding_validator.rb
decidim-core-0.27.4 app/validators/geocoding_validator.rb
decidim-core-0.27.3 app/validators/geocoding_validator.rb
decidim-core-0.26.7 app/validators/geocoding_validator.rb
decidim-core-0.26.5 app/validators/geocoding_validator.rb
decidim-core-0.27.2 app/validators/geocoding_validator.rb
decidim-core-0.27.1 app/validators/geocoding_validator.rb
decidim-core-0.26.4 app/validators/geocoding_validator.rb
decidim-core-0.27.0 app/validators/geocoding_validator.rb
decidim-core-0.26.3 app/validators/geocoding_validator.rb
decidim-core-0.27.0.rc2 app/validators/geocoding_validator.rb
decidim-core-0.27.0.rc1 app/validators/geocoding_validator.rb
decidim-core-0.26.2 app/validators/geocoding_validator.rb