Sha256: 5ca62aec79a5592ace608d8778a4f32309929478405e6de6f76451d302a5d30f

Contents?: true

Size: 860 Bytes

Versions: 1

Compression:

Stored size: 860 Bytes

Contents

require "faraday/middleware"
require "mime/types"

module ZendeskAPI
  module Middleware
    module Request
      class Upload < Faraday::Middleware
        def call(env)
          if env[:body] && env[:body][:file]
            file = env[:body].delete(:file)
            case file
            when File
              path = file.path
            when String
              path = file
            else
              warn "WARNING: Passed invalid filename #{file} of type #{file.class} to upload"
            end

            if path
              env[:body][:filename] ||= File.basename(path)
              mime_type = MIME::Types.type_for(path).first || "application/octet-stream"
              env[:body][:uploaded_data] = Faraday::UploadIO.new(path, mime_type)
            end
          end

          @app.call(env)
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
zendesk_api-0.0.9 lib/zendesk_api/middleware/request/upload.rb