test_sdk 0.0.4
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 +7 -0
- data/lib/core/file_utilities.rb +26 -0
- data/lib/environment.rb +7 -0
- data/lib/gemconfig.rb +14 -0
- data/lib/requests.rb +166 -0
- data/lib/test_sdk/benchmark/client.rb +1031 -0
- data/lib/test_sdk/company/client.rb +474 -0
- data/lib/test_sdk/deal/client.rb +584 -0
- data/lib/test_sdk/file/client.rb +692 -0
- data/lib/test_sdk/financials/client.rb +97 -0
- data/lib/test_sdk/group/client.rb +737 -0
- data/lib/test_sdk/macro/client.rb +422 -0
- data/lib/test_sdk/metadata/client.rb +95 -0
- data/lib/test_sdk/product/client.rb +419 -0
- data/lib/test_sdk/talent/client.rb +266 -0
- data/lib/test_sdk/types/account_manager_response.rb +74 -0
- data/lib/test_sdk/types/all_data_metadata_response.rb +68 -0
- data/lib/test_sdk/types/area.rb +74 -0
- data/lib/test_sdk/types/authenticate_api_key_response.rb +55 -0
- data/lib/test_sdk/types/available_categories_response.rb +5 -0
- data/lib/test_sdk/types/available_models_response.rb +69 -0
- data/lib/test_sdk/types/band_response.rb +83 -0
- data/lib/test_sdk/types/benchmark_quantile.rb +465 -0
- data/lib/test_sdk/types/categories_metadata_response.rb +72 -0
- data/lib/test_sdk/types/category_growth_rates.rb +143 -0
- data/lib/test_sdk/types/category_metadata.rb +79 -0
- data/lib/test_sdk/types/category_metadata_default_user_type.rb +8 -0
- data/lib/test_sdk/types/cohorts_response.rb +132 -0
- data/lib/test_sdk/types/column_metadata.rb +110 -0
- data/lib/test_sdk/types/column_mini_metadata.rb +83 -0
- data/lib/test_sdk/types/columns_metadata_response.rb +72 -0
- data/lib/test_sdk/types/company_response.rb +120 -0
- data/lib/test_sdk/types/concentration_endpoint_cdf_detail.rb +96 -0
- data/lib/test_sdk/types/concentration_endpoint_top_users_detail.rb +72 -0
- data/lib/test_sdk/types/concentration_response.rb +103 -0
- data/lib/test_sdk/types/concentration_timeseries_detail.rb +159 -0
- data/lib/test_sdk/types/contribution_response.rb +135 -0
- data/lib/test_sdk/types/create_api_key_response.rb +55 -0
- data/lib/test_sdk/types/create_file_for_signed_url_response.rb +127 -0
- data/lib/test_sdk/types/create_file_response.rb +113 -0
- data/lib/test_sdk/types/deal_combined_metrics_response.rb +477 -0
- data/lib/test_sdk/types/deal_data_availablity_response.rb +109 -0
- data/lib/test_sdk/types/deal_with_files_response.rb +194 -0
- data/lib/test_sdk/types/endpoint_seniority_count.rb +66 -0
- data/lib/test_sdk/types/executive_profile.rb +91 -0
- data/lib/test_sdk/types/executive_profile_position.rb +97 -0
- data/lib/test_sdk/types/file_response.rb +113 -0
- data/lib/test_sdk/types/file_type.rb +14 -0
- data/lib/test_sdk/types/financial_metrics.rb +113 -0
- data/lib/test_sdk/types/financials_response.rb +102 -0
- data/lib/test_sdk/types/frequency.rb +9 -0
- data/lib/test_sdk/types/function_level_growth_accounting.rb +111 -0
- data/lib/test_sdk/types/gcs_signed_url_response.rb +81 -0
- data/lib/test_sdk/types/group_response.rb +158 -0
- data/lib/test_sdk/types/group_user.rb +124 -0
- data/lib/test_sdk/types/group_with_users_response.rb +170 -0
- data/lib/test_sdk/types/growth_accounting_response.rb +226 -0
- data/lib/test_sdk/types/healthz_response.rb +55 -0
- data/lib/test_sdk/types/http_validation_error.rb +61 -0
- data/lib/test_sdk/types/income_statement_entry.rb +81 -0
- data/lib/test_sdk/types/model_metadata.rb +76 -0
- data/lib/test_sdk/types/models_metadata_response.rb +76 -0
- data/lib/test_sdk/types/paginated_response_company_response.rb +83 -0
- data/lib/test_sdk/types/paginated_response_deal_with_files_response.rb +84 -0
- data/lib/test_sdk/types/paginated_response_file_response.rb +83 -0
- data/lib/test_sdk/types/paginated_response_group_user.rb +83 -0
- data/lib/test_sdk/types/permission_model.rb +65 -0
- data/lib/test_sdk/types/priority.rb +10 -0
- data/lib/test_sdk/types/product_info_response.rb +65 -0
- data/lib/test_sdk/types/role_response.rb +95 -0
- data/lib/test_sdk/types/scale.rb +72 -0
- data/lib/test_sdk/types/scale_model.rb +80 -0
- data/lib/test_sdk/types/scale_models_response.rb +5 -0
- data/lib/test_sdk/types/scaling.rb +10 -0
- data/lib/test_sdk/types/status.rb +12 -0
- data/lib/test_sdk/types/tradeoff_model.rb +95 -0
- data/lib/test_sdk/types/tradeoff_models_response.rb +5 -0
- data/lib/test_sdk/types/unit.rb +12 -0
- data/lib/test_sdk/types/unit_economics_info_response.rb +55 -0
- data/lib/test_sdk/types/user_accounting_response.rb +168 -0
- data/lib/test_sdk/types/user_role_response.rb +77 -0
- data/lib/test_sdk/types/user_type.rb +12 -0
- data/lib/test_sdk/types/user_with_groups_response.rb +140 -0
- data/lib/test_sdk/types/user_with_permissions_response.rb +153 -0
- data/lib/test_sdk/types/validation_error.rb +76 -0
- data/lib/test_sdk/types/validation_error_loc_item.rb +52 -0
- data/lib/test_sdk/types/weather_components.rb +123 -0
- data/lib/test_sdk/types/weather_gauge.rb +76 -0
- data/lib/test_sdk/types/weather_market_context.rb +109 -0
- data/lib/test_sdk/types/weather_metadata.rb +113 -0
- data/lib/test_sdk/unit_economics/client.rb +124 -0
- data/lib/test_sdk/user/client.rb +363 -0
- data/lib/test_sdk.rb +190 -0
- data/lib/types_export.rb +77 -0
- metadata +251 -0
@@ -0,0 +1,692 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "../../requests"
|
4
|
+
require_relative "../types/file_type"
|
5
|
+
require_relative "../types/create_file_response"
|
6
|
+
require_relative "../../core/file_utilities"
|
7
|
+
require_relative "../types/create_file_for_signed_url_response"
|
8
|
+
require_relative "../types/paginated_response_file_response"
|
9
|
+
require_relative "../types/file_response"
|
10
|
+
require "json"
|
11
|
+
require_relative "../types/gcs_signed_url_response"
|
12
|
+
require "async"
|
13
|
+
|
14
|
+
module NewDemoApiClient
|
15
|
+
class FileClient
|
16
|
+
# @return [NewDemoApiClient::RequestClient]
|
17
|
+
attr_reader :request_client
|
18
|
+
|
19
|
+
# @param request_client [NewDemoApiClient::RequestClient]
|
20
|
+
# @return [NewDemoApiClient::FileClient]
|
21
|
+
def initialize(request_client:)
|
22
|
+
@request_client = request_client
|
23
|
+
end
|
24
|
+
|
25
|
+
# Upload a file for a specific group and deal. Creates a file entry as well as
|
26
|
+
# uploads its contents.
|
27
|
+
# NOTE: Uploads are limited to 10 GB. For larger file uploads use the signed-url
|
28
|
+
# upload endpoint.
|
29
|
+
#
|
30
|
+
# @param deal_id [Integer]
|
31
|
+
# @param group_id [Integer]
|
32
|
+
# @param file [String, IO]
|
33
|
+
# @param name [String]
|
34
|
+
# @param filetype [NewDemoApiClient::FileType]
|
35
|
+
# @param request_options [NewDemoApiClient::RequestOptions]
|
36
|
+
# @return [NewDemoApiClient::CreateFileResponse]
|
37
|
+
# @example
|
38
|
+
# api = NewDemoApiClient::Client.new(
|
39
|
+
# base_url: "https://api.example.com",
|
40
|
+
# environment: NewDemoApiClient::Environment::DEFAULT,
|
41
|
+
# token: "YOUR_AUTH_TOKEN"
|
42
|
+
# )
|
43
|
+
# api.file.upload(
|
44
|
+
# deal_id: 1,
|
45
|
+
# group_id: 1,
|
46
|
+
# file: my_file.txt
|
47
|
+
# )
|
48
|
+
def upload(deal_id:, group_id:, file:, name:, filetype:, request_options: nil)
|
49
|
+
response = @request_client.conn.post do |req|
|
50
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
51
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
52
|
+
req.headers = {
|
53
|
+
**(req.headers || {}),
|
54
|
+
**@request_client.get_headers,
|
55
|
+
**(request_options&.additional_headers || {})
|
56
|
+
}.compact
|
57
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
58
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
59
|
+
end
|
60
|
+
req.body = {
|
61
|
+
**(request_options&.additional_body_parameters || {}),
|
62
|
+
file: NewDemoApiClient::FileUtilities.as_faraday_multipart(file_like: file),
|
63
|
+
name: name,
|
64
|
+
filetype: filetype
|
65
|
+
}.compact
|
66
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{deal_id}/deal/#{group_id}/file"
|
67
|
+
end
|
68
|
+
NewDemoApiClient::CreateFileResponse.from_json(json_object: response.body)
|
69
|
+
end
|
70
|
+
|
71
|
+
# Create a new file entry for a specific group and deal. Requires the contents to
|
72
|
+
# be uploaded separately via signed-url.
|
73
|
+
#
|
74
|
+
# @param deal_id [Integer]
|
75
|
+
# @param group_id [Integer]
|
76
|
+
# @param name [String] The huamn-readable name of the file
|
77
|
+
# @param type [NewDemoApiClient::FileType] The type of the file
|
78
|
+
# @param request_options [NewDemoApiClient::RequestOptions]
|
79
|
+
# @return [NewDemoApiClient::CreateFileForSignedURLResponse]
|
80
|
+
# @example
|
81
|
+
# api = NewDemoApiClient::Client.new(
|
82
|
+
# base_url: "https://api.example.com",
|
83
|
+
# environment: NewDemoApiClient::Environment::DEFAULT,
|
84
|
+
# token: "YOUR_AUTH_TOKEN"
|
85
|
+
# )
|
86
|
+
# api.file.create_file_entry(
|
87
|
+
# deal_id: 1,
|
88
|
+
# group_id: 1,
|
89
|
+
# name: "name"
|
90
|
+
# )
|
91
|
+
def create_file_entry(deal_id:, group_id:, name:, type: nil, request_options: nil)
|
92
|
+
response = @request_client.conn.post do |req|
|
93
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
94
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
95
|
+
req.headers = {
|
96
|
+
**(req.headers || {}),
|
97
|
+
**@request_client.get_headers,
|
98
|
+
**(request_options&.additional_headers || {})
|
99
|
+
}.compact
|
100
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
101
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
102
|
+
end
|
103
|
+
req.body = { **(request_options&.additional_body_parameters || {}), name: name, type: type }.compact
|
104
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{deal_id}/deal/#{group_id}/file/entry"
|
105
|
+
end
|
106
|
+
NewDemoApiClient::CreateFileForSignedURLResponse.from_json(json_object: response.body)
|
107
|
+
end
|
108
|
+
|
109
|
+
# Get all files for a specific group and deal.
|
110
|
+
#
|
111
|
+
# @param deal_id [Integer]
|
112
|
+
# @param group_id [Integer]
|
113
|
+
# @param sort_by [String]
|
114
|
+
# @param sort_order [String]
|
115
|
+
# @param page [Integer]
|
116
|
+
# @param page_size [Integer]
|
117
|
+
# @param request_options [NewDemoApiClient::RequestOptions]
|
118
|
+
# @return [NewDemoApiClient::PaginatedResponseFileResponse]
|
119
|
+
# @example
|
120
|
+
# api = NewDemoApiClient::Client.new(
|
121
|
+
# base_url: "https://api.example.com",
|
122
|
+
# environment: NewDemoApiClient::Environment::DEFAULT,
|
123
|
+
# token: "YOUR_AUTH_TOKEN"
|
124
|
+
# )
|
125
|
+
# api.file.list(deal_id: 1, group_id: 1)
|
126
|
+
def list(deal_id:, group_id:, sort_by: nil, sort_order: nil, page: nil, page_size: nil, request_options: nil)
|
127
|
+
response = @request_client.conn.get do |req|
|
128
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
129
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
130
|
+
req.headers = {
|
131
|
+
**(req.headers || {}),
|
132
|
+
**@request_client.get_headers,
|
133
|
+
**(request_options&.additional_headers || {})
|
134
|
+
}.compact
|
135
|
+
req.params = {
|
136
|
+
**(request_options&.additional_query_parameters || {}),
|
137
|
+
"sort_by": sort_by,
|
138
|
+
"sort_order": sort_order,
|
139
|
+
"page": page,
|
140
|
+
"page_size": page_size
|
141
|
+
}.compact
|
142
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
143
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
144
|
+
end
|
145
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{deal_id}/deal/#{group_id}/file/all"
|
146
|
+
end
|
147
|
+
NewDemoApiClient::PaginatedResponseFileResponse.from_json(json_object: response.body)
|
148
|
+
end
|
149
|
+
|
150
|
+
# Get a file by its ID for a specific group and deal.
|
151
|
+
#
|
152
|
+
# @param deal_id [Integer]
|
153
|
+
# @param file_id [Integer]
|
154
|
+
# @param group_id [Integer]
|
155
|
+
# @param request_options [NewDemoApiClient::RequestOptions]
|
156
|
+
# @return [NewDemoApiClient::FileResponse]
|
157
|
+
# @example
|
158
|
+
# api = NewDemoApiClient::Client.new(
|
159
|
+
# base_url: "https://api.example.com",
|
160
|
+
# environment: NewDemoApiClient::Environment::DEFAULT,
|
161
|
+
# token: "YOUR_AUTH_TOKEN"
|
162
|
+
# )
|
163
|
+
# api.file.get(
|
164
|
+
# deal_id: 1,
|
165
|
+
# file_id: 1,
|
166
|
+
# group_id: 1
|
167
|
+
# )
|
168
|
+
def get(deal_id:, file_id:, group_id:, request_options: nil)
|
169
|
+
response = @request_client.conn.get do |req|
|
170
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
171
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
172
|
+
req.headers = {
|
173
|
+
**(req.headers || {}),
|
174
|
+
**@request_client.get_headers,
|
175
|
+
**(request_options&.additional_headers || {})
|
176
|
+
}.compact
|
177
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
178
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
179
|
+
end
|
180
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
181
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
182
|
+
end
|
183
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{deal_id}/deal/#{file_id}/file/#{group_id}"
|
184
|
+
end
|
185
|
+
NewDemoApiClient::FileResponse.from_json(json_object: response.body)
|
186
|
+
end
|
187
|
+
|
188
|
+
# Update a file by its ID for a specific group and deal.
|
189
|
+
#
|
190
|
+
# @param file_id [Integer]
|
191
|
+
# @param group_id [Integer]
|
192
|
+
# @param deal_id [Integer]
|
193
|
+
# @param type [NewDemoApiClient::FileType]
|
194
|
+
# @param request_options [NewDemoApiClient::RequestOptions]
|
195
|
+
# @return [NewDemoApiClient::FileResponse]
|
196
|
+
# @example
|
197
|
+
# api = NewDemoApiClient::Client.new(
|
198
|
+
# base_url: "https://api.example.com",
|
199
|
+
# environment: NewDemoApiClient::Environment::DEFAULT,
|
200
|
+
# token: "YOUR_AUTH_TOKEN"
|
201
|
+
# )
|
202
|
+
# api.file.update(
|
203
|
+
# file_id: 1,
|
204
|
+
# group_id: 1,
|
205
|
+
# deal_id: 1
|
206
|
+
# )
|
207
|
+
def update(file_id:, group_id:, deal_id:, type: nil, request_options: nil)
|
208
|
+
response = @request_client.conn.put do |req|
|
209
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
210
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
211
|
+
req.headers = {
|
212
|
+
**(req.headers || {}),
|
213
|
+
**@request_client.get_headers,
|
214
|
+
**(request_options&.additional_headers || {})
|
215
|
+
}.compact
|
216
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
217
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
218
|
+
end
|
219
|
+
req.body = { **(request_options&.additional_body_parameters || {}), type: type }.compact
|
220
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{file_id}/deal/#{group_id}/file/#{deal_id}"
|
221
|
+
end
|
222
|
+
NewDemoApiClient::FileResponse.from_json(json_object: response.body)
|
223
|
+
end
|
224
|
+
|
225
|
+
# Delete a file by its ID for a specific group and deal.
|
226
|
+
#
|
227
|
+
# @param file_id [Integer]
|
228
|
+
# @param group_id [Integer]
|
229
|
+
# @param deal_id [Integer]
|
230
|
+
# @param archive [Boolean]
|
231
|
+
# @param request_options [NewDemoApiClient::RequestOptions]
|
232
|
+
# @return [Object]
|
233
|
+
# @example
|
234
|
+
# api = NewDemoApiClient::Client.new(
|
235
|
+
# base_url: "https://api.example.com",
|
236
|
+
# environment: NewDemoApiClient::Environment::DEFAULT,
|
237
|
+
# token: "YOUR_AUTH_TOKEN"
|
238
|
+
# )
|
239
|
+
# api.file.delete(
|
240
|
+
# file_id: 1,
|
241
|
+
# group_id: 1,
|
242
|
+
# deal_id: 1
|
243
|
+
# )
|
244
|
+
def delete(file_id:, group_id:, deal_id:, archive: nil, request_options: nil)
|
245
|
+
response = @request_client.conn.delete do |req|
|
246
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
247
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
248
|
+
req.headers = {
|
249
|
+
**(req.headers || {}),
|
250
|
+
**@request_client.get_headers,
|
251
|
+
**(request_options&.additional_headers || {})
|
252
|
+
}.compact
|
253
|
+
req.params = { **(request_options&.additional_query_parameters || {}), "archive": archive }.compact
|
254
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
255
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
256
|
+
end
|
257
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{file_id}/deal/#{group_id}/file/#{deal_id}"
|
258
|
+
end
|
259
|
+
JSON.parse(response.body)
|
260
|
+
end
|
261
|
+
|
262
|
+
# Download a file by its ID for a specific group and deal.
|
263
|
+
# NOTE: Downloads are limited to 10 GB. For larger file downloads use the
|
264
|
+
# signed-url download endpoint.
|
265
|
+
#
|
266
|
+
# @param deal_id [Integer]
|
267
|
+
# @param file_id [Integer]
|
268
|
+
# @param group_id [Integer]
|
269
|
+
# @param request_options [NewDemoApiClient::RequestOptions]
|
270
|
+
# @return [Object]
|
271
|
+
# @example
|
272
|
+
# api = NewDemoApiClient::Client.new(
|
273
|
+
# base_url: "https://api.example.com",
|
274
|
+
# environment: NewDemoApiClient::Environment::DEFAULT,
|
275
|
+
# token: "YOUR_AUTH_TOKEN"
|
276
|
+
# )
|
277
|
+
# api.file.download(
|
278
|
+
# deal_id: 1,
|
279
|
+
# file_id: 1,
|
280
|
+
# group_id: 1
|
281
|
+
# )
|
282
|
+
def download(deal_id:, file_id:, group_id:, request_options: nil)
|
283
|
+
response = @request_client.conn.get do |req|
|
284
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
285
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
286
|
+
req.headers = {
|
287
|
+
**(req.headers || {}),
|
288
|
+
**@request_client.get_headers,
|
289
|
+
**(request_options&.additional_headers || {})
|
290
|
+
}.compact
|
291
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
292
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
293
|
+
end
|
294
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
295
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
296
|
+
end
|
297
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{deal_id}/deal/#{file_id}/file/#{group_id}/download"
|
298
|
+
end
|
299
|
+
JSON.parse(response.body)
|
300
|
+
end
|
301
|
+
|
302
|
+
# Get a signed URL to read a file by its ID for a specific group and deal.
|
303
|
+
#
|
304
|
+
# @param deal_id [Integer]
|
305
|
+
# @param file_id [Integer]
|
306
|
+
# @param group_id [Integer]
|
307
|
+
# @param content_type [String]
|
308
|
+
# @param download [Boolean]
|
309
|
+
# @param request_options [NewDemoApiClient::RequestOptions]
|
310
|
+
# @return [NewDemoApiClient::GcsSignedURLResponse]
|
311
|
+
# @example
|
312
|
+
# api = NewDemoApiClient::Client.new(
|
313
|
+
# base_url: "https://api.example.com",
|
314
|
+
# environment: NewDemoApiClient::Environment::DEFAULT,
|
315
|
+
# token: "YOUR_AUTH_TOKEN"
|
316
|
+
# )
|
317
|
+
# api.file.read_url(
|
318
|
+
# deal_id: 1,
|
319
|
+
# file_id: 1,
|
320
|
+
# group_id: 1
|
321
|
+
# )
|
322
|
+
def read_url(deal_id:, file_id:, group_id:, content_type: nil, download: nil, request_options: nil)
|
323
|
+
response = @request_client.conn.get do |req|
|
324
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
325
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
326
|
+
req.headers = {
|
327
|
+
**(req.headers || {}),
|
328
|
+
**@request_client.get_headers,
|
329
|
+
**(request_options&.additional_headers || {})
|
330
|
+
}.compact
|
331
|
+
req.params = {
|
332
|
+
**(request_options&.additional_query_parameters || {}),
|
333
|
+
"content_type": content_type,
|
334
|
+
"download": download
|
335
|
+
}.compact
|
336
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
337
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
338
|
+
end
|
339
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{deal_id}/deal/#{file_id}/file/#{group_id}/signed-url"
|
340
|
+
end
|
341
|
+
NewDemoApiClient::GcsSignedURLResponse.from_json(json_object: response.body)
|
342
|
+
end
|
343
|
+
end
|
344
|
+
|
345
|
+
class AsyncFileClient
|
346
|
+
# @return [NewDemoApiClient::AsyncRequestClient]
|
347
|
+
attr_reader :request_client
|
348
|
+
|
349
|
+
# @param request_client [NewDemoApiClient::AsyncRequestClient]
|
350
|
+
# @return [NewDemoApiClient::AsyncFileClient]
|
351
|
+
def initialize(request_client:)
|
352
|
+
@request_client = request_client
|
353
|
+
end
|
354
|
+
|
355
|
+
# Upload a file for a specific group and deal. Creates a file entry as well as
|
356
|
+
# uploads its contents.
|
357
|
+
# NOTE: Uploads are limited to 10 GB. For larger file uploads use the signed-url
|
358
|
+
# upload endpoint.
|
359
|
+
#
|
360
|
+
# @param deal_id [Integer]
|
361
|
+
# @param group_id [Integer]
|
362
|
+
# @param file [String, IO]
|
363
|
+
# @param name [String]
|
364
|
+
# @param filetype [NewDemoApiClient::FileType]
|
365
|
+
# @param request_options [NewDemoApiClient::RequestOptions]
|
366
|
+
# @return [NewDemoApiClient::CreateFileResponse]
|
367
|
+
# @example
|
368
|
+
# api = NewDemoApiClient::Client.new(
|
369
|
+
# base_url: "https://api.example.com",
|
370
|
+
# environment: NewDemoApiClient::Environment::DEFAULT,
|
371
|
+
# token: "YOUR_AUTH_TOKEN"
|
372
|
+
# )
|
373
|
+
# api.file.upload(
|
374
|
+
# deal_id: 1,
|
375
|
+
# group_id: 1,
|
376
|
+
# file: my_file.txt
|
377
|
+
# )
|
378
|
+
def upload(deal_id:, group_id:, file:, name:, filetype:, request_options: nil)
|
379
|
+
Async do
|
380
|
+
response = @request_client.conn.post do |req|
|
381
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
382
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
383
|
+
req.headers = {
|
384
|
+
**(req.headers || {}),
|
385
|
+
**@request_client.get_headers,
|
386
|
+
**(request_options&.additional_headers || {})
|
387
|
+
}.compact
|
388
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
389
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
390
|
+
end
|
391
|
+
req.body = {
|
392
|
+
**(request_options&.additional_body_parameters || {}),
|
393
|
+
file: NewDemoApiClient::FileUtilities.as_faraday_multipart(file_like: file),
|
394
|
+
name: name,
|
395
|
+
filetype: filetype
|
396
|
+
}.compact
|
397
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{deal_id}/deal/#{group_id}/file"
|
398
|
+
end
|
399
|
+
NewDemoApiClient::CreateFileResponse.from_json(json_object: response.body)
|
400
|
+
end
|
401
|
+
end
|
402
|
+
|
403
|
+
# Create a new file entry for a specific group and deal. Requires the contents to
|
404
|
+
# be uploaded separately via signed-url.
|
405
|
+
#
|
406
|
+
# @param deal_id [Integer]
|
407
|
+
# @param group_id [Integer]
|
408
|
+
# @param name [String] The huamn-readable name of the file
|
409
|
+
# @param type [NewDemoApiClient::FileType] The type of the file
|
410
|
+
# @param request_options [NewDemoApiClient::RequestOptions]
|
411
|
+
# @return [NewDemoApiClient::CreateFileForSignedURLResponse]
|
412
|
+
# @example
|
413
|
+
# api = NewDemoApiClient::Client.new(
|
414
|
+
# base_url: "https://api.example.com",
|
415
|
+
# environment: NewDemoApiClient::Environment::DEFAULT,
|
416
|
+
# token: "YOUR_AUTH_TOKEN"
|
417
|
+
# )
|
418
|
+
# api.file.create_file_entry(
|
419
|
+
# deal_id: 1,
|
420
|
+
# group_id: 1,
|
421
|
+
# name: "name"
|
422
|
+
# )
|
423
|
+
def create_file_entry(deal_id:, group_id:, name:, type: nil, request_options: nil)
|
424
|
+
Async do
|
425
|
+
response = @request_client.conn.post do |req|
|
426
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
427
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
428
|
+
req.headers = {
|
429
|
+
**(req.headers || {}),
|
430
|
+
**@request_client.get_headers,
|
431
|
+
**(request_options&.additional_headers || {})
|
432
|
+
}.compact
|
433
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
434
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
435
|
+
end
|
436
|
+
req.body = { **(request_options&.additional_body_parameters || {}), name: name, type: type }.compact
|
437
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{deal_id}/deal/#{group_id}/file/entry"
|
438
|
+
end
|
439
|
+
NewDemoApiClient::CreateFileForSignedURLResponse.from_json(json_object: response.body)
|
440
|
+
end
|
441
|
+
end
|
442
|
+
|
443
|
+
# Get all files for a specific group and deal.
|
444
|
+
#
|
445
|
+
# @param deal_id [Integer]
|
446
|
+
# @param group_id [Integer]
|
447
|
+
# @param sort_by [String]
|
448
|
+
# @param sort_order [String]
|
449
|
+
# @param page [Integer]
|
450
|
+
# @param page_size [Integer]
|
451
|
+
# @param request_options [NewDemoApiClient::RequestOptions]
|
452
|
+
# @return [NewDemoApiClient::PaginatedResponseFileResponse]
|
453
|
+
# @example
|
454
|
+
# api = NewDemoApiClient::Client.new(
|
455
|
+
# base_url: "https://api.example.com",
|
456
|
+
# environment: NewDemoApiClient::Environment::DEFAULT,
|
457
|
+
# token: "YOUR_AUTH_TOKEN"
|
458
|
+
# )
|
459
|
+
# api.file.list(deal_id: 1, group_id: 1)
|
460
|
+
def list(deal_id:, group_id:, sort_by: nil, sort_order: nil, page: nil, page_size: nil, request_options: nil)
|
461
|
+
Async do
|
462
|
+
response = @request_client.conn.get do |req|
|
463
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
464
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
465
|
+
req.headers = {
|
466
|
+
**(req.headers || {}),
|
467
|
+
**@request_client.get_headers,
|
468
|
+
**(request_options&.additional_headers || {})
|
469
|
+
}.compact
|
470
|
+
req.params = {
|
471
|
+
**(request_options&.additional_query_parameters || {}),
|
472
|
+
"sort_by": sort_by,
|
473
|
+
"sort_order": sort_order,
|
474
|
+
"page": page,
|
475
|
+
"page_size": page_size
|
476
|
+
}.compact
|
477
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
478
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
479
|
+
end
|
480
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{deal_id}/deal/#{group_id}/file/all"
|
481
|
+
end
|
482
|
+
NewDemoApiClient::PaginatedResponseFileResponse.from_json(json_object: response.body)
|
483
|
+
end
|
484
|
+
end
|
485
|
+
|
486
|
+
# Get a file by its ID for a specific group and deal.
|
487
|
+
#
|
488
|
+
# @param deal_id [Integer]
|
489
|
+
# @param file_id [Integer]
|
490
|
+
# @param group_id [Integer]
|
491
|
+
# @param request_options [NewDemoApiClient::RequestOptions]
|
492
|
+
# @return [NewDemoApiClient::FileResponse]
|
493
|
+
# @example
|
494
|
+
# api = NewDemoApiClient::Client.new(
|
495
|
+
# base_url: "https://api.example.com",
|
496
|
+
# environment: NewDemoApiClient::Environment::DEFAULT,
|
497
|
+
# token: "YOUR_AUTH_TOKEN"
|
498
|
+
# )
|
499
|
+
# api.file.get(
|
500
|
+
# deal_id: 1,
|
501
|
+
# file_id: 1,
|
502
|
+
# group_id: 1
|
503
|
+
# )
|
504
|
+
def get(deal_id:, file_id:, group_id:, request_options: nil)
|
505
|
+
Async do
|
506
|
+
response = @request_client.conn.get do |req|
|
507
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
508
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
509
|
+
req.headers = {
|
510
|
+
**(req.headers || {}),
|
511
|
+
**@request_client.get_headers,
|
512
|
+
**(request_options&.additional_headers || {})
|
513
|
+
}.compact
|
514
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
515
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
516
|
+
end
|
517
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
518
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
519
|
+
end
|
520
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{deal_id}/deal/#{file_id}/file/#{group_id}"
|
521
|
+
end
|
522
|
+
NewDemoApiClient::FileResponse.from_json(json_object: response.body)
|
523
|
+
end
|
524
|
+
end
|
525
|
+
|
526
|
+
# Update a file by its ID for a specific group and deal.
|
527
|
+
#
|
528
|
+
# @param file_id [Integer]
|
529
|
+
# @param group_id [Integer]
|
530
|
+
# @param deal_id [Integer]
|
531
|
+
# @param type [NewDemoApiClient::FileType]
|
532
|
+
# @param request_options [NewDemoApiClient::RequestOptions]
|
533
|
+
# @return [NewDemoApiClient::FileResponse]
|
534
|
+
# @example
|
535
|
+
# api = NewDemoApiClient::Client.new(
|
536
|
+
# base_url: "https://api.example.com",
|
537
|
+
# environment: NewDemoApiClient::Environment::DEFAULT,
|
538
|
+
# token: "YOUR_AUTH_TOKEN"
|
539
|
+
# )
|
540
|
+
# api.file.update(
|
541
|
+
# file_id: 1,
|
542
|
+
# group_id: 1,
|
543
|
+
# deal_id: 1
|
544
|
+
# )
|
545
|
+
def update(file_id:, group_id:, deal_id:, type: nil, request_options: nil)
|
546
|
+
Async do
|
547
|
+
response = @request_client.conn.put do |req|
|
548
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
549
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
550
|
+
req.headers = {
|
551
|
+
**(req.headers || {}),
|
552
|
+
**@request_client.get_headers,
|
553
|
+
**(request_options&.additional_headers || {})
|
554
|
+
}.compact
|
555
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
556
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
557
|
+
end
|
558
|
+
req.body = { **(request_options&.additional_body_parameters || {}), type: type }.compact
|
559
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{file_id}/deal/#{group_id}/file/#{deal_id}"
|
560
|
+
end
|
561
|
+
NewDemoApiClient::FileResponse.from_json(json_object: response.body)
|
562
|
+
end
|
563
|
+
end
|
564
|
+
|
565
|
+
# Delete a file by its ID for a specific group and deal.
|
566
|
+
#
|
567
|
+
# @param file_id [Integer]
|
568
|
+
# @param group_id [Integer]
|
569
|
+
# @param deal_id [Integer]
|
570
|
+
# @param archive [Boolean]
|
571
|
+
# @param request_options [NewDemoApiClient::RequestOptions]
|
572
|
+
# @return [Object]
|
573
|
+
# @example
|
574
|
+
# api = NewDemoApiClient::Client.new(
|
575
|
+
# base_url: "https://api.example.com",
|
576
|
+
# environment: NewDemoApiClient::Environment::DEFAULT,
|
577
|
+
# token: "YOUR_AUTH_TOKEN"
|
578
|
+
# )
|
579
|
+
# api.file.delete(
|
580
|
+
# file_id: 1,
|
581
|
+
# group_id: 1,
|
582
|
+
# deal_id: 1
|
583
|
+
# )
|
584
|
+
def delete(file_id:, group_id:, deal_id:, archive: nil, request_options: nil)
|
585
|
+
Async do
|
586
|
+
response = @request_client.conn.delete do |req|
|
587
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
588
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
589
|
+
req.headers = {
|
590
|
+
**(req.headers || {}),
|
591
|
+
**@request_client.get_headers,
|
592
|
+
**(request_options&.additional_headers || {})
|
593
|
+
}.compact
|
594
|
+
req.params = { **(request_options&.additional_query_parameters || {}), "archive": archive }.compact
|
595
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
596
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
597
|
+
end
|
598
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{file_id}/deal/#{group_id}/file/#{deal_id}"
|
599
|
+
end
|
600
|
+
parsed_json = JSON.parse(response.body)
|
601
|
+
parsed_json
|
602
|
+
end
|
603
|
+
end
|
604
|
+
|
605
|
+
# Download a file by its ID for a specific group and deal.
|
606
|
+
# NOTE: Downloads are limited to 10 GB. For larger file downloads use the
|
607
|
+
# signed-url download endpoint.
|
608
|
+
#
|
609
|
+
# @param deal_id [Integer]
|
610
|
+
# @param file_id [Integer]
|
611
|
+
# @param group_id [Integer]
|
612
|
+
# @param request_options [NewDemoApiClient::RequestOptions]
|
613
|
+
# @return [Object]
|
614
|
+
# @example
|
615
|
+
# api = NewDemoApiClient::Client.new(
|
616
|
+
# base_url: "https://api.example.com",
|
617
|
+
# environment: NewDemoApiClient::Environment::DEFAULT,
|
618
|
+
# token: "YOUR_AUTH_TOKEN"
|
619
|
+
# )
|
620
|
+
# api.file.download(
|
621
|
+
# deal_id: 1,
|
622
|
+
# file_id: 1,
|
623
|
+
# group_id: 1
|
624
|
+
# )
|
625
|
+
def download(deal_id:, file_id:, group_id:, request_options: nil)
|
626
|
+
Async do
|
627
|
+
response = @request_client.conn.get do |req|
|
628
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
629
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
630
|
+
req.headers = {
|
631
|
+
**(req.headers || {}),
|
632
|
+
**@request_client.get_headers,
|
633
|
+
**(request_options&.additional_headers || {})
|
634
|
+
}.compact
|
635
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
636
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
637
|
+
end
|
638
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
639
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
640
|
+
end
|
641
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{deal_id}/deal/#{file_id}/file/#{group_id}/download"
|
642
|
+
end
|
643
|
+
parsed_json = JSON.parse(response.body)
|
644
|
+
parsed_json
|
645
|
+
end
|
646
|
+
end
|
647
|
+
|
648
|
+
# Get a signed URL to read a file by its ID for a specific group and deal.
|
649
|
+
#
|
650
|
+
# @param deal_id [Integer]
|
651
|
+
# @param file_id [Integer]
|
652
|
+
# @param group_id [Integer]
|
653
|
+
# @param content_type [String]
|
654
|
+
# @param download [Boolean]
|
655
|
+
# @param request_options [NewDemoApiClient::RequestOptions]
|
656
|
+
# @return [NewDemoApiClient::GcsSignedURLResponse]
|
657
|
+
# @example
|
658
|
+
# api = NewDemoApiClient::Client.new(
|
659
|
+
# base_url: "https://api.example.com",
|
660
|
+
# environment: NewDemoApiClient::Environment::DEFAULT,
|
661
|
+
# token: "YOUR_AUTH_TOKEN"
|
662
|
+
# )
|
663
|
+
# api.file.read_url(
|
664
|
+
# deal_id: 1,
|
665
|
+
# file_id: 1,
|
666
|
+
# group_id: 1
|
667
|
+
# )
|
668
|
+
def read_url(deal_id:, file_id:, group_id:, content_type: nil, download: nil, request_options: nil)
|
669
|
+
Async do
|
670
|
+
response = @request_client.conn.get do |req|
|
671
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
672
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
673
|
+
req.headers = {
|
674
|
+
**(req.headers || {}),
|
675
|
+
**@request_client.get_headers,
|
676
|
+
**(request_options&.additional_headers || {})
|
677
|
+
}.compact
|
678
|
+
req.params = {
|
679
|
+
**(request_options&.additional_query_parameters || {}),
|
680
|
+
"content_type": content_type,
|
681
|
+
"download": download
|
682
|
+
}.compact
|
683
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
684
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
685
|
+
end
|
686
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{deal_id}/deal/#{file_id}/file/#{group_id}/signed-url"
|
687
|
+
end
|
688
|
+
NewDemoApiClient::GcsSignedURLResponse.from_json(json_object: response.body)
|
689
|
+
end
|
690
|
+
end
|
691
|
+
end
|
692
|
+
end
|