Skip to content

Commit 210dd68

Browse files
committed
Action Controller support for PUT requests
Most of the other request proxies support PUT requests and we need this gem to also support it for Action Controller. This addresses issue #180 It includes the modified Action Controller proxy and fixes the tests.
1 parent 8aa97d0 commit 210dd68

File tree

2 files changed

+7
-3
lines changed

2 files changed

+7
-3
lines changed

lib/oauth/request_proxy/action_controller_request.rb

+5-1
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ def parameters_for_signature
6060
params << header_params.to_query
6161
params << request.query_string unless query_string_blank?
6262

63-
if request.post? && request.content_type.to_s.downcase.start_with?("application/x-www-form-urlencoded")
63+
if raw_post_signature?
6464
params << request.raw_post
6565
end
6666
end
@@ -72,6 +72,10 @@ def parameters_for_signature
7272
reject { |kv| kv[0] == 'oauth_signature'}
7373
end
7474

75+
def raw_post_signature?
76+
(request.post? || request.put?) && request.content_type.to_s.downcase.start_with?("application/x-www-form-urlencoded")
77+
end
78+
7579
protected
7680

7781
def query_params

test/units/test_action_controller_request_proxy.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ def test_that_proxy_simple_post_request_works_with_post_params
7777
def test_that_proxy_simple_put_request_works_with_post_params
7878
request_proxy = request_proxy(:put, {}, {'key'=>'value'})
7979

80-
expected_parameters = []
80+
expected_parameters = [["key", "value"]]
8181
assert_equal expected_parameters, request_proxy.parameters_for_signature
8282
assert_equal 'PUT', request_proxy.method
8383
end
@@ -109,7 +109,7 @@ def test_that_proxy_simple_post_request_works_with_mixed_params
109109
def test_that_proxy_simple_put_request_works_with_mixed_params
110110
request_proxy = request_proxy(:put, {'key'=>'value'}, {'key2'=>'value2'})
111111

112-
expected_parameters = [["key", "value"]]
112+
expected_parameters = [["key", "value"],["key2", "value2"]]
113113
assert_equal expected_parameters, request_proxy.parameters_for_signature
114114
assert_equal 'PUT', request_proxy.method
115115
end

0 commit comments

Comments
 (0)