Merge pull request #213 from remi/respect-discovered-rootUrl
Use discovered 'rootUrl' as base URI for services
This commit is contained in:
commit
0003e564b1
|
@ -30,7 +30,7 @@ module Google
|
||||||
# Creates a description of a particular version of a service.
|
# Creates a description of a particular version of a service.
|
||||||
#
|
#
|
||||||
# @param [String] document_base
|
# @param [String] document_base
|
||||||
# Base URI for the service
|
# Base URI for the discovery document.
|
||||||
# @param [Hash] discovery_document
|
# @param [Hash] discovery_document
|
||||||
# The section of the discovery document that applies to this service
|
# The section of the discovery document that applies to this service
|
||||||
# version.
|
# version.
|
||||||
|
@ -126,6 +126,16 @@ module Google
|
||||||
return @discovery_document['features'] || []
|
return @discovery_document['features'] || []
|
||||||
end
|
end
|
||||||
|
|
||||||
|
##
|
||||||
|
# Returns the root URI for this service.
|
||||||
|
#
|
||||||
|
# @return [Addressable::URI] The root URI.
|
||||||
|
def root_uri
|
||||||
|
return @root_uri ||= (
|
||||||
|
Addressable::URI.parse(self.discovery_document['rootUrl'])
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
##
|
##
|
||||||
# Returns true if this API uses a data wrapper.
|
# Returns true if this API uses a data wrapper.
|
||||||
#
|
#
|
||||||
|
@ -148,7 +158,7 @@ module Google
|
||||||
def method_base
|
def method_base
|
||||||
if @discovery_document['basePath']
|
if @discovery_document['basePath']
|
||||||
return @method_base ||= (
|
return @method_base ||= (
|
||||||
self.document_base.join(Addressable::URI.parse(@discovery_document['basePath']))
|
self.root_uri.join(Addressable::URI.parse(@discovery_document['basePath']))
|
||||||
).normalize
|
).normalize
|
||||||
else
|
else
|
||||||
return nil
|
return nil
|
||||||
|
|
|
@ -473,6 +473,10 @@ RSpec.describe Google::APIClient do
|
||||||
).to_env(CLIENT.connection)
|
).to_env(CLIENT.connection)
|
||||||
end).to raise_error(ArgumentError)
|
end).to raise_error(ArgumentError)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it 'should correctly determine the service root_uri' do
|
||||||
|
expect(@plus.root_uri.to_s).to eq('https://www.googleapis.com/')
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe 'with the adsense API' do
|
describe 'with the adsense API' do
|
||||||
|
@ -659,4 +663,30 @@ RSpec.describe Google::APIClient do
|
||||||
expect(@drive.files.insert.media_upload.max_size).not_to eq(nil)
|
expect(@drive.files.insert.media_upload.max_size).not_to eq(nil)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe 'with the Pub/Sub API' do
|
||||||
|
before do
|
||||||
|
CLIENT.authorization = nil
|
||||||
|
@pubsub = CLIENT.discovered_api('pubsub', 'v1beta2')
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'should generate requests against the correct URIs' do
|
||||||
|
conn = stub_connection do |stub|
|
||||||
|
stub.get('/v1beta2/projects/12345/topics') do |env|
|
||||||
|
expect(env[:url].host).to eq('pubsub.googleapis.com')
|
||||||
|
[200, {}, '{}']
|
||||||
|
end
|
||||||
|
end
|
||||||
|
request = CLIENT.execute(
|
||||||
|
:api_method => @pubsub.projects.topics.list,
|
||||||
|
:parameters => {'project' => 'projects/12345'},
|
||||||
|
:connection => conn
|
||||||
|
)
|
||||||
|
conn.verify
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'should correctly determine the service root_uri' do
|
||||||
|
expect(@pubsub.root_uri.to_s).to eq('https://pubsub.googleapis.com/')
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue