From 705f76fa1d9a95c54560a82e68c1c47b27755361 Mon Sep 17 00:00:00 2001 From: Rick Bradley Date: Tue, 16 Oct 2007 18:08:18 -0500 Subject: Argument passing now supported on {webrick,mongrel}+REST. --- lib/puppet/network/http/handler.rb | 16 ++++++++++++---- lib/puppet/network/http/mongrel/rest.rb | 4 ++++ lib/puppet/network/http/webrick/rest.rb | 4 ++++ 3 files changed, 20 insertions(+), 4 deletions(-) (limited to 'lib/puppet') diff --git a/lib/puppet/network/http/handler.rb b/lib/puppet/network/http/handler.rb index fb7b5c323..1f63024d6 100644 --- a/lib/puppet/network/http/handler.rb +++ b/lib/puppet/network/http/handler.rb @@ -19,22 +19,26 @@ class Puppet::Network::HTTP::Handler def do_find(request, response) key = request_key(request) || raise(ArgumentError, "Could not locate lookup key in request path [#{path}]") - @model.find(key) + args = params(request) + @model.find(key, args) end def do_search(request, response) - @model.search + args = params(request) + @model.search(args) end def do_destroy(request, response) key = request_key(request) || raise(ArgumentError, "Could not locate lookup key in request path [#{path}]") - @model.destroy(key) + args = params(request) + @model.destroy(key, args) end def do_save(request, response) data = body(request) raise ArgumentError, "No data to save" if !data or data.empty? - @model.new.save(:data => data) + args = params(request) + @model.new.save(args.merge(:data => data)) end def find_model_for_handler(handler) @@ -83,4 +87,8 @@ class Puppet::Network::HTTP::Handler def body(request) raise NotImplementedError end + + def params(request) + raise NotImplementedError + end end diff --git a/lib/puppet/network/http/mongrel/rest.rb b/lib/puppet/network/http/mongrel/rest.rb index f7807b19f..d87f9c733 100644 --- a/lib/puppet/network/http/mongrel/rest.rb +++ b/lib/puppet/network/http/mongrel/rest.rb @@ -24,4 +24,8 @@ class Puppet::Network::HTTP::MongrelREST < Puppet::Network::HTTP::Handler def body(request) request.body end + + def params(request) + Mongrel::HttpRequest.query_parse(request.params["QUERY_STRING"]) + end end diff --git a/lib/puppet/network/http/webrick/rest.rb b/lib/puppet/network/http/webrick/rest.rb index bfcd0784d..33b1ad8dc 100644 --- a/lib/puppet/network/http/webrick/rest.rb +++ b/lib/puppet/network/http/webrick/rest.rb @@ -29,4 +29,8 @@ class Puppet::Network::HTTP::WEBrickREST < Puppet::Network::HTTP::Handler def body(request) request.body end + + def params(request) + request.query + end end \ No newline at end of file -- cgit