module AttacheClient::ViewHelper

Constants

ATTACHE_DOWNLOAD_URL
ATTACHE_UPLOAD_DURATION
ATTACHE_UPLOAD_URL

Public Instance Methods

attache_options(geometry, current_value) click to toggle source
# File lib/attache_client.rb, line 20
def attache_options(geometry, current_value)
  auth = if ENV['ATTACHE_SECRET_KEY']
    uuid = SecureRandom.uuid
    expiration = (Time.now + ATTACHE_UPLOAD_DURATION).to_i
    hmac = OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new('sha1'), ENV['ATTACHE_SECRET_KEY'], "#{uuid}#{expiration}")
    { uuid: uuid, expiration: expiration, hmac: hmac }
  else
    {}
  end

  {
    class: 'enable-attache',
    data: {
      geometry: geometry,
      value: [*current_value],
      uploadurl: ATTACHE_UPLOAD_URL,
      downloadurl: ATTACHE_DOWNLOAD_URL,
    }.merge(auth),
  }
end
attache_urls(json, geometry) { |url| ... } click to toggle source
# File lib/attache_client.rb, line 9
def attache_urls(json, geometry)
  array = json.kind_of?(Array) ? json : [*json]
  array.collect do |path|
    download_url = ATTACHE_DOWNLOAD_URL
    prefix, basename = File.split(path)
    [download_url, prefix, CGI.escape(geometry), basename].join('/').tap do |url|
      yield url if block_given?
    end
  end
end