Sha256: 43901906d9d57203d1b4bea27499a703c67d96bea3edbdfc589fc3dba2d89162

Contents?: true

Size: 1.08 KB

Versions: 6

Compression:

Stored size: 1.08 KB

Contents

# frozen_string_literal: true

require 'digest'

module Uploadcare
  module Param
    module Upload
      # This class generates body params for uploads
      class UploadParamsGenerator
        # @see https://uploadcare.com/docs/api_reference/upload/request_based/
        class << self
          def call(options = {})
            {
              'UPLOADCARE_PUB_KEY' => Uploadcare.config.public_key,
              'UPLOADCARE_STORE' => store(options[:store]),
              'signature' => (Upload::SignatureGenerator.call if Uploadcare.config.sign_uploads)
            }.merge(metadata(options)).compact
          end

          private

          def store(store)
            store = 'auto' if store.nil?
            store = '0'    if store == false
            store = '1'    if store == true
            store
          end

          def metadata(options = {})
            return {} if options[:metadata].nil?

            options[:metadata].each_with_object({}) do |(k, v), res|
              res.merge!("metadata[#{k}]" => v)
            end
          end
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
uploadcare-ruby-4.3.4 lib/uploadcare/param/upload/upload_params_generator.rb
uploadcare-ruby-4.3.3 lib/uploadcare/param/upload/upload_params_generator.rb
uploadcare-ruby-4.3.2 lib/uploadcare/param/upload/upload_params_generator.rb
uploadcare-ruby-4.3.1 lib/uploadcare/param/upload/upload_params_generator.rb
uploadcare-ruby-4.3.0 lib/uploadcare/param/upload/upload_params_generator.rb
uploadcare-ruby-4.2.0 lib/uploadcare/param/upload/upload_params_generator.rb