Sha256: a739f36b0d4450bccffcddd75071a7b500a5dddfb876e635a7a73c9400a15963

Contents?: true

Size: 625 Bytes

Versions: 4

Compression:

Stored size: 625 Bytes

Contents

require 'rest-core/middleware'
require 'rest-core/util/json'

class RestCore::JsonRequest
  def self.members; [:json_request]; end
  include RestCore::Middleware

  JSON_REQUEST_HEADER = {'Content-Type' => 'application/json'}.freeze

  def call env, &k
    return app.call(env, &k) unless json_request(env)
    return app.call(env, &k) unless env[REQUEST_PAYLOAD] &&
                                    !env[REQUEST_PAYLOAD].empty?

    app.call(env.merge(
      REQUEST_HEADERS => JSON_REQUEST_HEADER.merge(env[REQUEST_HEADERS]||{}),
      REQUEST_PAYLOAD => Json.encode(env[REQUEST_PAYLOAD])              ), &k)
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
rest-core-3.3.3 lib/rest-core/middleware/json_request.rb
rest-core-3.3.2 lib/rest-core/middleware/json_request.rb
rest-core-3.3.1 lib/rest-core/middleware/json_request.rb
rest-core-3.3.0 lib/rest-core/middleware/json_request.rb