lib/middleware/json_parse_errors.rb



module ZuoraConnect
  class JsonParseErrors
    def initialize(app)
      @app = app
    end

    def call(env)
      begin
        @app.call(env)
      rescue ActionDispatch::ParamsParser::ParseError => error
        if env['HTTP_ACCEPT'] =~ /application\/json/ || env['CONTENT_TYPE'] =~ /application\/json/
          return [
            400, { "Content-Type" => "application/json" },
            [{"success": false, "reasons": [{"code": 50000090, "message": "Malformed json was submitted." }]}.to_json ]
          ]
        else
          raise error
        end
      end
    end
  end
end