Changed discovery and directory methods to use the main code-path for generating requests.
This commit is contained in:
parent
de443469de
commit
7724b20e9a
|
@ -268,23 +268,30 @@ module Google
|
||||||
# @return [Hash] The parsed JSON from the directory document.
|
# @return [Hash] The parsed JSON from the directory document.
|
||||||
def directory_document
|
def directory_document
|
||||||
return @directory_document ||= (begin
|
return @directory_document ||= (begin
|
||||||
request_uri = self.directory_uri
|
request = self.generate_request(
|
||||||
request = ['GET', request_uri, [], []]
|
:http_method => 'GET',
|
||||||
|
:uri => self.directory_uri,
|
||||||
|
:authenticated => false
|
||||||
|
)
|
||||||
response = self.transmit(request)
|
response = self.transmit(request)
|
||||||
status, headers, body = response
|
status, headers, body = response
|
||||||
if status == 200 # TODO(bobaman) Better status code handling?
|
if status >= 200 && status < 300
|
||||||
|
# TODO(bobaman) Better status code handling?
|
||||||
merged_body = body.inject(StringIO.new) do |accu, chunk|
|
merged_body = body.inject(StringIO.new) do |accu, chunk|
|
||||||
accu.write(chunk)
|
accu.write(chunk)
|
||||||
accu
|
accu
|
||||||
end
|
end
|
||||||
::JSON.parse(merged_body.string)
|
::JSON.parse(merged_body.string)
|
||||||
elsif status >= 400 && status < 500
|
elsif status >= 400 && status < 500
|
||||||
|
_, request_uri, _, _ = request
|
||||||
raise ClientError,
|
raise ClientError,
|
||||||
"Could not retrieve discovery document at: #{request_uri}"
|
"Could not retrieve discovery document at: #{request_uri}"
|
||||||
elsif status >= 500 && status < 600
|
elsif status >= 500 && status < 600
|
||||||
|
_, request_uri, _, _ = request
|
||||||
raise ServerError,
|
raise ServerError,
|
||||||
"Could not retrieve discovery document at: #{request_uri}"
|
"Could not retrieve discovery document at: #{request_uri}"
|
||||||
elsif status > 600
|
elsif status > 600
|
||||||
|
_, request_uri, _, _ = request
|
||||||
raise TransmissionError,
|
raise TransmissionError,
|
||||||
"Could not retrieve discovery document at: #{request_uri}"
|
"Could not retrieve discovery document at: #{request_uri}"
|
||||||
end
|
end
|
||||||
|
@ -301,23 +308,30 @@ module Google
|
||||||
api = api.to_s
|
api = api.to_s
|
||||||
version = version || 'v1'
|
version = version || 'v1'
|
||||||
return @discovery_documents["#{api}:#{version}"] ||= (begin
|
return @discovery_documents["#{api}:#{version}"] ||= (begin
|
||||||
request_uri = self.discovery_uri(api, version)
|
request = self.generate_request(
|
||||||
request = ['GET', request_uri, [], []]
|
:http_method => 'GET',
|
||||||
|
:uri => self.discovery_uri(api, version),
|
||||||
|
:authenticated => false
|
||||||
|
)
|
||||||
response = self.transmit(request)
|
response = self.transmit(request)
|
||||||
status, headers, body = response
|
status, headers, body = response
|
||||||
if status == 200 # TODO(bobaman) Better status code handling?
|
if status >= 200 && status < 300
|
||||||
|
# TODO(bobaman) Better status code handling?
|
||||||
merged_body = body.inject(StringIO.new) do |accu, chunk|
|
merged_body = body.inject(StringIO.new) do |accu, chunk|
|
||||||
accu.write(chunk)
|
accu.write(chunk)
|
||||||
accu
|
accu
|
||||||
end
|
end
|
||||||
::JSON.parse(merged_body.string)
|
::JSON.parse(merged_body.string)
|
||||||
elsif status >= 400 && status < 500
|
elsif status >= 400 && status < 500
|
||||||
|
_, request_uri, _, _ = request
|
||||||
raise ClientError,
|
raise ClientError,
|
||||||
"Could not retrieve discovery document at: #{request_uri}"
|
"Could not retrieve discovery document at: #{request_uri}"
|
||||||
elsif status >= 500 && status < 600
|
elsif status >= 500 && status < 600
|
||||||
|
_, request_uri, _, _ = request
|
||||||
raise ServerError,
|
raise ServerError,
|
||||||
"Could not retrieve discovery document at: #{request_uri}"
|
"Could not retrieve discovery document at: #{request_uri}"
|
||||||
elsif status > 600
|
elsif status > 600
|
||||||
|
_, request_uri, _, _ = request
|
||||||
raise TransmissionError,
|
raise TransmissionError,
|
||||||
"Could not retrieve discovery document at: #{request_uri}"
|
"Could not retrieve discovery document at: #{request_uri}"
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue