Sha256: 6690261850e7bc48ae8215aecaf8c8096b98111466dbb4eea78f71214fa70b0d
Contents?: true
Size: 922 Bytes
Versions: 5
Compression:
Stored size: 922 Bytes
Contents
#!/usr/bin/env ruby require 'rack' module Flapjack module Gateways class JSONAPI < Sinatra::Base module Rack class JsonParamsParser < Struct.new(:app) def call(env) if env['rack.input'] and not input_parsed?(env) and type_match?(env) env['rack.request.form_input'] = env['rack.input'] data = env['rack.input'].read env['rack.input'].rewind env['rack.request.form_hash'] = data.empty? ? {} : Oj.load(data) end app.call(env) end def input_parsed? env env['rack.request.form_input'].eql? env['rack.input'] end def type_match? env type = env['CONTENT_TYPE'] and Flapjack::Gateways::JSONAPI::JSON_REQUEST_MIME_TYPES.include?(type.split(/\s*[;,]\s*/, 2).first.downcase) end end end end end end
Version data entries
5 entries across 5 versions & 1 rubygems