google-cloud-firestore 2.10.1 → 2.11.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f6f5f652c19f42202037ab6ea3281e24a0a78a73749b9ad0a3eea4e5028c934d
4
- data.tar.gz: b8f499a9749fe11b7eabe4998e2b51660c85083edadf89bc5aeedcdd60c0e363
3
+ metadata.gz: c8fe0d4f3e79da21256a4495d0a19da58febfaf27298ea1735fef2042c8c7281
4
+ data.tar.gz: 10e4929cd461e369991e153356d3878add4b179c972715880734456b566832ca
5
5
  SHA512:
6
- metadata.gz: 8c482b86c7d6a2f6fab119cb6056d2d9e34a45449496b154ed023bb81fec17a54a597cee2be7708ab6b630d5b46f76fe406899fcd3b8389a177199ac46f009a8
7
- data.tar.gz: '0944612066e1adcf21269961ec377e9b6ca3e809058328e5b002cfc0b80c5303c233420316ead38df278615092b6c3752fa47f55942054d378d2f4d9cd9f18f8'
6
+ metadata.gz: 7491e2f8033a2e2033e37e77b16e0401f9ecd77e9e357ecf47c72ab55204df6a7b8aa0a8bdf508d58215c3f6e3818a3ffaa7eebd0cc425e9355fe987df1bc478
7
+ data.tar.gz: 0f92c886ee8ba0043782aae64166947efd7d5ea1ccd0968fd21fa1bc2e7936f2eba3cb4805853a569d3631e221415fb2649a9c6a5aac101c87cdab1976558472
data/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Release History
2
2
 
