Skip to content

Commit 243cf06

Browse files
authored
Merge pull request #181 from rvowles/put-me-pull-you
Action Controller support for PUT requests
2 parents 8aa97d0 + 210dd68 commit 243cf06

File tree

2 files changed

+7
-3
lines changed

2 files changed

+7
-3
lines changed

lib/oauth/request_proxy/action_controller_request.rb

Lines changed: 5 additions & 1 deletion
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

Lines changed: 2 additions & 2 deletions
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)