Skip to content

Commit 3912774

Browse files
GojekGojek
Gojek
authored and
Gojek
committed
added delete request body support
1 parent 017bdf9 commit 3912774

File tree

4 files changed

+19
-19
lines changed

4 files changed

+19
-19
lines changed

lib/wrest/native/delete.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,12 @@
99

1010
module Wrest::Native
1111
class Delete < Request
12-
def initialize(wrest_uri, parameters = {}, headers = {}, options = {})
12+
def initialize(wrest_uri, body = '', headers = {}, parameters = {} ,options = {})
1313
super(
1414
wrest_uri,
1515
Net::HTTP::Delete,
1616
parameters,
17-
nil,
17+
body,
1818
headers,
1919
options
2020
)

lib/wrest/uri.rb

+6-6
Original file line numberDiff line numberDiff line change
@@ -135,8 +135,8 @@ def build_post_form(parameters ={}, headers = {}, &block)
135135
end
136136

137137
#:nodoc:
138-
def build_delete(parameters = {}, headers = {}, &block)
139-
Http::Delete.new(self, parameters, default_headers.merge(headers), block ? @options.merge(:callback_block => block) : @options)
138+
def build_delete(body = '', headers = {}, parameters = {}, &block)
139+
Http::Delete.new(self, body.to_s, default_headers.merge(headers), parameters, block ? @options.merge(:callback_block => block) : @options)
140140
end
141141

142142
# Make a GET request to this URI. This is a convenience API
@@ -242,8 +242,8 @@ def post_form_async(parameters = {}, headers = {}, &block)
242242
# that creates a Wrest::Native::Delete, executes it and returns a Wrest::Native::Response.
243243
#
244244
# Remember to escape all parameter strings if necessary, using URI.escape
245-
def delete(parameters = {}, headers = {}, &block)
246-
build_delete(parameters, headers, &block).invoke
245+
def delete(parameters = {}, headers = {}, body = '', &block)
246+
build_delete(body, headers, parameters, &block).invoke
247247
end
248248

249249
# Makes a DELETE request to this URI. This is a convenience API
@@ -253,8 +253,8 @@ def delete(parameters = {}, headers = {}, &block)
253253
#
254254
# Note: delete_async does not return a response and the response should be accessed through callbacks.
255255
# This implementation of asynchronous delete is currently in alpha. Hence, it should not be used in production.
256-
def delete_async(parameters = {}, headers = {}, &block)
257-
@asynchronous_backend.execute(build_delete(parameters, headers, &block))
256+
def delete_async(parameters = {}, headers = {}, body = '', &block)
257+
@asynchronous_backend.execute(build_delete(body, headers, parameters, &block))
258258
end
259259

260260
# Makes an OPTIONS request to this URI. This is a convenience API

lib/wrest/version.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,5 @@
88
# See the License for the specific language governing permissions and limitations under the License.
99

1010
module Wrest
11-
VERSION = "3.0.0"
11+
VERSION = "3.0.1"
1212
end

spec/wrest/uri_spec.rb

+10-10
Original file line numberDiff line numberDiff line change
@@ -365,9 +365,9 @@ def setup_http
365365
request = Net::HTTP::Delete.new('/glassware?owner=Kai&type=bottle', {'page' => '2', 'per_page' => '5'})
366366
Net::HTTP::Delete.should_receive(:new).with('/glassware?owner=Kai&type=bottle', {'page' => '2', 'per_page' => '5'}).and_return(request)
367367

368-
http.should_receive(:request).with(request, nil).and_return(build_ok_response(nil))
368+
http.should_receive(:request).with(request, '').and_return(build_ok_response(nil))
369369

370-
uri.delete(build_ordered_hash([[:owner, 'Kai'],[:type, 'bottle']]), :page => '2', :per_page => '5')
370+
uri.delete(build_ordered_hash([[:owner, 'Kai'],[:type, 'bottle']]), {:page => '2', :per_page => '5'}, '')
371371
end
372372

373373
context "query parameters" do
@@ -379,9 +379,9 @@ def setup_http
379379
request = Net::HTTP::Delete.new('/glassware?owner=Kai&type=bottle', {'page' => '2', 'per_page' => '5'})
380380
Net::HTTP::Delete.should_receive(:new).with('/glassware?owner=Kai&type=bottle', {'page' => '2', 'per_page' => '5'}).and_return(request)
381381

382-
http.should_receive(:request).with(request, nil).and_return(build_ok_response(nil))
382+
http.should_receive(:request).with(request, '').and_return(build_ok_response(nil))
383383

384-
uri.delete({}, :page => '2', :per_page => '5')
384+
uri.delete({}, {:page => '2', :per_page => '5'}, '')
385385
end
386386

387387
it "should know how to delete with a ? appended to the uri and no appended parameters" do
@@ -392,9 +392,9 @@ def setup_http
392392
request = Net::HTTP::Delete.new('/glassware', {'page' => '2', 'per_page' => '5'})
393393
Net::HTTP::Delete.should_receive(:new).with('/glassware', {'page' => '2', 'per_page' => '5'}).and_return(request)
394394

395-
http.should_receive(:request).with(request, nil).and_return(build_ok_response(nil))
395+
http.should_receive(:request).with(request, '').and_return(build_ok_response(nil))
396396

397-
uri.delete({}, :page => '2', :per_page => '5')
397+
uri.delete({}, {:page => '2', :per_page => '5'}, '')
398398

399399
end
400400

@@ -408,9 +408,9 @@ def setup_http
408408
Net::HTTP::Delete.should_receive(:new).with('/glassware?owner=Kai&type=bottle', {'page' => '2', 'per_page' => '5'}).and_return(request)
409409

410410

411-
http.should_receive(:request).with(request, nil).and_return(build_ok_response(nil))
411+
http.should_receive(:request).with(request, '').and_return(build_ok_response(nil))
412412

413-
uri.delete(build_ordered_hash([[:owner, 'Kai'],[:type, 'bottle']]), :page => '2', :per_page => '5')
413+
uri.delete(build_ordered_hash([[:owner, 'Kai'],[:type, 'bottle']]), {:page => '2', :per_page => '5'}, '')
414414

415415
end
416416

@@ -423,9 +423,9 @@ def setup_http
423423

424424
Net::HTTP::Delete.should_receive(:new).with('/glassware?owner=kai&type=bottle&param1=one&param2=two', {'page' => '2', 'per_page' => '5'}).and_return(request)
425425

426-
http.should_receive(:request).with(request, nil).and_return(build_ok_response(nil))
426+
http.should_receive(:request).with(request, '').and_return(build_ok_response(nil))
427427

428-
uri.delete(build_ordered_hash([[:param1, 'one'],[:param2, 'two']]), :page => '2', :per_page => '5')
428+
uri.delete(build_ordered_hash([[:param1, 'one'],[:param2, 'two']]), {:page => '2', :per_page => '5'}, '')
429429
end
430430
end
431431
end

0 commit comments

Comments
 (0)