google-ads-common 0.12.6 → 0.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/ChangeLog +5 -0
- data/lib/ads_common/auth/oauth2_handler.rb +3 -2
- data/lib/ads_common/auth/oauth2_service_account_handler.rb +7 -24
- data/lib/ads_common/build/savon_abstract_generator.rb +2 -1
- data/lib/ads_common/build/savon_registry_generator.rb +4 -3
- data/lib/ads_common/build/savon_service_generator.rb +2 -2
- data/lib/ads_common/version.rb +1 -1
- data/test/test_oauth2_service_account_handler.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2f9fd925b1012604aaedfaba55ac60cd16fed3f3
|
4
|
+
data.tar.gz: 4a27eb4e56b52c99148be41fdcfc98946a9fd947
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1664c58b1bae120d33c4d890d4978c0702cd9caa65dffa39d146a985a42985df7bef92b93447d0c25f9a7158991f5371dce495943f2bc5f61bae5276081bb979
|
7
|
+
data.tar.gz: 71d90e5d480d8f17457261c13f8e61e2e573a72e27d42b1101fa8ba518fbcc920c75fa4fbed9fd3b285845305666e802f8721d6b9889a84de9def2a6e18b3b4d
|
data/ChangeLog
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
0.13.0:
|
2
|
+
- Removed support for p12 keyfiles for service accounts.
|
3
|
+
- Fixed issue #27. You can now force a refresh when fetching the access token
|
4
|
+
using the get_token function.
|
5
|
+
|
1
6
|
0.12.6:
|
2
7
|
- Added support for config param :oauth2_prompt and removed support for
|
3
8
|
:oauth2_approval_prompt, and updated URI parameter name. The expected value
|
@@ -82,9 +82,10 @@ module AdsCommon
|
|
82
82
|
end
|
83
83
|
|
84
84
|
# Overrides base get_token method to account for the token expiration.
|
85
|
-
def get_token(credentials = nil)
|
85
|
+
def get_token(credentials = nil, force_refresh = false)
|
86
86
|
token = super(credentials)
|
87
|
-
token = refresh_token! if !@client.nil? &&
|
87
|
+
token = refresh_token! if !@client.nil? &&
|
88
|
+
(force_refresh || @client.expired?)
|
88
89
|
return token
|
89
90
|
end
|
90
91
|
|
@@ -124,30 +124,20 @@ module AdsCommon
|
|
124
124
|
'key file provided, only one can be used.'
|
125
125
|
end
|
126
126
|
|
127
|
-
p12 = true
|
128
127
|
if credentials[:oauth2_keyfile]
|
129
128
|
file_name = credentials[:oauth2_keyfile]
|
130
129
|
if File.file?(file_name)
|
131
|
-
unless file_name.end_with?('.
|
130
|
+
unless file_name.end_with?('.json')
|
132
131
|
raise AdsCommon::Errors::AuthError,
|
133
|
-
"Key file '%s' must be
|
134
|
-
file_name
|
132
|
+
"Key file '%s' must be a .json file." % file_name
|
135
133
|
end
|
136
|
-
p12 = false if file_name.end_with?('.json')
|
137
134
|
else
|
138
135
|
raise AdsCommon::Errors::AuthError,
|
139
136
|
"Key file '%s' does not exist or not a file." % file_name
|
140
137
|
end
|
141
|
-
|
142
|
-
|
143
|
-
if credentials[:oauth2_issuer].nil? && p12
|
144
|
-
raise AdsCommon::Errors::AuthError,
|
145
|
-
'Issuer is not included in the credentials.'
|
146
|
-
end
|
147
|
-
|
148
|
-
if credentials[:oauth2_secret].nil? && p12
|
138
|
+
elsif credentials[:oauth2_issuer].nil?
|
149
139
|
raise AdsCommon::Errors::AuthError,
|
150
|
-
'
|
140
|
+
'Issuer must be specified in the config if not using a key file.'
|
151
141
|
end
|
152
142
|
|
153
143
|
if credentials[:oauth2_key] &&
|
@@ -195,16 +185,9 @@ module AdsCommon
|
|
195
185
|
def load_oauth2_service_account_credentials(credentials)
|
196
186
|
return credentials unless credentials.include?(:oauth2_keyfile)
|
197
187
|
key_file = File.read(credentials[:oauth2_keyfile])
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
key_secret = credentials[:oauth2_secret]
|
202
|
-
key = OpenSSL::PKCS12.new(key_file, key_secret).key
|
203
|
-
else
|
204
|
-
key_file_hash = JSON.parse(key_file, :symbolize_names => true)
|
205
|
-
key = OpenSSL::PKey::RSA.new(key_file_hash[:private_key])
|
206
|
-
issuer = key_file_hash[:client_email]
|
207
|
-
end
|
188
|
+
key_file_hash = JSON.parse(key_file, :symbolize_names => true)
|
189
|
+
key = OpenSSL::PKey::RSA.new(key_file_hash[:private_key])
|
190
|
+
issuer = key_file_hash[:client_email]
|
208
191
|
result = credentials.merge({:oauth2_key => key})
|
209
192
|
result[:oauth2_issuer] = issuer unless issuer.nil?
|
210
193
|
result.delete(:oauth2_keyfile)
|
@@ -15,7 +15,7 @@
|
|
15
15
|
# See the License for the specific language governing permissions and
|
16
16
|
# limitations under the License.
|
17
17
|
#
|
18
|
-
# Code template generator base class
|
18
|
+
# Code template generator base class.
|
19
19
|
|
20
20
|
require 'ads_savon'
|
21
21
|
require 'erb'
|
@@ -53,6 +53,7 @@ module AdsCommon
|
|
53
53
|
@modules_open_string = 'module ' +
|
54
54
|
[@api_name, @version.to_s.upcase, @service_name].join('; module ')
|
55
55
|
@modules_close_string = 'end; end; end'
|
56
|
+
@year = Time.now.year
|
56
57
|
end
|
57
58
|
|
58
59
|
def remove_lines_with_blanks_only(text)
|
@@ -15,11 +15,12 @@
|
|
15
15
|
# See the License for the specific language governing permissions and
|
16
16
|
# limitations under the License.
|
17
17
|
#
|
18
|
-
# Code template for registry generation for Savon backend
|
18
|
+
# Code template for registry generation for Savon backend.
|
19
|
+
|
20
|
+
require 'pp'
|
19
21
|
|
20
22
|
require 'ads_savon'
|
21
23
|
require 'ads_common/build/savon_abstract_generator'
|
22
|
-
require 'pp'
|
23
24
|
|
24
25
|
module AdsCommon
|
25
26
|
module Build
|
@@ -29,7 +30,7 @@ module AdsCommon
|
|
29
30
|
#
|
30
31
|
# This is auto-generated code, changes will be overwritten.
|
31
32
|
#
|
32
|
-
# Copyright:: Copyright
|
33
|
+
# Copyright:: Copyright <%= @year %>, Google Inc. All Rights Reserved.
|
33
34
|
# License:: Licensed under the Apache License, Version 2.0.
|
34
35
|
#
|
35
36
|
# <%= @generator_stamp %>
|
@@ -15,7 +15,7 @@
|
|
15
15
|
# See the License for the specific language governing permissions and
|
16
16
|
# limitations under the License.
|
17
17
|
#
|
18
|
-
# Code template for wrappers generation for Savon backend
|
18
|
+
# Code template for wrappers generation for Savon backend.
|
19
19
|
|
20
20
|
require 'ads_savon'
|
21
21
|
require 'ads_common/build/savon_abstract_generator'
|
@@ -29,7 +29,7 @@ module AdsCommon
|
|
29
29
|
#
|
30
30
|
# This is auto-generated code, changes will be overwritten.
|
31
31
|
#
|
32
|
-
# Copyright:: Copyright
|
32
|
+
# Copyright:: Copyright <%= @year %>, Google Inc. All Rights Reserved.
|
33
33
|
# License:: Licensed under the Apache License, Version 2.0.
|
34
34
|
#
|
35
35
|
# <%= @generator_stamp %>
|
data/lib/ads_common/version.rb
CHANGED
@@ -36,7 +36,7 @@ class TestOAuthServiceAccount < Test::Unit::TestCase
|
|
36
36
|
assert_nothing_raised do
|
37
37
|
validate_credentials(['test', '.json'])
|
38
38
|
end
|
39
|
-
|
39
|
+
assert_raise(AdsCommon::Errors::AuthError) do
|
40
40
|
validate_credentials(['test', '.p12'])
|
41
41
|
end
|
42
42
|
assert_raises(AdsCommon::Errors::AuthError) do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: google-ads-common
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.13.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sergio Gomes
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2017-03-16 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: google-ads-savon
|