lib/google/cloud/translate/service.rb in google-cloud-translate-1.0.1 vs lib/google/cloud/translate/service.rb in google-cloud-translate-1.1.0
- old
+ new
@@ -14,11 +14,11 @@
require "google/cloud/errors"
require "google/cloud/translate/credentials"
require "google/cloud/translate/version"
-require "faraday" # comes from googleauth, comes from google-cloud-core
+require "faraday"
module Google
module Cloud
module Translate
##
@@ -83,11 +83,11 @@
req.body = body unless body.nil?
if @key
req.params = { key: @key }
else
- @credentials.sign_http_request req
+ sign_http_request! req
end
end
end
return JSON.parse(response.body)["data"] if response.success?
@@ -125,9 +125,20 @@
backoff.execute do
yield
end
rescue Faraday::ConnectionFailed
raise Google::Cloud::ResourceExhaustedError
+ end
+
+ ##
+ # Sign Oauth2 API calls.
+ def sign_http_request! request
+ client = credentials.client
+ return if client.nil?
+
+ client.fetch_access_token! if client.expires_within? 30
+ client.generate_authenticated_request request: request
+ request
end
##
# @private Backoff
class Backoff