feat: Add query to RequestOptions
refs: googleapis/google-cloud-ruby#7806 pr: #1224
This commit is contained in:
parent
530c2d91be
commit
cb0c5bf94e
|
@ -145,7 +145,7 @@ module Google
|
|||
options.authorization.respond_to?(:apply!)
|
||||
end
|
||||
|
||||
# Prepare the request (e.g. calculate headers, serialize data, etc) before sending
|
||||
# Prepare the request (e.g. calculate headers, add query params, serialize data, etc) before sending
|
||||
#
|
||||
# @private
|
||||
# @return [void]
|
||||
|
@ -153,6 +153,7 @@ module Google
|
|||
normalize_unicode = true
|
||||
if options
|
||||
header.update(options.header) if options.header
|
||||
query.update(options.query) if options.query
|
||||
normalize_unicode = options.normalize_unicode
|
||||
end
|
||||
self.url = url.expand(params, nil, normalize_unicode) if url.is_a?(Addressable::Template)
|
||||
|
|
|
@ -34,7 +34,8 @@ module Google
|
|||
:skip_deserialization,
|
||||
:api_format_version,
|
||||
:use_opencensus,
|
||||
:quota_project)
|
||||
:quota_project,
|
||||
:query)
|
||||
|
||||
# General client options
|
||||
class ClientOptions
|
||||
|
@ -62,13 +63,13 @@ module Google
|
|||
# Request options
|
||||
class RequestOptions
|
||||
# @!attribute [rw] authorization
|
||||
# @return [Signet::OAuth2::Client, #apply(Hash)] OAuth2 credentials
|
||||
# @return [Signet::OAuth2::Client, #apply(Hash)] OAuth2 credentials.
|
||||
# @!attribute [rw] retries
|
||||
# @return [Fixnum] Number of times to retry requests on server error
|
||||
# @return [Fixnum] Number of times to retry requests on server error.
|
||||
# @!attribute [rw] header
|
||||
# @return [Hash<String,String] Additional HTTP headers to include in requests
|
||||
# @return [Hash<String,String>] Additional HTTP headers to include in requests.
|
||||
# @!attribute [rw] normalize_unicode
|
||||
# @return [Boolean] True if unicode strings should be normalized in path parameters
|
||||
# @return [Boolean] True if unicode strings should be normalized in path parameters.
|
||||
# @!attribute [rw] skip_serialization
|
||||
# @return [Boolean] True if body object should be treated as raw text instead of an object.
|
||||
# @!attribute [rw] skip_deserialization
|
||||
|
@ -79,6 +80,8 @@ module Google
|
|||
# @return [Boolean] Whether OpenCensus spans should be generated for requests. Default is true.
|
||||
# @!attribute [rw] quota_project
|
||||
# @return [String] Project ID to charge quota, or `nil` to default to the credentials-specified project.
|
||||
# @!attribute [rw] query
|
||||
# @return [Hash<String,String>] Additional HTTP URL query parameters to include in requests.
|
||||
|
||||
# Get the default options
|
||||
# @return [Google::Apis::RequestOptions]
|
||||
|
|
|
@ -442,6 +442,17 @@ RSpec.describe Google::Apis::Core::HttpCommand do
|
|||
command.execute(client)
|
||||
end
|
||||
|
||||
it 'should prepend user query parameters from options and not remove initial query parameters', :focus do
|
||||
stub_request(:get, 'https://www.googleapis.com/zoo/animals?a=1&a=2&a=3&b=false&foo=bar')
|
||||
.to_return(status: [200, ''])
|
||||
command = Google::Apis::Core::HttpCommand.new(:get, 'https://www.googleapis.com/zoo/animals?foo=bar')
|
||||
command.options.query = {
|
||||
'a' => [1,2,3],
|
||||
'b' => false
|
||||
}
|
||||
command.execute(client)
|
||||
end
|
||||
|
||||
it 'should raise transmission error instead of socket error' do
|
||||
stub_request(:get, 'https://www.googleapis.com/zoo/animals').to_raise(SocketError)
|
||||
command = Google::Apis::Core::HttpCommand.new(:get, 'https://www.googleapis.com/zoo/animals')
|
||||
|
|
Loading…
Reference in New Issue