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.
Files changed (95) hide show
  1. checksums.yaml +7 -0
  2. data/lib/core/file_utilities.rb +26 -0
  3. data/lib/environment.rb +7 -0
  4. data/lib/gemconfig.rb +14 -0
  5. data/lib/requests.rb +166 -0
  6. data/lib/test_sdk/benchmark/client.rb +1031 -0
  7. data/lib/test_sdk/company/client.rb +474 -0
  8. data/lib/test_sdk/deal/client.rb +584 -0
  9. data/lib/test_sdk/file/client.rb +692 -0
  10. data/lib/test_sdk/financials/client.rb +97 -0
  11. data/lib/test_sdk/group/client.rb +737 -0
  12. data/lib/test_sdk/macro/client.rb +422 -0
  13. data/lib/test_sdk/metadata/client.rb +95 -0
  14. data/lib/test_sdk/product/client.rb +419 -0
  15. data/lib/test_sdk/talent/client.rb +266 -0
  16. data/lib/test_sdk/types/account_manager_response.rb +74 -0
  17. data/lib/test_sdk/types/all_data_metadata_response.rb +68 -0
  18. data/lib/test_sdk/types/area.rb +74 -0
  19. data/lib/test_sdk/types/authenticate_api_key_response.rb +55 -0
  20. data/lib/test_sdk/types/available_categories_response.rb +5 -0
  21. data/lib/test_sdk/types/available_models_response.rb +69 -0
  22. data/lib/test_sdk/types/band_response.rb +83 -0
  23. data/lib/test_sdk/types/benchmark_quantile.rb +465 -0
  24. data/lib/test_sdk/types/categories_metadata_response.rb +72 -0
  25. data/lib/test_sdk/types/category_growth_rates.rb +143 -0
  26. data/lib/test_sdk/types/category_metadata.rb +79 -0
  27. data/lib/test_sdk/types/category_metadata_default_user_type.rb +8 -0
  28. data/lib/test_sdk/types/cohorts_response.rb +132 -0
  29. data/lib/test_sdk/types/column_metadata.rb +110 -0
  30. data/lib/test_sdk/types/column_mini_metadata.rb +83 -0
  31. data/lib/test_sdk/types/columns_metadata_response.rb +72 -0
  32. data/lib/test_sdk/types/company_response.rb +120 -0
  33. data/lib/test_sdk/types/concentration_endpoint_cdf_detail.rb +96 -0
  34. data/lib/test_sdk/types/concentration_endpoint_top_users_detail.rb +72 -0
  35. data/lib/test_sdk/types/concentration_response.rb +103 -0
  36. data/lib/test_sdk/types/concentration_timeseries_detail.rb +159 -0
  37. data/lib/test_sdk/types/contribution_response.rb +135 -0
  38. data/lib/test_sdk/types/create_api_key_response.rb +55 -0
  39. data/lib/test_sdk/types/create_file_for_signed_url_response.rb +127 -0
  40. data/lib/test_sdk/types/create_file_response.rb +113 -0
  41. data/lib/test_sdk/types/deal_combined_metrics_response.rb +477 -0
  42. data/lib/test_sdk/types/deal_data_availablity_response.rb +109 -0
  43. data/lib/test_sdk/types/deal_with_files_response.rb +194 -0
  44. data/lib/test_sdk/types/endpoint_seniority_count.rb +66 -0
  45. data/lib/test_sdk/types/executive_profile.rb +91 -0
  46. data/lib/test_sdk/types/executive_profile_position.rb +97 -0
  47. data/lib/test_sdk/types/file_response.rb +113 -0
  48. data/lib/test_sdk/types/file_type.rb +14 -0
  49. data/lib/test_sdk/types/financial_metrics.rb +113 -0
  50. data/lib/test_sdk/types/financials_response.rb +102 -0
  51. data/lib/test_sdk/types/frequency.rb +9 -0
  52. data/lib/test_sdk/types/function_level_growth_accounting.rb +111 -0
  53. data/lib/test_sdk/types/gcs_signed_url_response.rb +81 -0
  54. data/lib/test_sdk/types/group_response.rb +158 -0
  55. data/lib/test_sdk/types/group_user.rb +124 -0
  56. data/lib/test_sdk/types/group_with_users_response.rb +170 -0
  57. data/lib/test_sdk/types/growth_accounting_response.rb +226 -0
  58. data/lib/test_sdk/types/healthz_response.rb +55 -0
  59. data/lib/test_sdk/types/http_validation_error.rb +61 -0
  60. data/lib/test_sdk/types/income_statement_entry.rb +81 -0
  61. data/lib/test_sdk/types/model_metadata.rb +76 -0
  62. data/lib/test_sdk/types/models_metadata_response.rb +76 -0
  63. data/lib/test_sdk/types/paginated_response_company_response.rb +83 -0
  64. data/lib/test_sdk/types/paginated_response_deal_with_files_response.rb +84 -0
  65. data/lib/test_sdk/types/paginated_response_file_response.rb +83 -0
  66. data/lib/test_sdk/types/paginated_response_group_user.rb +83 -0
  67. data/lib/test_sdk/types/permission_model.rb +65 -0
  68. data/lib/test_sdk/types/priority.rb +10 -0
  69. data/lib/test_sdk/types/product_info_response.rb +65 -0
  70. data/lib/test_sdk/types/role_response.rb +95 -0
  71. data/lib/test_sdk/types/scale.rb +72 -0
  72. data/lib/test_sdk/types/scale_model.rb +80 -0
  73. data/lib/test_sdk/types/scale_models_response.rb +5 -0
  74. data/lib/test_sdk/types/scaling.rb +10 -0
  75. data/lib/test_sdk/types/status.rb +12 -0
  76. data/lib/test_sdk/types/tradeoff_model.rb +95 -0
  77. data/lib/test_sdk/types/tradeoff_models_response.rb +5 -0
  78. data/lib/test_sdk/types/unit.rb +12 -0
  79. data/lib/test_sdk/types/unit_economics_info_response.rb +55 -0
  80. data/lib/test_sdk/types/user_accounting_response.rb +168 -0
  81. data/lib/test_sdk/types/user_role_response.rb +77 -0
  82. data/lib/test_sdk/types/user_type.rb +12 -0
  83. data/lib/test_sdk/types/user_with_groups_response.rb +140 -0
  84. data/lib/test_sdk/types/user_with_permissions_response.rb +153 -0
  85. data/lib/test_sdk/types/validation_error.rb +76 -0
  86. data/lib/test_sdk/types/validation_error_loc_item.rb +52 -0
  87. data/lib/test_sdk/types/weather_components.rb +123 -0
  88. data/lib/test_sdk/types/weather_gauge.rb +76 -0
  89. data/lib/test_sdk/types/weather_market_context.rb +109 -0
  90. data/lib/test_sdk/types/weather_metadata.rb +113 -0
  91. data/lib/test_sdk/unit_economics/client.rb +124 -0
  92. data/lib/test_sdk/user/client.rb +363 -0
  93. data/lib/test_sdk.rb +190 -0
  94. data/lib/types_export.rb +77 -0
  95. metadata +251 -0
