Sha256: 53456a10efa97da4ee3a469cf69145af3e3a90855116211a773dabfa343f0f77

Contents?: true

Size: 836 Bytes

Versions: 18

Compression:

Stored size: 836 Bytes

Contents

module DropboxApi::MiddleWare
  class DecodeResult < Faraday::Middleware
    def call(rq_env)
      @app.call(rq_env).on_complete do |rs_env|
        if !rs_env[:response_headers]['Dropbox-Api-Result'].nil?
          rs_env[:api_result] = decode rs_env[:response_headers]['Dropbox-Api-Result']
        elsif rs_env[:response_headers]['content-type'] == 'application/json'
          rs_env[:api_result] = decode rs_env[:body]
        end
      end
    end

    def decode(json)
      # Dropbox may send a response with the string 'null' in its body, this
      # would be a void result. `add_folder_member` is an example of an
      # endpoint without return values.
      if json == "null"
        {}
      else
        JSON.parse json
      end
    end
  end

  Faraday::Response.register_middleware :decode_result => DecodeResult
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
dropbox_api-0.1.18 lib/dropbox_api/middleware/decode_result.rb
dropbox_api-0.1.17 lib/dropbox_api/middleware/decode_result.rb
dropbox_api-0.1.16 lib/dropbox_api/middleware/decode_result.rb
dropbox_api-0.1.15 lib/dropbox_api/middleware/decode_result.rb
dropbox_api-0.1.14 lib/dropbox_api/middleware/decode_result.rb
dropbox_api-0.1.13 lib/dropbox_api/middleware/decode_result.rb
dropbox_api-0.1.12 lib/dropbox_api/middleware/decode_result.rb
dropbox_api-0.1.11 lib/dropbox_api/middleware/decode_result.rb
dropbox_api-0.1.10 lib/dropbox_api/middleware/decode_result.rb
dropbox_api-0.1.9 lib/dropbox_api/middleware/decode_result.rb
dropbox_api-0.1.8 lib/dropbox_api/middleware/decode_result.rb
dropbox_api-0.1.7 lib/dropbox_api/middleware/decode_result.rb
dropbox_api-0.1.6 lib/dropbox_api/middleware/decode_result.rb
dropbox_api-0.1.5 lib/dropbox_api/middleware/decode_result.rb
dropbox_api-0.1.4 lib/dropbox_api/middleware/decode_result.rb
dropbox_api-0.1.3 lib/dropbox_api/middleware/decode_result.rb
dropbox_api-0.1.1 lib/dropbox_api/middleware/decode_result.rb
dropbox_api-0.1.0 lib/dropbox_api/middleware/decode_result.rb