Added code to include userIp and key parameters.

This commit is contained in:
Bob Aman 2011-09-22 13:49:46 +03:00
parent a9ae33bb47
commit ef065ce8d6
2 changed files with 48 additions and 1 deletions

View File

@ -32,7 +32,7 @@ module Google
# These parameters are handled differently because they're not # These parameters are handled differently because they're not
# parameters to the API method, but rather to the API system. # parameters to the API method, but rather to the API system.
self.parameters['key'] ||= options[:key] if options[:key] self.parameters['key'] ||= options[:key] if options[:key]
self.parameters['user_ip'] ||= options[:user_ip] if options[:user_ip] self.parameters['userIp'] ||= options[:user_ip] if options[:user_ip]
self.headers = options[:headers] || [] self.headers = options[:headers] || []
if options[:body] if options[:body]
self.body = options[:body] self.body = options[:body]
@ -55,6 +55,10 @@ module Google
unless self.api_method unless self.api_method
self.http_method = options[:http_method] || 'GET' self.http_method = options[:http_method] || 'GET'
self.uri = options[:uri] self.uri = options[:uri]
unless self.parameters.empty?
self.uri.query_values =
(self.uri.query_values || {}).merge(self.parameters)
end
end end
end end

View File

@ -77,6 +77,49 @@ describe Google::APIClient do
'https://www.googleapis.com/discovery/v1/apis/prediction/v1/rest' 'https://www.googleapis.com/discovery/v1/apis/prediction/v1/rest'
end end
it 'should correctly determine the discovery URI if :user_ip is set' do
@client.user_ip = '127.0.0.1'
request = @client.generate_request(
:http_method => 'GET',
:uri => @client.discovery_uri('prediction', 'v1.2'),
:authenticated => false
)
http_method, uri, headers, body = request
uri.should === (
'https://www.googleapis.com/discovery/v1/apis/prediction/v1.2/rest' +
'?userIp=127.0.0.1'
)
end
it 'should correctly determine the discovery URI if :key is set' do
@client.key = 'qwerty'
request = @client.generate_request(
:http_method => 'GET',
:uri => @client.discovery_uri('prediction', 'v1.2'),
:authenticated => false
)
http_method, uri, headers, body = request
uri.should === (
'https://www.googleapis.com/discovery/v1/apis/prediction/v1.2/rest' +
'?key=qwerty'
)
end
it 'should correctly determine the discovery URI if both are set' do
@client.key = 'qwerty'
@client.user_ip = '127.0.0.1'
request = @client.generate_request(
:http_method => 'GET',
:uri => @client.discovery_uri('prediction', 'v1.2'),
:authenticated => false
)
http_method, uri, headers, body = request
uri.should === (
'https://www.googleapis.com/discovery/v1/apis/prediction/v1.2/rest' +
'?key=qwerty&userIp=127.0.0.1'
)
end
it 'should correctly generate API objects' do it 'should correctly generate API objects' do
@client.discovered_api('prediction', 'v1.2').name.should == 'prediction' @client.discovered_api('prediction', 'v1.2').name.should == 'prediction'
@client.discovered_api('prediction', 'v1.2').version.should == 'v1.2' @client.discovered_api('prediction', 'v1.2').version.should == 'v1.2'