Sha256: 71008a1f9bb589b59aac93ef9e4c06329e6a64e27bf3dee85cae716e76091eb0

Contents?: true

Size: 762 Bytes

Versions: 47

Compression:

Stored size: 762 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.geocoder.present? && record.feature.present?
      organization = record.feature.organization
      Geocoder.configure(Geocoder.config.merge(http_headers: { "Referer" => organization.host }))
      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
end

Version data entries

47 entries across 47 versions & 2 rubygems

Version Path
decidim-core-0.10.1 app/validators/geocoding_validator.rb
decidim-core-0.10.0 app/validators/geocoding_validator.rb
decidim-core-0.9.3 app/validators/geocoding_validator.rb
decidim-core-0.9.2 app/validators/geocoding_validator.rb
decidim-core-0.9.1 app/validators/geocoding_validator.rb
decidim-core-0.9.0 app/validators/geocoding_validator.rb
decidim-core-0.8.4 app/validators/geocoding_validator.rb
decidim-core-0.8.3 app/validators/geocoding_validator.rb
decidim-core-0.8.2 app/validators/geocoding_validator.rb
decidim-core-0.8.1 app/validators/geocoding_validator.rb
decidim-core-0.8.0 app/validators/geocoding_validator.rb
decidim-core-0.7.4 app/validators/geocoding_validator.rb
decidim-core-0.7.3 app/validators/geocoding_validator.rb
decidim-core-0.7.2 app/validators/geocoding_validator.rb
decidim-core-0.7.1 app/validators/geocoding_validator.rb
decidim-core-0.7.0 app/validators/geocoding_validator.rb
decidim-core-0.6.8 app/validators/geocoding_validator.rb
decidim-0.6.8 decidim-core/app/validators/geocoding_validator.rb
decidim-core-0.6.7 app/validators/geocoding_validator.rb
decidim-0.6.7 decidim-core/app/validators/geocoding_validator.rb