google-api-client 0.9.2 → 0.9.3
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/.travis.yml +1 -0
- data/CHANGELOG.md +9 -0
- data/Gemfile +1 -0
- data/README.md +2 -2
- data/api_names.yaml +19 -0
- data/api_names_out.yaml +843 -269
- data/bin/generate-api +18 -4
- data/generated/google/apis/adexchangebuyer_v1_4.rb +1 -1
- data/generated/google/apis/adexchangebuyer_v1_4/classes.rb +249 -9
- data/generated/google/apis/adexchangebuyer_v1_4/representations.rb +208 -1
- data/generated/google/apis/adexchangebuyer_v1_4/service.rb +68 -0
- data/generated/google/apis/adexchangeseller_v2_0/representations.rb +38 -0
- data/generated/google/apis/admin_datatransfer_v1.rb +2 -2
- data/generated/google/apis/admin_datatransfer_v1/representations.rb +12 -0
- data/generated/google/apis/admin_datatransfer_v1/service.rb +1 -1
- data/generated/google/apis/admin_directory_v1/representations.rb +118 -0
- data/generated/google/apis/admin_reports_v1/representations.rb +26 -0
- data/generated/google/apis/adsense_v1_4.rb +1 -1
- data/generated/google/apis/adsense_v1_4/classes.rb +0 -7
- data/generated/google/apis/adsense_v1_4/representations.rb +62 -1
- data/generated/google/apis/adsensehost_v4_1.rb +1 -1
- data/generated/google/apis/adsensehost_v4_1/representations.rb +40 -0
- data/generated/google/apis/analytics_v3.rb +1 -1
- data/generated/google/apis/analytics_v3/representations.rb +188 -0
- data/generated/google/apis/analytics_v3/service.rb +3 -3
- data/generated/google/apis/androidenterprise_v1.rb +1 -1
- data/generated/google/apis/androidenterprise_v1/representations.rb +76 -0
- data/generated/google/apis/androidenterprise_v1/service.rb +6 -2
- data/generated/google/apis/androidpublisher_v2.rb +1 -1
- data/generated/google/apis/androidpublisher_v2/representations.rb +92 -0
- data/generated/google/apis/appengine_v1beta5.rb +1 -1
- data/generated/google/apis/appengine_v1beta5/classes.rb +22 -1
- data/generated/google/apis/appengine_v1beta5/representations.rb +69 -0
- data/generated/google/apis/appengine_v1beta5/service.rb +43 -0
- data/generated/google/apis/appsactivity_v1/representations.rb +22 -0
- data/generated/google/apis/appstate_v1.rb +1 -1
- data/generated/google/apis/appstate_v1/representations.rb +8 -0
- data/generated/google/apis/autoscaler_v1beta2/representations.rb +32 -0
- data/generated/google/apis/bigquery_v2.rb +1 -1
- data/generated/google/apis/bigquery_v2/classes.rb +31 -0
- data/generated/google/apis/bigquery_v2/representations.rb +98 -0
- data/generated/google/apis/blogger_v3/representations.rb +70 -0
- data/generated/google/apis/books_v1/representations.rb +196 -0
- data/generated/google/apis/calendar_v3.rb +1 -1
- data/generated/google/apis/calendar_v3/representations.rb +64 -0
- data/generated/google/apis/civicinfo_v2/representations.rb +40 -0
- data/generated/google/apis/classroom_v1/representations.rb +28 -0
- data/generated/google/apis/cloudbilling_v1/representations.rb +8 -0
- data/generated/google/apis/cloudbuild_v1.rb +1 -1
- data/generated/google/apis/cloudbuild_v1/classes.rb +1 -1
- data/generated/google/apis/cloudbuild_v1/representations.rb +24 -0
- data/generated/google/apis/cloudbuild_v1/service.rb +2 -2
- data/generated/google/apis/clouddebugger_v2/representations.rb +54 -0
- data/generated/google/apis/cloudlatencytest_v2/representations.rb +14 -0
- data/generated/google/apis/cloudmonitoring_v2beta2.rb +1 -1
- data/generated/google/apis/cloudmonitoring_v2beta2/representations.rb +42 -0
- data/generated/google/apis/cloudresourcemanager_v1beta1.rb +1 -1
- data/generated/google/apis/cloudresourcemanager_v1beta1/classes.rb +15 -2
- data/generated/google/apis/cloudresourcemanager_v1beta1/representations.rb +38 -0
- data/generated/google/apis/cloudresourcemanager_v1beta1/service.rb +4 -1
- data/generated/google/apis/cloudtrace_v1/representations.rb +10 -0
- data/generated/google/apis/clouduseraccounts_beta/representations.rb +38 -0
- data/generated/google/apis/compute_beta.rb +1 -1
- data/generated/google/apis/compute_beta/classes.rb +512 -0
- data/generated/google/apis/compute_beta/representations.rb +599 -0
- data/generated/google/apis/compute_beta/service.rb +415 -0
- data/generated/google/apis/compute_v1.rb +1 -1
- data/generated/google/apis/compute_v1/representations.rb +386 -0
- data/generated/google/apis/container_v1/representations.rb +20 -0
- data/generated/google/apis/content_v2/representations.rb +296 -0
- data/generated/google/apis/coordinate_v1/representations.rb +36 -0
- data/generated/google/apis/customsearch_v1/representations.rb +26 -0
- data/generated/google/apis/dataproc_v1.rb +1 -1
- data/generated/google/apis/dataproc_v1/classes.rb +1415 -0
- data/generated/google/apis/dataproc_v1/representations.rb +569 -0
- data/generated/google/apis/dataproc_v1/service.rb +581 -4
- data/generated/google/apis/datastore_v1beta2/representations.rb +68 -0
- data/generated/google/apis/deploymentmanager_v2/representations.rb +58 -0
- data/generated/google/apis/dfareporting_v2_3/representations.rb +386 -0
- data/generated/google/apis/discovery_v1/representations.rb +40 -0
- data/generated/google/apis/dns_v1.rb +1 -1
- data/generated/google/apis/dns_v1/classes.rb +2 -2
- data/generated/google/apis/dns_v1/representations.rb +16 -0
- data/generated/google/apis/doubleclickbidmanager_v1/representations.rb +42 -0
- data/generated/google/apis/doubleclicksearch_v2.rb +1 -1
- data/generated/google/apis/doubleclicksearch_v2/representations.rb +34 -0
- data/generated/google/apis/drive_v2.rb +1 -1
- data/generated/google/apis/drive_v2/classes.rb +7 -0
- data/generated/google/apis/drive_v2/representations.rb +83 -0
- data/generated/google/apis/drive_v3.rb +1 -1
- data/generated/google/apis/drive_v3/classes.rb +7 -0
- data/generated/google/apis/drive_v3/representations.rb +51 -0
- data/generated/google/apis/fitness_v1/representations.rb +40 -0
- data/generated/google/apis/fusiontables_v2.rb +1 -1
- data/generated/google/apis/fusiontables_v2/representations.rb +48 -0
- data/generated/google/apis/games_configuration_v1configuration.rb +1 -1
- data/generated/google/apis/games_configuration_v1configuration/representations.rb +22 -0
- data/generated/google/apis/games_management_v1management.rb +1 -1
- data/generated/google/apis/games_management_v1management/representations.rb +30 -0
- data/generated/google/apis/games_v1.rb +1 -1
- data/generated/google/apis/games_v1/representations.rb +198 -0
- data/generated/google/apis/gan_v1beta1/representations.rb +34 -0
- data/generated/google/apis/genomics_v1.rb +1 -1
- data/generated/google/apis/genomics_v1/classes.rb +2 -211
- data/generated/google/apis/genomics_v1/representations.rb +119 -84
- data/generated/google/apis/gmail_v1/representations.rb +44 -0
- data/generated/google/apis/groupsmigration_v1/representations.rb +2 -0
- data/generated/google/apis/groupssettings_v1/representations.rb +2 -0
- data/generated/google/apis/identitytoolkit_v3.rb +1 -1
- data/generated/google/apis/identitytoolkit_v3/classes.rb +105 -0
- data/generated/google/apis/identitytoolkit_v3/representations.rb +99 -0
- data/generated/google/apis/identitytoolkit_v3/service.rb +36 -1
- data/generated/google/apis/kgsearch_v1/representations.rb +2 -0
- data/generated/google/apis/licensing_v1/representations.rb +6 -0
- data/generated/google/apis/logging_v2beta1/representations.rb +40 -0
- data/generated/google/apis/manager_v1beta2/representations.rb +70 -0
- data/generated/google/apis/mirror_v1/representations.rb +40 -0
- data/generated/google/apis/oauth2_v2.rb +1 -1
- data/generated/google/apis/oauth2_v2/representations.rb +8 -0
- data/generated/google/apis/pagespeedonline_v2/representations.rb +28 -0
- data/generated/google/apis/partners_v2/representations.rb +52 -0
- data/generated/google/apis/people_v1.rb +11 -11
- data/generated/google/apis/people_v1/classes.rb +888 -961
- data/generated/google/apis/people_v1/representations.rb +295 -225
- data/generated/google/apis/people_v1/service.rb +61 -65
- data/generated/google/apis/plus_domains_v1.rb +1 -1
- data/generated/google/apis/plus_domains_v1/representations.rb +124 -0
- data/generated/google/apis/plus_v1.rb +1 -1
- data/generated/google/apis/plus_v1/representations.rb +102 -0
- data/generated/google/apis/prediction_v1_6/classes.rb +1 -1
- data/generated/google/apis/prediction_v1_6/representations.rb +42 -0
- data/generated/google/apis/proximitybeacon_v1beta1/representations.rb +38 -0
- data/generated/google/apis/pubsub_v1/representations.rb +42 -0
- data/generated/google/apis/qpx_express_v1/representations.rb +48 -0
- data/generated/google/apis/replicapool_v1beta2/representations.rb +28 -0
- data/generated/google/apis/replicapoolupdater_v1beta1/representations.rb +30 -0
- data/generated/google/apis/reseller_v1.rb +1 -1
- data/generated/google/apis/reseller_v1/classes.rb +6 -0
- data/generated/google/apis/reseller_v1/representations.rb +23 -0
- data/generated/google/apis/resourceviews_v1beta2/representations.rb +32 -0
- data/generated/google/apis/script_v1/representations.rb +12 -0
- data/generated/google/apis/site_verification_v1/representations.rb +12 -0
- data/generated/google/apis/sqladmin_v1beta4.rb +1 -1
- data/generated/google/apis/sqladmin_v1beta4/classes.rb +50 -21
- data/generated/google/apis/sqladmin_v1beta4/representations.rb +98 -0
- data/generated/google/apis/sqladmin_v1beta4/service.rb +3 -3
- data/generated/google/apis/storage_v1.rb +1 -1
- data/generated/google/apis/storage_v1/representations.rb +52 -0
- data/generated/google/apis/storagetransfer_v1/representations.rb +48 -0
- data/generated/google/apis/tagmanager_v1.rb +1 -1
- data/generated/google/apis/tagmanager_v1/classes.rb +110 -0
- data/generated/google/apis/tagmanager_v1/representations.rb +96 -0
- data/generated/google/apis/tagmanager_v1/service.rb +303 -1
- data/generated/google/apis/taskqueue_v1beta2/representations.rb +12 -0
- data/generated/google/apis/tasks_v1/representations.rb +10 -0
- data/generated/google/apis/translate_v2.rb +1 -1
- data/generated/google/apis/translate_v2/representations.rb +12 -0
- data/generated/google/apis/urlshortener_v1/representations.rb +10 -0
- data/generated/google/apis/vision_v1.rb +37 -0
- data/generated/google/apis/vision_v1/classes.rb +1259 -0
- data/generated/google/apis/vision_v1/representations.rb +418 -0
- data/generated/google/apis/vision_v1/service.rb +91 -0
- data/generated/google/apis/webmasters_v3/representations.rb +32 -0
- data/generated/google/apis/youtube_analytics_v1/representations.rb +30 -0
- data/generated/google/apis/youtube_v3/representations.rb +332 -0
- data/generated/google/apis/youtubereporting_v1/representations.rb +16 -0
- data/google-api-client.gemspec +0 -2
- data/lib/google/api_client/client_secrets.rb +3 -4
- data/lib/google/apis/core/api_command.rb +5 -4
- data/lib/google/apis/core/http_command.rb +20 -4
- data/lib/google/apis/core/json_representation.rb +20 -2
- data/lib/google/apis/generator/annotator.rb +1 -1
- data/lib/google/apis/generator/templates/_representation_stub.tmpl +2 -0
- data/lib/google/apis/version.rb +1 -1
- data/script/generate +2 -1
- data/spec/google/api_client/client_secrets_spec.rb +2 -2
- data/spec/google/apis/core/api_command_spec.rb +2 -2
- data/spec/google/apis/core/http_command_spec.rb +19 -0
- data/spec/google/apis/core/json_representation_spec.rb +14 -7
- data/spec/google/apis/generator/generator_spec.rb +52 -0
- metadata +6 -30
|
@@ -24,34 +24,50 @@ module Google
|
|
|
24
24
|
|
|
25
25
|
class Media
|
|
26
26
|
class Representation < Google::Apis::Core::JsonRepresentation; end
|
|
27
|
+
|
|
28
|
+
include Google::Apis::Core::JsonObjectSupport
|
|
27
29
|
end
|
|
28
30
|
|
|
29
31
|
class ListReportTypesResponse
|
|
30
32
|
class Representation < Google::Apis::Core::JsonRepresentation; end
|
|
33
|
+
|
|
34
|
+
include Google::Apis::Core::JsonObjectSupport
|
|
31
35
|
end
|
|
32
36
|
|
|
33
37
|
class ReportType
|
|
34
38
|
class Representation < Google::Apis::Core::JsonRepresentation; end
|
|
39
|
+
|
|
40
|
+
include Google::Apis::Core::JsonObjectSupport
|
|
35
41
|
end
|
|
36
42
|
|
|
37
43
|
class Job
|
|
38
44
|
class Representation < Google::Apis::Core::JsonRepresentation; end
|
|
45
|
+
|
|
46
|
+
include Google::Apis::Core::JsonObjectSupport
|
|
39
47
|
end
|
|
40
48
|
|
|
41
49
|
class ListJobsResponse
|
|
42
50
|
class Representation < Google::Apis::Core::JsonRepresentation; end
|
|
51
|
+
|
|
52
|
+
include Google::Apis::Core::JsonObjectSupport
|
|
43
53
|
end
|
|
44
54
|
|
|
45
55
|
class Empty
|
|
46
56
|
class Representation < Google::Apis::Core::JsonRepresentation; end
|
|
57
|
+
|
|
58
|
+
include Google::Apis::Core::JsonObjectSupport
|
|
47
59
|
end
|
|
48
60
|
|
|
49
61
|
class ListReportsResponse
|
|
50
62
|
class Representation < Google::Apis::Core::JsonRepresentation; end
|
|
63
|
+
|
|
64
|
+
include Google::Apis::Core::JsonObjectSupport
|
|
51
65
|
end
|
|
52
66
|
|
|
53
67
|
class Report
|
|
54
68
|
class Representation < Google::Apis::Core::JsonRepresentation; end
|
|
69
|
+
|
|
70
|
+
include Google::Apis::Core::JsonObjectSupport
|
|
55
71
|
end
|
|
56
72
|
|
|
57
73
|
class Media
|
data/google-api-client.gemspec
CHANGED
|
@@ -18,9 +18,7 @@ Gem::Specification.new do |spec|
|
|
|
18
18
|
spec.require_paths = ['lib', 'generated', 'third_party']
|
|
19
19
|
|
|
20
20
|
spec.add_runtime_dependency 'representable', '~> 2.3.0'
|
|
21
|
-
spec.add_runtime_dependency 'multi_json', '~> 1.11'
|
|
22
21
|
spec.add_runtime_dependency 'retriable', '~> 2.0'
|
|
23
|
-
spec.add_runtime_dependency 'activesupport', '>= 3.2'
|
|
24
22
|
spec.add_runtime_dependency 'addressable', '~> 2.3'
|
|
25
23
|
spec.add_runtime_dependency 'mime-types', '>= 1.6'
|
|
26
24
|
spec.add_runtime_dependency 'hurley', '~> 0.1'
|
|
@@ -12,8 +12,7 @@
|
|
|
12
12
|
# See the License for the specific language governing permissions and
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
require 'compat/multi_json'
|
|
15
|
+
require 'json'
|
|
17
16
|
|
|
18
17
|
|
|
19
18
|
module Google
|
|
@@ -71,7 +70,7 @@ module Google
|
|
|
71
70
|
search_path = File.expand_path(File.join(search_path, '..'))
|
|
72
71
|
end
|
|
73
72
|
end
|
|
74
|
-
data = File.open(filename, 'r') { |file|
|
|
73
|
+
data = File.open(filename, 'r') { |file| JSON.load(file.read) }
|
|
75
74
|
return self.new(data)
|
|
76
75
|
end
|
|
77
76
|
|
|
@@ -119,7 +118,7 @@ module Google
|
|
|
119
118
|
# @return [String]
|
|
120
119
|
# JSON
|
|
121
120
|
def to_json
|
|
122
|
-
return
|
|
121
|
+
return Json.dump(to_hash)
|
|
123
122
|
end
|
|
124
123
|
|
|
125
124
|
def to_hash
|
|
@@ -12,12 +12,11 @@
|
|
|
12
12
|
# See the License for the specific language governing permissions and
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
|
|
15
|
-
require 'active_support/inflector'
|
|
16
15
|
require 'addressable/uri'
|
|
17
16
|
require 'addressable/template'
|
|
18
17
|
require 'google/apis/core/http_command'
|
|
19
18
|
require 'google/apis/errors'
|
|
20
|
-
require '
|
|
19
|
+
require 'json'
|
|
21
20
|
require 'retriable'
|
|
22
21
|
|
|
23
22
|
module Google
|
|
@@ -113,7 +112,7 @@ module Google
|
|
|
113
112
|
# HTTP response body
|
|
114
113
|
# @return [Hash]
|
|
115
114
|
def parse_error(body)
|
|
116
|
-
hash =
|
|
115
|
+
hash = JSON.load(body)
|
|
117
116
|
hash['error']['errors'].first
|
|
118
117
|
rescue
|
|
119
118
|
nil
|
|
@@ -127,7 +126,9 @@ module Google
|
|
|
127
126
|
# Updated header value
|
|
128
127
|
def normalize_fields_param(fields)
|
|
129
128
|
# TODO: Generate map of parameter names during code gen. Small possibility that camelization fails
|
|
130
|
-
fields.gsub(/:/, '').gsub(/\w+/)
|
|
129
|
+
fields.gsub(/:/, '').gsub(/\w+/) do |str|
|
|
130
|
+
str.gsub(/(?:^|_)([a-z])/){ Regexp.last_match.begin(0) == 0 ? $1 : $1.upcase }
|
|
131
|
+
end
|
|
131
132
|
end
|
|
132
133
|
end
|
|
133
134
|
end
|
|
@@ -145,6 +145,15 @@ module Google
|
|
|
145
145
|
header.update(options.header) if options && options.header
|
|
146
146
|
self.url = url.expand(params) if url.is_a?(Addressable::Template)
|
|
147
147
|
url.query_values = query.merge(url.query_values || {})
|
|
148
|
+
|
|
149
|
+
if [:post, :put].include?(method) && body.nil?
|
|
150
|
+
@form_encoded = true
|
|
151
|
+
self.body = Addressable::URI.form_encode(url.query_values(Array))
|
|
152
|
+
self.header['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8'
|
|
153
|
+
self.url.query_values = {}
|
|
154
|
+
else
|
|
155
|
+
@form_encoded = false
|
|
156
|
+
end
|
|
148
157
|
end
|
|
149
158
|
|
|
150
159
|
# Release any resources used by this command
|
|
@@ -242,7 +251,7 @@ module Google
|
|
|
242
251
|
# @raise [StandardError] if no block
|
|
243
252
|
def error(err, rethrow: false, &block)
|
|
244
253
|
logger.debug { sprintf('Error - %s', PP.pp(err, '')) }
|
|
245
|
-
err = Google::Apis::TransmissionError.new(err) if err.is_a?(Hurley::ClientError)
|
|
254
|
+
err = Google::Apis::TransmissionError.new(err) if err.is_a?(Hurley::ClientError) || err.is_a?(SocketError)
|
|
246
255
|
block.call(nil, err) if block_given?
|
|
247
256
|
fail err if rethrow || block.nil?
|
|
248
257
|
end
|
|
@@ -263,9 +272,11 @@ module Google
|
|
|
263
272
|
response = client.send(method, url, body) do |req|
|
|
264
273
|
# Temporary workaround for Hurley bug where the connection preference
|
|
265
274
|
# is ignored and it uses nested anyway
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
275
|
+
unless form_encoded?
|
|
276
|
+
req.url.query_class = Hurley::Query::Flat
|
|
277
|
+
query.each do | k, v|
|
|
278
|
+
req.url.query[k] = normalize_query_value(v)
|
|
279
|
+
end
|
|
269
280
|
end
|
|
270
281
|
# End workaround
|
|
271
282
|
apply_request_options(req)
|
|
@@ -292,10 +303,15 @@ module Google
|
|
|
292
303
|
end
|
|
293
304
|
req.header.update(header)
|
|
294
305
|
req.options.timeout = options.timeout_sec
|
|
306
|
+
req.options.open_timeout = options.open_timeout_sec
|
|
295
307
|
end
|
|
296
308
|
|
|
297
309
|
private
|
|
298
310
|
|
|
311
|
+
def form_encoded?
|
|
312
|
+
@form_encoded
|
|
313
|
+
end
|
|
314
|
+
|
|
299
315
|
def normalize_query_value(v)
|
|
300
316
|
case v
|
|
301
317
|
when Array
|
|
@@ -38,8 +38,8 @@ module Google
|
|
|
38
38
|
def getter_fn(name)
|
|
39
39
|
ivar_name = "@#{name}".to_sym
|
|
40
40
|
lambda do |_|
|
|
41
|
-
if respond_to?(:
|
|
42
|
-
|
|
41
|
+
if respond_to?(:fetch)
|
|
42
|
+
fetch(name, instance_variable_get(ivar_name))
|
|
43
43
|
else
|
|
44
44
|
instance_variable_get(ivar_name)
|
|
45
45
|
end
|
|
@@ -122,6 +122,24 @@ module Google
|
|
|
122
122
|
include Representable::JSON
|
|
123
123
|
feature JsonRepresentationSupport
|
|
124
124
|
end
|
|
125
|
+
|
|
126
|
+
module JsonObjectSupport
|
|
127
|
+
def self.included(base)
|
|
128
|
+
base.extend(ClassMethods)
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
module ClassMethods
|
|
132
|
+
def from_json(json)
|
|
133
|
+
representation = self.const_get(:Representation)
|
|
134
|
+
representation.new(self.new).from_json(json, unwrap: self)
|
|
135
|
+
end
|
|
136
|
+
end
|
|
137
|
+
|
|
138
|
+
def to_json
|
|
139
|
+
representation = self.class.const_get(:Representation)
|
|
140
|
+
representation.new(self).to_json(skip_undefined: true)
|
|
141
|
+
end
|
|
142
|
+
end
|
|
125
143
|
end
|
|
126
144
|
end
|
|
127
145
|
end
|
|
@@ -7,6 +7,8 @@ class <%= cls.generated_class_name %>
|
|
|
7
7
|
<%= indent(include('representation_stub', :cls => child_class), 2) -%>
|
|
8
8
|
<% end -%>
|
|
9
9
|
<% end -%>
|
|
10
|
+
|
|
11
|
+
include Google::Apis::Core::JsonObjectSupport
|
|
10
12
|
end
|
|
11
13
|
<% elsif cls.items && cls.items._ref.nil? -%>
|
|
12
14
|
<%= include('representation_stub', :cls => cls.items, :api => api) -%>
|
data/lib/google/apis/version.rb
CHANGED
data/script/generate
CHANGED
|
@@ -69,7 +69,7 @@ APIS=(adexchangebuyer:v1.4 \
|
|
|
69
69
|
pagespeedonline:v2 \
|
|
70
70
|
partners:v2 \
|
|
71
71
|
people:v1 \
|
|
72
|
-
|
|
72
|
+
plus:v1 \
|
|
73
73
|
plusDomains:v1 \
|
|
74
74
|
prediction:v1.6 \
|
|
75
75
|
proximitybeacon:v1beta1 \
|
|
@@ -89,6 +89,7 @@ APIS=(adexchangebuyer:v1.4 \
|
|
|
89
89
|
tasks:v1 \
|
|
90
90
|
translate:v2 \
|
|
91
91
|
urlshortener:v1 \
|
|
92
|
+
vision:v1 \
|
|
92
93
|
webmasters:v3 \
|
|
93
94
|
youtube:v3 \
|
|
94
95
|
youtubeAnalytics:v1 \
|
|
@@ -23,7 +23,7 @@ FIXTURES_PATH = File.expand_path('../../../fixtures', __FILE__)
|
|
|
23
23
|
RSpec.describe Google::APIClient::ClientSecrets do
|
|
24
24
|
describe '::new' do
|
|
25
25
|
let(:filename) { File.join(FIXTURES_PATH, 'files', 'client_secrets.json') }
|
|
26
|
-
let(:data) { File.open(filename, 'r') { |file|
|
|
26
|
+
let(:data) { File.open(filename, 'r') { |file| JSON.load(file.read) } }
|
|
27
27
|
|
|
28
28
|
context 'without options' do
|
|
29
29
|
subject { Google::APIClient::ClientSecrets.new(data) }
|
|
@@ -367,7 +367,7 @@ RSpec.describe Google::APIClient::ClientSecrets do
|
|
|
367
367
|
context 'with invalid JSON file' do
|
|
368
368
|
it 'should raise exception' do
|
|
369
369
|
file = File.join(FIXTURES_PATH, 'files', 'invalid.json')
|
|
370
|
-
expect { Google::APIClient::ClientSecrets.load(file) }.to raise_exception(
|
|
370
|
+
expect { Google::APIClient::ClientSecrets.load(file) }.to raise_exception(JSON::ParserError)
|
|
371
371
|
end
|
|
372
372
|
end
|
|
373
373
|
|
|
@@ -103,7 +103,7 @@ RSpec.describe Google::Apis::Core::HttpCommand do
|
|
|
103
103
|
context('with a field parameter') do
|
|
104
104
|
let(:command) do
|
|
105
105
|
command = Google::Apis::Core::ApiCommand.new(:get, 'https://www.googleapis.com/zoo/animals')
|
|
106
|
-
command.query['fields'] = ':items(:id, :long_name)'
|
|
106
|
+
command.query['fields'] = ':items(:id, :long_name, :a_really_long_name), shouldBeLeftAlone '
|
|
107
107
|
command
|
|
108
108
|
end
|
|
109
109
|
|
|
@@ -115,7 +115,7 @@ RSpec.describe Google::Apis::Core::HttpCommand do
|
|
|
115
115
|
it 'should normalize fields params' do
|
|
116
116
|
command.execute(client)
|
|
117
117
|
expect(a_request(:get, 'https://www.googleapis.com/zoo/animals')
|
|
118
|
-
.with(query: { 'fields' => 'items(id, longName)' })) .to have_been_made
|
|
118
|
+
.with(query: { 'fields' => 'items(id, longName, aReallyLongName), shouldBeLeftAlone ' })) .to have_been_made
|
|
119
119
|
end
|
|
120
120
|
end
|
|
121
121
|
|
|
@@ -281,4 +281,23 @@ RSpec.describe Google::Apis::Core::HttpCommand do
|
|
|
281
281
|
command.query['b'] = false
|
|
282
282
|
command.execute(client)
|
|
283
283
|
end
|
|
284
|
+
|
|
285
|
+
it 'should form encode parameters when method is POST and no body present' do
|
|
286
|
+
stub_request(:post, 'https://www.googleapis.com/zoo/animals')
|
|
287
|
+
.with(body: 'a=1&a=2&a=3&b=hello&c=&d=0')
|
|
288
|
+
.to_return(status: [200, ''])
|
|
289
|
+
command = Google::Apis::Core::HttpCommand.new(:post, 'https://www.googleapis.com/zoo/animals')
|
|
290
|
+
command.query['a'] = [1,2,3]
|
|
291
|
+
command.query['b'] = 'hello'
|
|
292
|
+
command.query['c'] = nil
|
|
293
|
+
command.query['d'] = 0
|
|
294
|
+
command.execute(client)
|
|
295
|
+
end
|
|
296
|
+
|
|
297
|
+
it 'should raise transmission error instead of socket error' do
|
|
298
|
+
stub_request(:get, 'https://www.googleapis.com/zoo/animals').to_raise(SocketError)
|
|
299
|
+
command = Google::Apis::Core::HttpCommand.new(:get, 'https://www.googleapis.com/zoo/animals')
|
|
300
|
+
command.options.retries = 0
|
|
301
|
+
expect { command.execute(client) }.to raise_error(Google::Apis::TransmissionError)
|
|
302
|
+
end
|
|
284
303
|
end
|
|
@@ -28,7 +28,8 @@ RSpec.describe Google::Apis::Core::JsonRepresentation do
|
|
|
28
28
|
attr_accessor :nil_value
|
|
29
29
|
attr_accessor :numeric_value
|
|
30
30
|
attr_accessor :string_value
|
|
31
|
-
attr_accessor :
|
|
31
|
+
attr_accessor :boolean_value_true
|
|
32
|
+
attr_accessor :boolean_value_false
|
|
32
33
|
attr_accessor :date_value
|
|
33
34
|
attr_accessor :bytes_value
|
|
34
35
|
attr_accessor :items
|
|
@@ -44,7 +45,8 @@ RSpec.describe Google::Apis::Core::JsonRepresentation do
|
|
|
44
45
|
property :nil_value, as: 'nilValue'
|
|
45
46
|
property :numeric_value, as: 'numericValue'
|
|
46
47
|
property :string_value, as: 'stringValue'
|
|
47
|
-
property :
|
|
48
|
+
property :boolean_value_true, as: 'booleanValueTrue'
|
|
49
|
+
property :boolean_value_false, as: 'booleanValueFalse'
|
|
48
50
|
property :date_value, as: 'dateValue', type: DateTime
|
|
49
51
|
property :bytes_value, as: 'bytesValue', base64: true
|
|
50
52
|
property :items
|
|
@@ -75,7 +77,8 @@ RSpec.describe Google::Apis::Core::JsonRepresentation do
|
|
|
75
77
|
end
|
|
76
78
|
|
|
77
79
|
it 'serializes boolean values' do
|
|
78
|
-
expect(json).to be_json_eql(%(true)).at_path('
|
|
80
|
+
expect(json).to be_json_eql(%(true)).at_path('booleanValueTrue')
|
|
81
|
+
expect(json).to be_json_eql(%(false)).at_path('booleanValueFalse')
|
|
79
82
|
end
|
|
80
83
|
|
|
81
84
|
it 'serializes date values' do
|
|
@@ -107,7 +110,8 @@ RSpec.describe Google::Apis::Core::JsonRepresentation do
|
|
|
107
110
|
model.numeric_value = 123
|
|
108
111
|
model.string_value = 'test'
|
|
109
112
|
model.date_value = DateTime.new(2015, 5, 1, 12)
|
|
110
|
-
model.
|
|
113
|
+
model.boolean_value_true = true
|
|
114
|
+
model.boolean_value_false = false
|
|
111
115
|
model.bytes_value = 'Hello world'
|
|
112
116
|
model.items = [1, 2, 3]
|
|
113
117
|
model.child = child_class.new
|
|
@@ -127,7 +131,8 @@ RSpec.describe Google::Apis::Core::JsonRepresentation do
|
|
|
127
131
|
string_value: 'test',
|
|
128
132
|
numeric_value: 123,
|
|
129
133
|
date_value: DateTime.new(2015, 5, 1, 12),
|
|
130
|
-
|
|
134
|
+
boolean_value_true: true,
|
|
135
|
+
boolean_value_false: false,
|
|
131
136
|
bytes_value: 'Hello world',
|
|
132
137
|
items: [1, 2, 3],
|
|
133
138
|
child: {
|
|
@@ -146,7 +151,8 @@ RSpec.describe Google::Apis::Core::JsonRepresentation do
|
|
|
146
151
|
json = <<EOF
|
|
147
152
|
{ "stringValue": "test",
|
|
148
153
|
"nilValue": null,
|
|
149
|
-
"
|
|
154
|
+
"booleanValueTrue": true,
|
|
155
|
+
"booleanValueFalse": false,
|
|
150
156
|
"numericValue": 123,
|
|
151
157
|
"dateValue": "2015-05-01T12:00:00+00:00",
|
|
152
158
|
"bytesValue": "SGVsbG8gd29ybGQ=",
|
|
@@ -170,7 +176,8 @@ EOF
|
|
|
170
176
|
end
|
|
171
177
|
|
|
172
178
|
it 'deserializes boolean values' do
|
|
173
|
-
expect(model.
|
|
179
|
+
expect(model.boolean_value_true).to be_truthy
|
|
180
|
+
expect(model.boolean_value_false).to be_falsey
|
|
174
181
|
end
|
|
175
182
|
|
|
176
183
|
it 'deserializes date values' do
|
|
@@ -120,6 +120,58 @@ RSpec.describe Google::Apis::Generator do
|
|
|
120
120
|
it 'should define subresource methods' do
|
|
121
121
|
expect(service.method(:list_thing_subthings)).to_not be_nil
|
|
122
122
|
end
|
|
123
|
+
|
|
124
|
+
context 'With the from_json method' do
|
|
125
|
+
let(:json) do
|
|
126
|
+
<<EOF
|
|
127
|
+
{
|
|
128
|
+
"name" : "A thing",
|
|
129
|
+
"properties": {
|
|
130
|
+
"prop_a" : "value_a"
|
|
131
|
+
},
|
|
132
|
+
"photo": {
|
|
133
|
+
"filename": "image.jpg"
|
|
134
|
+
},
|
|
135
|
+
"hat": {
|
|
136
|
+
"type": "topHat",
|
|
137
|
+
"height": 100
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
EOF
|
|
141
|
+
end
|
|
142
|
+
|
|
143
|
+
let(:thing) { Google::Apis::TestV1::Thing.from_json(json) }
|
|
144
|
+
|
|
145
|
+
it 'should return a thing' do
|
|
146
|
+
expect(thing).to be_instance_of(Google::Apis::TestV1::Thing)
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
it 'should parse properties' do
|
|
150
|
+
expect(thing.name).to eq 'A thing'
|
|
151
|
+
end
|
|
152
|
+
|
|
153
|
+
it 'should parse subtypes' do
|
|
154
|
+
expect(thing.photo.filename).to eq "image.jpg"
|
|
155
|
+
end
|
|
156
|
+
end
|
|
157
|
+
|
|
158
|
+
context 'With the to_json method' do
|
|
159
|
+
let(:thing) do
|
|
160
|
+
Google::Apis::TestV1::Thing.new(
|
|
161
|
+
name: "A thing",
|
|
162
|
+
properties: {
|
|
163
|
+
prop_a: "value_a"
|
|
164
|
+
},
|
|
165
|
+
photo: {
|
|
166
|
+
filename: "image.jpg"
|
|
167
|
+
},
|
|
168
|
+
hat: {
|
|
169
|
+
type: "topHat",
|
|
170
|
+
height: 100
|
|
171
|
+
}
|
|
172
|
+
)
|
|
173
|
+
end
|
|
174
|
+
end
|
|
123
175
|
end
|
|
124
176
|
|
|
125
177
|
context 'with the get_thing method' do
|