Sha256: b2c539fa95ae6429cd60cd5507150271c77503296ffdbd4c86d474a2610ed15c

Contents?: true

Size: 1.16 KB

Versions: 12

Compression:

Stored size: 1.16 KB

Contents

# frozen_string_literal: true

require 'dry/monads'
require 'api_struct'
require 'param/user_agent'
require 'uploadcare/concern/error_handler'
require 'uploadcare/concern/throttle_handler'
require 'mimemagic'

module Uploadcare
  module Client
    # @abstract
    #
    # Headers and helper methods for clients working with upload API
    # @see https://uploadcare.com/docs/api_reference/upload/
    class UploadClient < ApiStruct::Client
      include Concerns::ErrorHandler
      include Concerns::ThrottleHandler
      include Exception

      def api_root
        Uploadcare.config.upload_api_root
      end

      def headers
        {
          'User-Agent': Uploadcare::Param::UserAgent.call
        }
      end

      private

      def form_data_for(file)
        filename = file.original_filename if file.respond_to?(:original_filename)
        mime_type = MimeMagic.by_magic(file)&.type
        mime_type = file.content_type if mime_type.nil? && file.respond_to?(:content_type)
        options = { filename: filename, content_type: mime_type }.compact
        HTTP::FormData::File.new(file, options)
      end

      def default_params
        {}
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
uploadcare-ruby-4.4.3 lib/uploadcare/client/upload_client.rb
uploadcare-ruby-4.4.2 lib/uploadcare/client/upload_client.rb
uploadcare-ruby-4.4.1 lib/uploadcare/client/upload_client.rb
uploadcare-ruby-4.4.0 lib/uploadcare/client/upload_client.rb
uploadcare-ruby-4.3.6 lib/uploadcare/client/upload_client.rb
uploadcare-ruby-4.3.5 lib/uploadcare/client/upload_client.rb
uploadcare-ruby-4.3.4 lib/uploadcare/client/upload_client.rb
uploadcare-ruby-4.3.3 lib/uploadcare/client/upload_client.rb
uploadcare-ruby-4.3.2 lib/uploadcare/client/upload_client.rb
uploadcare-ruby-4.3.1 lib/uploadcare/client/upload_client.rb
uploadcare-ruby-4.3.0 lib/uploadcare/client/upload_client.rb
uploadcare-ruby-4.2.0 lib/uploadcare/client/upload_client.rb