Method: Grape::Middleware::Versioner::Param#before

Defined in:
lib/grape/middleware/versioner/param.rb

#beforeObject



30
31
32
33
34
35
36
37
# File 'lib/grape/middleware/versioner/param.rb', line 30

def before
  potential_version = Rack::Utils.parse_nested_query(env[Rack::QUERY_STRING])[paramkey]
  return if potential_version.nil?

  throw :error, status: 404, message: '404 API Version Not Found', headers: { Grape::Http::Headers::X_CASCADE => 'pass' } if options[:versions] && !options[:versions].find { |v| v.to_s == potential_version }
  env[Grape::Env::API_VERSION] = potential_version
  env[Rack::RACK_REQUEST_QUERY_HASH].delete(paramkey) if env.key? Rack::RACK_REQUEST_QUERY_HASH
end