@@ -0,0 +1,584 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../../requests"
4
+ require_relative "../types/status"
5
+ require_relative "../types/priority"
6
+ require_relative "../types/deal_with_files_response"
7
+ require_relative "../types/paginated_response_deal_with_files_response"
8
+ require "json"
9
+ require "async"
10
+
11
+ module NewDemoApiClient
12
+ class DealClient
13
+ # @return [NewDemoApiClient::RequestClient]
14
+ attr_reader :request_client
15
+
16
+ # @param request_client [NewDemoApiClient::RequestClient]
17
+ # @return [NewDemoApiClient::DealClient]
18
+ def initialize(request_client:)
19
+ @request_client = request_client
20
+ end
21
+
22
+ # Create a new deal.
23
+ #
24
+ # @param group_id [Integer]
25
+ # @param name [String]
26
+ # @param round_name [String] The name of the round
27
+ # @param status [NewDemoApiClient::Status] The status of the deal
28
+ # @param notes [String] Notes about the deal
29
+ # @param priority [NewDemoApiClient::Priority] The priority of the deal
30
+ # @param round_amount [Integer] The dollar amount to be raised of the round
31
+ # @param round_target [Integer] The target post-money dollar amount of the round
32
+ # @param tags [Array<String>] The tags associated with the deal
33
+ # @param company_id [Integer]
34
+ # @param request_options [NewDemoApiClient::RequestOptions]
35
+ # @return [NewDemoApiClient::DealWithFilesResponse]
36
+ # @example
37
+ # api = NewDemoApiClient::Client.new(
38
+ # base_url: "https://api.example.com",
39
+ # environment: NewDemoApiClient::Environment::DEFAULT,
40
+ # token: "YOUR_AUTH_TOKEN"
41
+ # )
42
+ # api.deal.create(
43
+ # group_id: 1,
44
+ # name: "name",
45
+ # round_name: "round_name",
46
+ # status: QUEUED,
47
+ # company_id: 1
48
+ # )
49
+ def create(group_id:, name:, round_name:, status:, company_id:, notes: nil, priority: nil, round_amount: nil, round_target: nil,
50
+ tags: nil, request_options: nil)
51
+ response = @request_client.conn.post do |req|
52
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
53
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
54
+ req.headers = {
55
+ **(req.headers || {}),
56
+ **@request_client.get_headers,
57
+ **(request_options&.additional_headers || {})
58
+ }.compact
59
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
60
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
61
+ end
62
+ req.body = {
63
+ **(request_options&.additional_body_parameters || {}),
64
+ name: name,
65
+ round_name: round_name,
66
+ status: status,
67
+ notes: notes,
68
+ priority: priority,
69
+ round_amount: round_amount,
70
+ round_target: round_target,
71
+ tags: tags,
72
+ company_id: company_id
73
+ }.compact
74
+ req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{group_id}/deal"
75
+ end
76
+ NewDemoApiClient::DealWithFilesResponse.from_json(json_object: response.body)
77
+ end
78
+
79
+ # Get all deals for a group.
80
+ #
81
+ # @param group_id [Integer]
82
+ # @param sort_by [String]
83
+ # @param sort_order [String]
84
+ # @param page [Integer]
85
+ # @param page_size [Integer]
86
+ # @param request_options [NewDemoApiClient::RequestOptions]
87
+ # @return [NewDemoApiClient::PaginatedResponseDealWithFilesResponse]
88
+ # @example
89
+ # api = NewDemoApiClient::Client.new(
90
+ # base_url: "https://api.example.com",
91
+ # environment: NewDemoApiClient::Environment::DEFAULT,
92
+ # token: "YOUR_AUTH_TOKEN"
93
+ # )
94
+ # api.deal.list(group_id: 1)
95
+ def list(group_id:, sort_by: nil, sort_order: nil, page: nil, page_size: nil, request_options: nil)
96
+ response = @request_client.conn.get do |req|
97
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
98
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
99
+ req.headers = {
100
+ **(req.headers || {}),
101
+ **@request_client.get_headers,
102
+ **(request_options&.additional_headers || {})
103
+ }.compact
104
+ req.params = {
105
+ **(request_options&.additional_query_parameters || {}),
106
+ "sort_by": sort_by,
107
+ "sort_order": sort_order,
108
+ "page": page,
109
+ "page_size": page_size
110
+ }.compact
111
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
112
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
113
+ end
114
+ req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{group_id}/deal/all"
115
+ end
116
+ NewDemoApiClient::PaginatedResponseDealWithFilesResponse.from_json(json_object: response.body)
117
+ end
118
+
119
+ # Search deals within a group.
120
+ #
121
+ # @param group_id [Integer]
122
+ # @param name [String]
123
+ # @param round_name [String]
124
+ # @param notes [String]
125
+ # @param tags [String]
126
+ # @param company_name [String]
127
+ # @param company_domain [String]
128
+ # @param ignore_archived [Boolean]
129
+ # @param sort_by [String]
130
+ # @param sort_order [String]
131
+ # @param page [Integer]
132
+ # @param page_size [Integer]
133
+ # @param request_options [NewDemoApiClient::RequestOptions]
134
+ # @return [NewDemoApiClient::PaginatedResponseDealWithFilesResponse]
135
+ # @example
136
+ # api = NewDemoApiClient::Client.new(
137
+ # base_url: "https://api.example.com",
138
+ # environment: NewDemoApiClient::Environment::DEFAULT,
139
+ # token: "YOUR_AUTH_TOKEN"
140
+ # )
141
+ # api.deal.search(group_id: 1)
142
+ def search(group_id:, name: nil, round_name: nil, notes: nil, tags: nil, company_name: nil, company_domain: nil,
143
+ ignore_archived: nil, sort_by: nil, sort_order: nil, page: nil, page_size: nil, request_options: nil)
144
+ response = @request_client.conn.get do |req|
145
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
146
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
147
+ req.headers = {
148
+ **(req.headers || {}),
149
+ **@request_client.get_headers,
150
+ **(request_options&.additional_headers || {})
151
+ }.compact
152
+ req.params = {
153
+ **(request_options&.additional_query_parameters || {}),
154
+ "name": name,
155
+ "round_name": round_name,
156
+ "notes": notes,
157
+ "tags": tags,
158
+ "company_name": company_name,
159
+ "company_domain": company_domain,
160
+ "ignore_archived": ignore_archived,
161
+ "sort_by": sort_by,
162
+ "sort_order": sort_order,
163
+ "page": page,
164
+ "page_size": page_size
165
+ }.compact
166
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
167
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
168
+ end
169
+ req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{group_id}/deal/search"
170
+ end
171
+ NewDemoApiClient::PaginatedResponseDealWithFilesResponse.from_json(json_object: response.body)
172
+ end
173
+
174
+ # Retrieve a deal by its ID.
175
+ #
176
+ # @param group_id [Integer]
177
+ # @param deal_id [Integer]
178
+ # @param request_options [NewDemoApiClient::RequestOptions]
179
+ # @return [NewDemoApiClient::DealWithFilesResponse]
180
+ # @example
181
+ # api = NewDemoApiClient::Client.new(
182
+ # base_url: "https://api.example.com",
183
+ # environment: NewDemoApiClient::Environment::DEFAULT,
184
+ # token: "YOUR_AUTH_TOKEN"
185
+ # )
186
+ # api.deal.get(group_id: 1, deal_id: 1)
187
+ def get(group_id:, deal_id:, request_options: nil)
188
+ response = @request_client.conn.get do |req|
189
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
190
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
191
+ req.headers = {
192
+ **(req.headers || {}),
193
+ **@request_client.get_headers,
194
+ **(request_options&.additional_headers || {})
195
+ }.compact
196
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
197
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
198
+ end
199
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
200
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
201
+ end
202
+ req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{group_id}/deal/#{deal_id}"
203
+ end
204
+ NewDemoApiClient::DealWithFilesResponse.from_json(json_object: response.body)
205
+ end
206
+
207
+ # Update a deal.
208
+ #
209
+ # @param group_id [Integer]
210
+ # @param deal_id [Integer]
211
+ # @param name [String]
212
+ # @param round_name [String]
213
+ # @param status [NewDemoApiClient::Status]
214
+ # @param notes [String] Notes about the deal
215
+ # @param priority [NewDemoApiClient::Priority] The priority of the deal
216
+ # @param round_amount [Integer] The dollar amount to be raised of the round
217
+ # @param round_target [Integer] The target post-money dollar amount of the round
218
+ # @param tags [Array<String>] The tags associated with the deal
219
+ # @param company_id [Integer]
220
+ # @param request_options [NewDemoApiClient::RequestOptions]
221
+ # @return [NewDemoApiClient::DealWithFilesResponse]
222
+ # @example
223
+ # api = NewDemoApiClient::Client.new(
224
+ # base_url: "https://api.example.com",
225
+ # environment: NewDemoApiClient::Environment::DEFAULT,
226
+ # token: "YOUR_AUTH_TOKEN"
227
+ # )
228
+ # api.deal.update(group_id: 1, deal_id: 1)
229
+ def update(group_id:, deal_id:, name: nil, round_name: nil, status: nil, notes: nil, priority: nil,
230
+ round_amount: nil, round_target: nil, tags: nil, company_id: nil, request_options: nil)
231
+ response = @request_client.conn.put do |req|
232
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
233
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
234
+ req.headers = {
235
+ **(req.headers || {}),
236
+ **@request_client.get_headers,
237
+ **(request_options&.additional_headers || {})
238
+ }.compact
239
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
240
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
241
+ end
242
+ req.body = {
243
+ **(request_options&.additional_body_parameters || {}),
244
+ name: name,
245
+ round_name: round_name,
246
+ status: status,
247
+ notes: notes,
248
+ priority: priority,
249
+ round_amount: round_amount,
250
+ round_target: round_target,
251
+ tags: tags,
252
+ company_id: company_id
253
+ }.compact
254
+ req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{group_id}/deal/#{deal_id}"
255
+ end
256
+ NewDemoApiClient::DealWithFilesResponse.from_json(json_object: response.body)
257
+ end
258
+
259
+ # Delete a deal.
260
+ #
261
+ # @param deal_id [Integer]
262
+ # @param group_id [Integer]
263
+ # @param archive [Boolean]
264
+ # @param request_options [NewDemoApiClient::RequestOptions]
265
+ # @return [Hash{String => String}]
266
+ # @example
267
+ # api = NewDemoApiClient::Client.new(
268
+ # base_url: "https://api.example.com",
269
+ # environment: NewDemoApiClient::Environment::DEFAULT,
270
+ # token: "YOUR_AUTH_TOKEN"
271
+ # )
272
+ # api.deal.delete(deal_id: 1, group_id: 1)
273
+ def delete(deal_id:, group_id:, archive: nil, request_options: nil)
274
+ response = @request_client.conn.delete do |req|
275
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
276
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
277
+ req.headers = {
278
+ **(req.headers || {}),
279
+ **@request_client.get_headers,
280
+ **(request_options&.additional_headers || {})
281
+ }.compact
282
+ req.params = { **(request_options&.additional_query_parameters || {}), "archive": archive }.compact
283
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
284
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
285
+ end
286
+ req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{deal_id}/deal/#{group_id}"
287
+ end
288
+ JSON.parse(response.body)
289
+ end
290
+ end
291
+
292
+ class AsyncDealClient
293
+ # @return [NewDemoApiClient::AsyncRequestClient]
294
+ attr_reader :request_client
295
+
296
+ # @param request_client [NewDemoApiClient::AsyncRequestClient]
297
+ # @return [NewDemoApiClient::AsyncDealClient]
298
+ def initialize(request_client:)
299
+ @request_client = request_client
300
+ end
301
+
302
+ # Create a new deal.
303
+ #
304
+ # @param group_id [Integer]
305
+ # @param name [String]
306
+ # @param round_name [String] The name of the round
307
+ # @param status [NewDemoApiClient::Status] The status of the deal
308
+ # @param notes [String] Notes about the deal
309
+ # @param priority [NewDemoApiClient::Priority] The priority of the deal
310
+ # @param round_amount [Integer] The dollar amount to be raised of the round
311
+ # @param round_target [Integer] The target post-money dollar amount of the round
312
+ # @param tags [Array<String>] The tags associated with the deal
313
+ # @param company_id [Integer]
314
+ # @param request_options [NewDemoApiClient::RequestOptions]
315
+ # @return [NewDemoApiClient::DealWithFilesResponse]
316
+ # @example
317
+ # api = NewDemoApiClient::Client.new(
318
+ # base_url: "https://api.example.com",
319
+ # environment: NewDemoApiClient::Environment::DEFAULT,
320
+ # token: "YOUR_AUTH_TOKEN"
321
+ # )
322
+ # api.deal.create(
323
+ # group_id: 1,
324
+ # name: "name",
325
+ # round_name: "round_name",
326
+ # status: QUEUED,
327
+ # company_id: 1
328
+ # )
329
+ def create(group_id:, name:, round_name:, status:, company_id:, notes: nil, priority: nil, round_amount: nil, round_target: nil,
330
+ tags: nil, request_options: nil)
331
+ Async do
332
+ response = @request_client.conn.post do |req|
333
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
334
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
335
+ req.headers = {
336
+ **(req.headers || {}),
337
+ **@request_client.get_headers,
338
+ **(request_options&.additional_headers || {})
339
+ }.compact
340
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
341
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
342
+ end
343
+ req.body = {
344
+ **(request_options&.additional_body_parameters || {}),
345
+ name: name,
346
+ round_name: round_name,
347
+ status: status,
348
+ notes: notes,
349
+ priority: priority,
350
+ round_amount: round_amount,
351
+ round_target: round_target,
352
+ tags: tags,
353
+ company_id: company_id
354
+ }.compact
355
+ req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{group_id}/deal"
356
+ end
357
+ NewDemoApiClient::DealWithFilesResponse.from_json(json_object: response.body)
358
+ end
359
+ end
360
+
361
+ # Get all deals for a group.
362
+ #
363
+ # @param group_id [Integer]
364
+ # @param sort_by [String]
365
+ # @param sort_order [String]
366
+ # @param page [Integer]
367
+ # @param page_size [Integer]
368
+ # @param request_options [NewDemoApiClient::RequestOptions]
369
+ # @return [NewDemoApiClient::PaginatedResponseDealWithFilesResponse]
370
+ # @example
371
+ # api = NewDemoApiClient::Client.new(
372
+ # base_url: "https://api.example.com",
373
+ # environment: NewDemoApiClient::Environment::DEFAULT,
374
+ # token: "YOUR_AUTH_TOKEN"
375
+ # )
376
+ # api.deal.list(group_id: 1)
377
+ def list(group_id:, sort_by: nil, sort_order: nil, page: nil, page_size: nil, request_options: nil)
378
+ Async do
379
+ response = @request_client.conn.get do |req|
380
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
381
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
382
+ req.headers = {
383
+ **(req.headers || {}),
384
+ **@request_client.get_headers,
385
+ **(request_options&.additional_headers || {})
386
+ }.compact
387
+ req.params = {
388
+ **(request_options&.additional_query_parameters || {}),
389
+ "sort_by": sort_by,
390
+ "sort_order": sort_order,
391
+ "page": page,
392
+ "page_size": page_size
393
+ }.compact
394
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
395
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
396
+ end
397
+ req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{group_id}/deal/all"
398
+ end
399
+ NewDemoApiClient::PaginatedResponseDealWithFilesResponse.from_json(json_object: response.body)
400
+ end
401
+ end
402
+
403
+ # Search deals within a group.
404
+ #
405
+ # @param group_id [Integer]
406
+ # @param name [String]
407
+ # @param round_name [String]
408
+ # @param notes [String]
409
+ # @param tags [String]
410
+ # @param company_name [String]
411
+ # @param company_domain [String]
412
+ # @param ignore_archived [Boolean]
413
+ # @param sort_by [String]
414
+ # @param sort_order [String]
415
+ # @param page [Integer]
416
+ # @param page_size [Integer]
417
+ # @param request_options [NewDemoApiClient::RequestOptions]
418
+ # @return [NewDemoApiClient::PaginatedResponseDealWithFilesResponse]
419
+ # @example
420
+ # api = NewDemoApiClient::Client.new(
421
+ # base_url: "https://api.example.com",
422
+ # environment: NewDemoApiClient::Environment::DEFAULT,
423
+ # token: "YOUR_AUTH_TOKEN"
424
+ # )
425
+ # api.deal.search(group_id: 1)
426
+ def search(group_id:, name: nil, round_name: nil, notes: nil, tags: nil, company_name: nil, company_domain: nil,
427
+ ignore_archived: nil, sort_by: nil, sort_order: nil, page: nil, page_size: nil, request_options: nil)
428
+ Async do
429
+ response = @request_client.conn.get do |req|
430
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
431
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
432
+ req.headers = {
433
+ **(req.headers || {}),
434
+ **@request_client.get_headers,
435
+ **(request_options&.additional_headers || {})
436
+ }.compact
437
+ req.params = {
438
+ **(request_options&.additional_query_parameters || {}),
439
+ "name": name,
440
+ "round_name": round_name,
441
+ "notes": notes,
442
+ "tags": tags,
443
+ "company_name": company_name,
444
+ "company_domain": company_domain,
445
+ "ignore_archived": ignore_archived,
446
+ "sort_by": sort_by,
447
+ "sort_order": sort_order,
448
+ "page": page,
449
+ "page_size": page_size
450
+ }.compact
451
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
452
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
453
+ end
454
+ req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{group_id}/deal/search"
455
+ end
456
+ NewDemoApiClient::PaginatedResponseDealWithFilesResponse.from_json(json_object: response.body)
457
+ end
458
+ end
459
+
460
+ # Retrieve a deal by its ID.
461
+ #
462
+ # @param group_id [Integer]
463
+ # @param deal_id [Integer]
464
+ # @param request_options [NewDemoApiClient::RequestOptions]
465
+ # @return [NewDemoApiClient::DealWithFilesResponse]
466
+ # @example
467
+ # api = NewDemoApiClient::Client.new(
468
+ # base_url: "https://api.example.com",
469
+ # environment: NewDemoApiClient::Environment::DEFAULT,
470
+ # token: "YOUR_AUTH_TOKEN"
471
+ # )
472
+ # api.deal.get(group_id: 1, deal_id: 1)
473
+ def get(group_id:, deal_id:, request_options: nil)
474
+ Async do
475
+ response = @request_client.conn.get do |req|
476
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
477
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
478
+ req.headers = {
479
+ **(req.headers || {}),
480
+ **@request_client.get_headers,
481
+ **(request_options&.additional_headers || {})
482
+ }.compact
483
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
484
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
485
+ end
486
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
487
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
488
+ end
489
+ req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{group_id}/deal/#{deal_id}"
490
+ end
491
+ NewDemoApiClient::DealWithFilesResponse.from_json(json_object: response.body)
492
+ end
493
+ end
494
+
495
+ # Update a deal.
496
+ #
497
+ # @param group_id [Integer]
498
+ # @param deal_id [Integer]
499
+ # @param name [String]
500
+ # @param round_name [String]
501
+ # @param status [NewDemoApiClient::Status]
502
+ # @param notes [String] Notes about the deal
503
+ # @param priority [NewDemoApiClient::Priority] The priority of the deal
504
+ # @param round_amount [Integer] The dollar amount to be raised of the round
505
+ # @param round_target [Integer] The target post-money dollar amount of the round
506
+ # @param tags [Array<String>] The tags associated with the deal
507
+ # @param company_id [Integer]
508
+ # @param request_options [NewDemoApiClient::RequestOptions]
509
+ # @return [NewDemoApiClient::DealWithFilesResponse]
510
+ # @example
511
+ # api = NewDemoApiClient::Client.new(
512
+ # base_url: "https://api.example.com",
513
+ # environment: NewDemoApiClient::Environment::DEFAULT,
514
+ # token: "YOUR_AUTH_TOKEN"
515
+ # )
516
+ # api.deal.update(group_id: 1, deal_id: 1)
517
+ def update(group_id:, deal_id:, name: nil, round_name: nil, status: nil, notes: nil, priority: nil,
518
+ round_amount: nil, round_target: nil, tags: nil, company_id: nil, request_options: nil)
519
+ Async do
520
+ response = @request_client.conn.put do |req|
521
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
522
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
523
+ req.headers = {
524
+ **(req.headers || {}),
525
+ **@request_client.get_headers,
526
+ **(request_options&.additional_headers || {})
527
+ }.compact
528
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
529
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
530
+ end
531
+ req.body = {
532
+ **(request_options&.additional_body_parameters || {}),
533
+ name: name,
534
+ round_name: round_name,
535
+ status: status,
536
+ notes: notes,
537
+ priority: priority,
538
+ round_amount: round_amount,
539
+ round_target: round_target,
540
+ tags: tags,
541
+ company_id: company_id
542
+ }.compact
543
+ req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{group_id}/deal/#{deal_id}"
544
+ end
545
+ NewDemoApiClient::DealWithFilesResponse.from_json(json_object: response.body)
546
+ end
547
+ end
548
+
549
+ # Delete a deal.
550
+ #
551
+ # @param deal_id [Integer]
552
+ # @param group_id [Integer]
553
+ # @param archive [Boolean]
554
+ # @param request_options [NewDemoApiClient::RequestOptions]
555
+ # @return [Hash{String => String}]
556
+ # @example
557
+ # api = NewDemoApiClient::Client.new(
558
+ # base_url: "https://api.example.com",
559
+ # environment: NewDemoApiClient::Environment::DEFAULT,
560
+ # token: "YOUR_AUTH_TOKEN"
561
+ # )
562
+ # api.deal.delete(deal_id: 1, group_id: 1)
563
+ def delete(deal_id:, group_id:, archive: nil, request_options: nil)
564
+ Async do
565
+ response = @request_client.conn.delete do |req|
566
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
567
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
568
+ req.headers = {
569
+ **(req.headers || {}),
570
+ **@request_client.get_headers,
571
+ **(request_options&.additional_headers || {})
572
+ }.compact
573
+ req.params = { **(request_options&.additional_query_parameters || {}), "archive": archive }.compact
574
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
575
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
576
+ end
577
+ req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{deal_id}/deal/#{group_id}"
578
+ end
579
+ parsed_json = JSON.parse(response.body)
580
+ parsed_json
581
+ end
582
+ end
583
+ end
584
+ end