Sha256: 4dc3d7aaf25b99c01821d8129b88fbbcd137dc26cb29ab81715ed8441964f3a4

Contents?: true

Size: 1.12 KB

Versions: 31

Compression:

Stored size: 1.12 KB

Contents

# frozen_string_literal: true

require "httparty"

module Decidim
  # This class generates a url to create a static map image for a geocoded resource
  class StaticMapGenerator
    def initialize(resource, options = {})
      @resource = resource
      @options = options

      @options[:zoom] ||= 15
      @options[:width] ||= 120
      @options[:height] ||= 120
    end

    def data
      return if Decidim.geocoder.nil?

      Rails.cache.fetch(@resource.cache_key) do
        request = HTTParty.get(uri, headers: { "Referer" => organization.host })
        request.body
      end
    end

    private

    def uri
      params = {
        c: "#{@resource.latitude}, #{@resource.longitude}",
        z: @options[:zoom],
        w: @options[:width],
        h: @options[:height],
        f: "1",
        app_id: Decidim.geocoder.fetch(:here_app_id),
        app_code: Decidim.geocoder.fetch(:here_app_code)
      }

      URI.parse(Decidim.geocoder.fetch(:static_map_url)).tap do |uri|
        uri.query = URI.encode_www_form params
      end
    end

    def organization
      @organization ||= @resource.feature.organization
    end
  end
end

Version data entries

31 entries across 31 versions & 2 rubygems

Version Path
decidim-core-0.6.8 app/services/decidim/static_map_generator.rb
decidim-0.6.8 decidim-core/app/services/decidim/static_map_generator.rb
decidim-core-0.6.7 app/services/decidim/static_map_generator.rb
decidim-0.6.7 decidim-core/app/services/decidim/static_map_generator.rb
decidim-core-0.6.6 app/services/decidim/static_map_generator.rb
decidim-0.6.6 decidim-core/app/services/decidim/static_map_generator.rb
decidim-core-0.6.5 app/services/decidim/static_map_generator.rb
decidim-0.6.5 decidim-core/app/services/decidim/static_map_generator.rb
decidim-core-0.6.4 app/services/decidim/static_map_generator.rb
decidim-0.6.4 decidim-core/app/services/decidim/static_map_generator.rb
decidim-core-0.6.3 app/services/decidim/static_map_generator.rb
decidim-0.6.3 decidim-core/app/services/decidim/static_map_generator.rb
decidim-core-0.6.2 app/services/decidim/static_map_generator.rb
decidim-0.6.2 decidim-core/app/services/decidim/static_map_generator.rb
decidim-core-0.6.1 app/services/decidim/static_map_generator.rb
decidim-0.6.1 decidim-core/app/services/decidim/static_map_generator.rb
decidim-core-0.6.0 app/services/decidim/static_map_generator.rb
decidim-0.6.0 decidim-core/app/services/decidim/static_map_generator.rb
decidim-core-0.5.1 app/services/decidim/static_map_generator.rb
decidim-0.5.1 decidim-core/app/services/decidim/static_map_generator.rb