Sha256: ed5439fbab6fdcf60c3a04980f747285ec4f755e73a1b3bbde7db0512f760dc3

Contents?: true

Size: 638 Bytes

Versions: 9

Compression:

Stored size: 638 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
  JSON_REQUEST_METHOD = [:post, :put, :patch]

  def call env, &k
    return app.call(env, &k) unless json_request(env)
    return app.call(env, &k) unless
      JSON_REQUEST_METHOD.include?(env[REQUEST_METHOD])

    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

9 entries across 9 versions & 1 rubygems

Version Path
rest-core-3.5.6 lib/rest-core/middleware/json_request.rb
rest-core-3.5.5 lib/rest-core/middleware/json_request.rb
rest-core-3.5.4 lib/rest-core/middleware/json_request.rb
rest-core-3.5.3 lib/rest-core/middleware/json_request.rb
rest-core-3.5.2 lib/rest-core/middleware/json_request.rb
rest-core-3.5.1 lib/rest-core/middleware/json_request.rb
rest-core-3.5.0 lib/rest-core/middleware/json_request.rb
rest-core-3.4.1 lib/rest-core/middleware/json_request.rb
rest-core-3.4.0 lib/rest-core/middleware/json_request.rb