3
+ ### 2.11.0 (2023-02-23)
4
+
5
+ #### Features
6
+
7
+ * Support REST transport ([#20446](https://github.com/googleapis/google-cloud-ruby/issues/20446))
8
+
3
9
  ### 2.10.1 (2023-02-16)
4
10
 
5
11
  #### Bug Fixes
@@ -34,17 +34,19 @@ module Google
34
34
 
35
35
  ##
36
36
  # Creates a new Service instance.
37
- def initialize project, credentials, host: nil, timeout: nil, database: nil
37
+ def initialize project, credentials, host: nil, timeout: nil, database: nil, transport: :grpc
38
38
  @project = project
39
39
  @credentials = credentials
40
40
  @host = host
41
41
  @timeout = timeout
42
42
  @database = database
43
+ @transport = transport
43
44
  end
44
45
 
45
46
  def firestore
46
- @firestore ||= \
47
- V1::Firestore::Client.new do |config|
47
+ @firestore ||= begin
48
+ client_class = @transport == :rest ? V1::Firestore::Rest::Client : V1::Firestore::Client
49
+ client_class.new do |config|
48
50
  config.credentials = credentials if credentials
49
51
  config.timeout = timeout if timeout
50
52
  config.endpoint = host if host
@@ -52,6 +54,7 @@ module Google
52
54
  config.lib_version = Google::Cloud::Firestore::VERSION
53
55
  config.metadata = { "google-cloud-resource-prefix": "projects/#{@project}/databases/#{@database}" }
54
56
  end
57
+ end
55
58
  end
56
59
 
57
60
  def get_documents document_paths, mask: nil, transaction: nil, read_time: nil
@@ -16,7 +16,7 @@
16
16
  module Google
17
17
  module Cloud
18
18
  module Firestore
19
- VERSION = "2.10.1".freeze
19
+ VERSION = "2.11.0".freeze
20
20
  end
21
21
  end
22
22
  end
@@ -61,6 +61,8 @@ module Google
61
61
  # If the param is nil, uses the value of the `emulator_host` config.
62
62
  # @param [String] database_id Identifier for a Firestore database. If not
63
63
  # present, the default database of the project is used.
64
+ # @param [:grpc,:rest] transport Which transport to use to communicate
65
+ # with the server. Defaults to `:grpc`.
64
66
  # @param [String] project Alias for the `project_id` argument. Deprecated.
65
67
  # @param [String] keyfile Alias for the `credentials` argument.
66
68
  # Deprecated.
@@ -79,6 +81,7 @@ module Google
79
81
  endpoint: nil,
80
82
  emulator_host: nil,
81
83
  database_id: nil,
84
+ transport: nil,
82
85
  project: nil,
83
86
  keyfile: nil
84
87
  project_id ||= (project || default_project_id)
@@ -87,13 +90,14 @@ module Google
87
90
  endpoint ||= configure.endpoint
88
91
  emulator_host ||= configure.emulator_host
89
92
  database_id ||= configure.database_id
93
+ transport ||= configure.transport
90
94
 
91
95
  if emulator_host
92
96
  project_id = project_id.to_s
93
97
  raise ArgumentError, "project_id is missing" if project_id.empty?
94
98
 
95
99
  service = Firestore::Service.new project_id, :this_channel_is_insecure, host: emulator_host,
96
- timeout: timeout, database: database_id
100
+ timeout: timeout, database: database_id, transport: transport
97
101
  return Firestore::Client.new service
98
102
  end
99
103
 
@@ -109,7 +113,7 @@ module Google
109
113
  raise ArgumentError, "project_id is missing" if project_id.empty?
110
114
 
111
115
  service = Firestore::Service.new project_id, credentials, host: endpoint,
112
- timeout: timeout, database: database_id
116
+ timeout: timeout, database: database_id, transport: transport
113
117
  Firestore::Client.new service
114
118
  end
115
119
 
@@ -44,6 +44,8 @@ module Google
44
44
  # @param [Integer] timeout Default timeout to use in requests. Optional.
45
45
  # @param [String] database_id Identifier for a Firestore database. If not
46
46
  # present, the default database of the project is used.
47
+ # @param [:grpc,:rest] transport Which transport to use to communicate
48
+ # with the server. Defaults to `:grpc`.
47
49
  #
48
50
  # @return [Google::Cloud::Firestore::Client]
49
51
  #
@@ -67,8 +69,16 @@ module Google
67
69
  # database_id = "my-todo-database"
68
70
  # firestore = gcloud.firestore database_id: database_id
69
71
  #
70
- def firestore scope: nil, timeout: nil, database_id: nil
71
- Google::Cloud.firestore @project, @keyfile, scope: scope, timeout: (timeout || @timeout), database_id: database_id
72
+ def firestore scope: nil,
73
+ timeout: nil,
74
+ database_id: nil,
75
+ transport: nil
76
+ transport ||= Google::Cloud.configure.firestore.transport
77
+ Google::Cloud.firestore @project, @keyfile,
78
+ scope: scope,
79
+ timeout: (timeout || @timeout),
80
+ database_id: database_id,
81
+ transport: transport
72
82
  end
73
83
 
74
84
  ##
@@ -94,6 +104,8 @@ module Google
94
104
  # @param [Integer] timeout Default timeout to use in requests. Optional.
95
105
  # @param [String] database_id Identifier for a Firestore database. If not
96
106
  # present, the default database of the project is used.
107
+ # @param [:grpc,:rest] transport Which transport to use to communicate
108
+ # with the server. Defaults to `:grpc`.
97
109
  #
98
110
  # @return [Google::Cloud::Firestore::Client]
99
111
  #
@@ -102,17 +114,26 @@ module Google
102
114
  #
103
115
  # firestore = Google::Cloud.firestore
104
116
  #
105
- def self.firestore project_id = nil, credentials = nil, scope: nil, timeout: nil, database_id: nil
117
+ def self.firestore project_id = nil,
118
+ credentials = nil,
119
+ scope: nil,
120
+ timeout: nil,
121
+ database_id: nil,
122
+ transport: nil
106
123
  require "google/cloud/firestore"
124
+ transport ||= Google::Cloud.configure.firestore.transport
107
125
  Google::Cloud::Firestore.new project_id: project_id,
108
126
  credentials: credentials,
109
127
  scope: scope,
110
128
  timeout: timeout,
111
- database_id: database_id
129
+ database_id: database_id,
130
+ transport: transport
112
131
  end
113
132
  end
114
133
  end
115
134
 
135
+ # rubocop:disable Metrics/BlockLength
136
+
116
137
  # Set the default firestore configuration
117
138
  Google::Cloud.configure.add_config! :firestore do |config|
118
139
  default_project = Google::Cloud::Config.deferred do
@@ -141,4 +162,7 @@ Google::Cloud.configure.add_config! :firestore do |config|
141
162
  config.add_field! :emulator_host, default_emulator, match: String, allow_nil: true
142
163
  config.add_field! :endpoint, "firestore.googleapis.com", match: String
143
164
  config.add_field! :database_id, "(default)", match: String
165
+ config.add_field! :transport, :grpc, match: Symbol
144
166
  end
167
+
168
+ # rubocop:enable Metrics/BlockLength
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google-cloud-firestore
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.10.1
4
+ version: 2.11.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Google Inc
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-02-16 00:00:00.000000000 Z
11
+ date: 2023-02-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: google-cloud-core
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0.8'
33
+ version: '0.10'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0.8'
40
+ version: '0.10'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: concurrent-ruby
43
43
  requirement: !ruby/object:Gem::Requirement