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,419 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "../../requests"
|
4
|
+
require_relative "../types/user_type"
|
5
|
+
require_relative "../types/frequency"
|
6
|
+
require_relative "../types/user_accounting_response"
|
7
|
+
require "json"
|
8
|
+
require_relative "../types/growth_accounting_response"
|
9
|
+
require_relative "../types/cohorts_response"
|
10
|
+
require_relative "../types/concentration_response"
|
11
|
+
require "async"
|
12
|
+
|
13
|
+
module NewDemoApiClient
|
14
|
+
class ProductClient
|
15
|
+
# @return [NewDemoApiClient::RequestClient]
|
16
|
+
attr_reader :request_client
|
17
|
+
|
18
|
+
# @param request_client [NewDemoApiClient::RequestClient]
|
19
|
+
# @return [NewDemoApiClient::ProductClient]
|
20
|
+
def initialize(request_client:)
|
21
|
+
@request_client = request_client
|
22
|
+
end
|
23
|
+
|
24
|
+
# Get the product user accounting for the company associated with the deal.
|
25
|
+
#
|
26
|
+
# @param group_id [Integer]
|
27
|
+
# @param deal_id [Integer]
|
28
|
+
# @param user_type [NewDemoApiClient::UserType]
|
29
|
+
# @param metric [String]
|
30
|
+
# @param freq [NewDemoApiClient::Frequency]
|
31
|
+
# @param request_options [NewDemoApiClient::RequestOptions]
|
32
|
+
# @return [Array<NewDemoApiClient::UserAccountingResponse>]
|
33
|
+
# @example
|
34
|
+
# api = NewDemoApiClient::Client.new(
|
35
|
+
# base_url: "https://api.example.com",
|
36
|
+
# environment: NewDemoApiClient::Environment::DEFAULT,
|
37
|
+
# token: "YOUR_AUTH_TOKEN"
|
38
|
+
# )
|
39
|
+
# api.product.get_user_accounting(
|
40
|
+
# group_id: 1,
|
41
|
+
# deal_id: 1,
|
42
|
+
# user_type: BUSINESS,
|
43
|
+
# metric: "metric"
|
44
|
+
# )
|
45
|
+
def get_user_accounting(group_id:, deal_id:, user_type:, metric:, freq: nil, request_options: nil)
|
46
|
+
response = @request_client.conn.get do |req|
|
47
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
48
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
49
|
+
req.headers = {
|
50
|
+
**(req.headers || {}),
|
51
|
+
**@request_client.get_headers,
|
52
|
+
**(request_options&.additional_headers || {})
|
53
|
+
}.compact
|
54
|
+
req.params = {
|
55
|
+
**(request_options&.additional_query_parameters || {}),
|
56
|
+
"user_type": user_type,
|
57
|
+
"metric": metric,
|
58
|
+
"freq": freq
|
59
|
+
}.compact
|
60
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
61
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
62
|
+
end
|
63
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{group_id}/deal/#{deal_id}/data/user-accounting"
|
64
|
+
end
|
65
|
+
parsed_json = JSON.parse(response.body)
|
66
|
+
parsed_json&.map do |item|
|
67
|
+
item = item.to_json
|
68
|
+
NewDemoApiClient::UserAccountingResponse.from_json(json_object: item)
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
# Get the product growth accounting for the company associated with the deal.
|
73
|
+
#
|
74
|
+
# @param group_id [Integer]
|
75
|
+
# @param deal_id [Integer]
|
76
|
+
# @param user_type [NewDemoApiClient::UserType]
|
77
|
+
# @param metric [String]
|
78
|
+
# @param freq [NewDemoApiClient::Frequency]
|
79
|
+
# @param request_options [NewDemoApiClient::RequestOptions]
|
80
|
+
# @return [Array<NewDemoApiClient::GrowthAccountingResponse>]
|
81
|
+
# @example
|
82
|
+
# api = NewDemoApiClient::Client.new(
|
83
|
+
# base_url: "https://api.example.com",
|
84
|
+
# environment: NewDemoApiClient::Environment::DEFAULT,
|
85
|
+
# token: "YOUR_AUTH_TOKEN"
|
86
|
+
# )
|
87
|
+
# api.product.get_growth_accounting(
|
88
|
+
# group_id: 1,
|
89
|
+
# deal_id: 1,
|
90
|
+
# user_type: BUSINESS,
|
91
|
+
# metric: "metric"
|
92
|
+
# )
|
93
|
+
def get_growth_accounting(group_id:, deal_id:, user_type:, metric:, freq: nil, request_options: nil)
|
94
|
+
response = @request_client.conn.get do |req|
|
95
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
96
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
97
|
+
req.headers = {
|
98
|
+
**(req.headers || {}),
|
99
|
+
**@request_client.get_headers,
|
100
|
+
**(request_options&.additional_headers || {})
|
101
|
+
}.compact
|
102
|
+
req.params = {
|
103
|
+
**(request_options&.additional_query_parameters || {}),
|
104
|
+
"user_type": user_type,
|
105
|
+
"metric": metric,
|
106
|
+
"freq": freq
|
107
|
+
}.compact
|
108
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
109
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
110
|
+
end
|
111
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{group_id}/deal/#{deal_id}/data/growth-accounting"
|
112
|
+
end
|
113
|
+
parsed_json = JSON.parse(response.body)
|
114
|
+
parsed_json&.map do |item|
|
115
|
+
item = item.to_json
|
116
|
+
NewDemoApiClient::GrowthAccountingResponse.from_json(json_object: item)
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
120
|
+
# Get the product cohorts for the company associated with the deal.
|
121
|
+
#
|
122
|
+
# @param group_id [Integer]
|
123
|
+
# @param deal_id [Integer]
|
124
|
+
# @param user_type [NewDemoApiClient::UserType]
|
125
|
+
# @param metric [String]
|
126
|
+
# @param freq [NewDemoApiClient::Frequency]
|
127
|
+
# @param request_options [NewDemoApiClient::RequestOptions]
|
128
|
+
# @return [Array<NewDemoApiClient::CohortsResponse>]
|
129
|
+
# @example
|
130
|
+
# api = NewDemoApiClient::Client.new(
|
131
|
+
# base_url: "https://api.example.com",
|
132
|
+
# environment: NewDemoApiClient::Environment::DEFAULT,
|
133
|
+
# token: "YOUR_AUTH_TOKEN"
|
134
|
+
# )
|
135
|
+
# api.product.get_cohorts(
|
136
|
+
# group_id: 1,
|
137
|
+
# deal_id: 1,
|
138
|
+
# user_type: BUSINESS,
|
139
|
+
# metric: "metric"
|
140
|
+
# )
|
141
|
+
def get_cohorts(group_id:, deal_id:, user_type:, metric:, freq: nil, request_options: nil)
|
142
|
+
response = @request_client.conn.get do |req|
|
143
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
144
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
145
|
+
req.headers = {
|
146
|
+
**(req.headers || {}),
|
147
|
+
**@request_client.get_headers,
|
148
|
+
**(request_options&.additional_headers || {})
|
149
|
+
}.compact
|
150
|
+
req.params = {
|
151
|
+
**(request_options&.additional_query_parameters || {}),
|
152
|
+
"user_type": user_type,
|
153
|
+
"metric": metric,
|
154
|
+
"freq": freq
|
155
|
+
}.compact
|
156
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
157
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
158
|
+
end
|
159
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{group_id}/deal/#{deal_id}/data/cohorts"
|
160
|
+
end
|
161
|
+
parsed_json = JSON.parse(response.body)
|
162
|
+
parsed_json&.map do |item|
|
163
|
+
item = item.to_json
|
164
|
+
NewDemoApiClient::CohortsResponse.from_json(json_object: item)
|
165
|
+
end
|
166
|
+
end
|
167
|
+
|
168
|
+
# Get the product concentration for the company associated with the deal.
|
169
|
+
#
|
170
|
+
# @param group_id [Integer]
|
171
|
+
# @param deal_id [Integer]
|
172
|
+
# @param user_type [NewDemoApiClient::UserType]
|
173
|
+
# @param metric [String]
|
174
|
+
# @param freq [NewDemoApiClient::Frequency]
|
175
|
+
# @param request_options [NewDemoApiClient::RequestOptions]
|
176
|
+
# @return [NewDemoApiClient::ConcentrationResponse]
|
177
|
+
# @example
|
178
|
+
# api = NewDemoApiClient::Client.new(
|
179
|
+
# base_url: "https://api.example.com",
|
180
|
+
# environment: NewDemoApiClient::Environment::DEFAULT,
|
181
|
+
# token: "YOUR_AUTH_TOKEN"
|
182
|
+
# )
|
183
|
+
# api.product.get_concentration(
|
184
|
+
# group_id: 1,
|
185
|
+
# deal_id: 1,
|
186
|
+
# user_type: BUSINESS,
|
187
|
+
# metric: "metric"
|
188
|
+
# )
|
189
|
+
def get_concentration(group_id:, deal_id:, user_type:, metric:, freq: nil, request_options: nil)
|
190
|
+
response = @request_client.conn.get do |req|
|
191
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
192
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
193
|
+
req.headers = {
|
194
|
+
**(req.headers || {}),
|
195
|
+
**@request_client.get_headers,
|
196
|
+
**(request_options&.additional_headers || {})
|
197
|
+
}.compact
|
198
|
+
req.params = {
|
199
|
+
**(request_options&.additional_query_parameters || {}),
|
200
|
+
"user_type": user_type,
|
201
|
+
"metric": metric,
|
202
|
+
"freq": freq
|
203
|
+
}.compact
|
204
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
205
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
206
|
+
end
|
207
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{group_id}/deal/#{deal_id}/data/concentration"
|
208
|
+
end
|
209
|
+
NewDemoApiClient::ConcentrationResponse.from_json(json_object: response.body)
|
210
|
+
end
|
211
|
+
end
|
212
|
+
|
213
|
+
class AsyncProductClient
|
214
|
+
# @return [NewDemoApiClient::AsyncRequestClient]
|
215
|
+
attr_reader :request_client
|
216
|
+
|
217
|
+
# @param request_client [NewDemoApiClient::AsyncRequestClient]
|
218
|
+
# @return [NewDemoApiClient::AsyncProductClient]
|
219
|
+
def initialize(request_client:)
|
220
|
+
@request_client = request_client
|
221
|
+
end
|
222
|
+
|
223
|
+
# Get the product user accounting for the company associated with the deal.
|
224
|
+
#
|
225
|
+
# @param group_id [Integer]
|
226
|
+
# @param deal_id [Integer]
|
227
|
+
# @param user_type [NewDemoApiClient::UserType]
|
228
|
+
# @param metric [String]
|
229
|
+
# @param freq [NewDemoApiClient::Frequency]
|
230
|
+
# @param request_options [NewDemoApiClient::RequestOptions]
|
231
|
+
# @return [Array<NewDemoApiClient::UserAccountingResponse>]
|
232
|
+
# @example
|
233
|
+
# api = NewDemoApiClient::Client.new(
|
234
|
+
# base_url: "https://api.example.com",
|
235
|
+
# environment: NewDemoApiClient::Environment::DEFAULT,
|
236
|
+
# token: "YOUR_AUTH_TOKEN"
|
237
|
+
# )
|
238
|
+
# api.product.get_user_accounting(
|
239
|
+
# group_id: 1,
|
240
|
+
# deal_id: 1,
|
241
|
+
# user_type: BUSINESS,
|
242
|
+
# metric: "metric"
|
243
|
+
# )
|
244
|
+
def get_user_accounting(group_id:, deal_id:, user_type:, metric:, freq: nil, request_options: nil)
|
245
|
+
Async do
|
246
|
+
response = @request_client.conn.get do |req|
|
247
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
248
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
249
|
+
req.headers = {
|
250
|
+
**(req.headers || {}),
|
251
|
+
**@request_client.get_headers,
|
252
|
+
**(request_options&.additional_headers || {})
|
253
|
+
}.compact
|
254
|
+
req.params = {
|
255
|
+
**(request_options&.additional_query_parameters || {}),
|
256
|
+
"user_type": user_type,
|
257
|
+
"metric": metric,
|
258
|
+
"freq": freq
|
259
|
+
}.compact
|
260
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
261
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
262
|
+
end
|
263
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{group_id}/deal/#{deal_id}/data/user-accounting"
|
264
|
+
end
|
265
|
+
parsed_json = JSON.parse(response.body)
|
266
|
+
parsed_json&.map do |item|
|
267
|
+
item = item.to_json
|
268
|
+
NewDemoApiClient::UserAccountingResponse.from_json(json_object: item)
|
269
|
+
end
|
270
|
+
end
|
271
|
+
end
|
272
|
+
|
273
|
+
# Get the product growth accounting for the company associated with the deal.
|
274
|
+
#
|
275
|
+
# @param group_id [Integer]
|
276
|
+
# @param deal_id [Integer]
|
277
|
+
# @param user_type [NewDemoApiClient::UserType]
|
278
|
+
# @param metric [String]
|
279
|
+
# @param freq [NewDemoApiClient::Frequency]
|
280
|
+
# @param request_options [NewDemoApiClient::RequestOptions]
|
281
|
+
# @return [Array<NewDemoApiClient::GrowthAccountingResponse>]
|
282
|
+
# @example
|
283
|
+
# api = NewDemoApiClient::Client.new(
|
284
|
+
# base_url: "https://api.example.com",
|
285
|
+
# environment: NewDemoApiClient::Environment::DEFAULT,
|
286
|
+
# token: "YOUR_AUTH_TOKEN"
|
287
|
+
# )
|
288
|
+
# api.product.get_growth_accounting(
|
289
|
+
# group_id: 1,
|
290
|
+
# deal_id: 1,
|
291
|
+
# user_type: BUSINESS,
|
292
|
+
# metric: "metric"
|
293
|
+
# )
|
294
|
+
def get_growth_accounting(group_id:, deal_id:, user_type:, metric:, freq: nil, request_options: nil)
|
295
|
+
Async do
|
296
|
+
response = @request_client.conn.get do |req|
|
297
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
298
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
299
|
+
req.headers = {
|
300
|
+
**(req.headers || {}),
|
301
|
+
**@request_client.get_headers,
|
302
|
+
**(request_options&.additional_headers || {})
|
303
|
+
}.compact
|
304
|
+
req.params = {
|
305
|
+
**(request_options&.additional_query_parameters || {}),
|
306
|
+
"user_type": user_type,
|
307
|
+
"metric": metric,
|
308
|
+
"freq": freq
|
309
|
+
}.compact
|
310
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
311
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
312
|
+
end
|
313
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{group_id}/deal/#{deal_id}/data/growth-accounting"
|
314
|
+
end
|
315
|
+
parsed_json = JSON.parse(response.body)
|
316
|
+
parsed_json&.map do |item|
|
317
|
+
item = item.to_json
|
318
|
+
NewDemoApiClient::GrowthAccountingResponse.from_json(json_object: item)
|
319
|
+
end
|
320
|
+
end
|
321
|
+
end
|
322
|
+
|
323
|
+
# Get the product cohorts for the company associated with the deal.
|
324
|
+
#
|
325
|
+
# @param group_id [Integer]
|
326
|
+
# @param deal_id [Integer]
|
327
|
+
# @param user_type [NewDemoApiClient::UserType]
|
328
|
+
# @param metric [String]
|
329
|
+
# @param freq [NewDemoApiClient::Frequency]
|
330
|
+
# @param request_options [NewDemoApiClient::RequestOptions]
|
331
|
+
# @return [Array<NewDemoApiClient::CohortsResponse>]
|
332
|
+
# @example
|
333
|
+
# api = NewDemoApiClient::Client.new(
|
334
|
+
# base_url: "https://api.example.com",
|
335
|
+
# environment: NewDemoApiClient::Environment::DEFAULT,
|
336
|
+
# token: "YOUR_AUTH_TOKEN"
|
337
|
+
# )
|
338
|
+
# api.product.get_cohorts(
|
339
|
+
# group_id: 1,
|
340
|
+
# deal_id: 1,
|
341
|
+
# user_type: BUSINESS,
|
342
|
+
# metric: "metric"
|
343
|
+
# )
|
344
|
+
def get_cohorts(group_id:, deal_id:, user_type:, metric:, freq: nil, request_options: nil)
|
345
|
+
Async do
|
346
|
+
response = @request_client.conn.get do |req|
|
347
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
348
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
349
|
+
req.headers = {
|
350
|
+
**(req.headers || {}),
|
351
|
+
**@request_client.get_headers,
|
352
|
+
**(request_options&.additional_headers || {})
|
353
|
+
}.compact
|
354
|
+
req.params = {
|
355
|
+
**(request_options&.additional_query_parameters || {}),
|
356
|
+
"user_type": user_type,
|
357
|
+
"metric": metric,
|
358
|
+
"freq": freq
|
359
|
+
}.compact
|
360
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
361
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
362
|
+
end
|
363
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{group_id}/deal/#{deal_id}/data/cohorts"
|
364
|
+
end
|
365
|
+
parsed_json = JSON.parse(response.body)
|
366
|
+
parsed_json&.map do |item|
|
367
|
+
item = item.to_json
|
368
|
+
NewDemoApiClient::CohortsResponse.from_json(json_object: item)
|
369
|
+
end
|
370
|
+
end
|
371
|
+
end
|
372
|
+
|
373
|
+
# Get the product concentration for the company associated with the deal.
|
374
|
+
#
|
375
|
+
# @param group_id [Integer]
|
376
|
+
# @param deal_id [Integer]
|
377
|
+
# @param user_type [NewDemoApiClient::UserType]
|
378
|
+
# @param metric [String]
|
379
|
+
# @param freq [NewDemoApiClient::Frequency]
|
380
|
+
# @param request_options [NewDemoApiClient::RequestOptions]
|
381
|
+
# @return [NewDemoApiClient::ConcentrationResponse]
|
382
|
+
# @example
|
383
|
+
# api = NewDemoApiClient::Client.new(
|
384
|
+
# base_url: "https://api.example.com",
|
385
|
+
# environment: NewDemoApiClient::Environment::DEFAULT,
|
386
|
+
# token: "YOUR_AUTH_TOKEN"
|
387
|
+
# )
|
388
|
+
# api.product.get_concentration(
|
389
|
+
# group_id: 1,
|
390
|
+
# deal_id: 1,
|
391
|
+
# user_type: BUSINESS,
|
392
|
+
# metric: "metric"
|
393
|
+
# )
|
394
|
+
def get_concentration(group_id:, deal_id:, user_type:, metric:, freq: nil, request_options: nil)
|
395
|
+
Async do
|
396
|
+
response = @request_client.conn.get do |req|
|
397
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
398
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
399
|
+
req.headers = {
|
400
|
+
**(req.headers || {}),
|
401
|
+
**@request_client.get_headers,
|
402
|
+
**(request_options&.additional_headers || {})
|
403
|
+
}.compact
|
404
|
+
req.params = {
|
405
|
+
**(request_options&.additional_query_parameters || {}),
|
406
|
+
"user_type": user_type,
|
407
|
+
"metric": metric,
|
408
|
+
"freq": freq
|
409
|
+
}.compact
|
410
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
411
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
412
|
+
end
|
413
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{group_id}/deal/#{deal_id}/data/concentration"
|
414
|
+
end
|
415
|
+
NewDemoApiClient::ConcentrationResponse.from_json(json_object: response.body)
|
416
|
+
end
|
417
|
+
end
|
418
|
+
end
|
419
|
+
end
|
@@ -0,0 +1,266 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "../../requests"
|
4
|
+
require_relative "../types/executive_profile"
|
5
|
+
require "json"
|
6
|
+
require_relative "../types/endpoint_seniority_count"
|
7
|
+
require_relative "../types/function_level_growth_accounting"
|
8
|
+
require "async"
|
9
|
+
|
10
|
+
module NewDemoApiClient
|
11
|
+
class TalentClient
|
12
|
+
# @return [NewDemoApiClient::RequestClient]
|
13
|
+
attr_reader :request_client
|
14
|
+
|
15
|
+
# @param request_client [NewDemoApiClient::RequestClient]
|
16
|
+
# @return [NewDemoApiClient::TalentClient]
|
17
|
+
def initialize(request_client:)
|
18
|
+
@request_client = request_client
|
19
|
+
end
|
20
|
+
|
21
|
+
# Get the profiles of the executives for the company associated with the deal.
|
22
|
+
#
|
23
|
+
# @param group_id [Integer]
|
24
|
+
# @param deal_id [Integer]
|
25
|
+
# @param request_options [NewDemoApiClient::RequestOptions]
|
26
|
+
# @return [Array<NewDemoApiClient::ExecutiveProfile>]
|
27
|
+
# @example
|
28
|
+
# api = NewDemoApiClient::Client.new(
|
29
|
+
# base_url: "https://api.example.com",
|
30
|
+
# environment: NewDemoApiClient::Environment::DEFAULT,
|
31
|
+
# token: "YOUR_AUTH_TOKEN"
|
32
|
+
# )
|
33
|
+
# api.talent.get_executive_profiles(group_id: 1, deal_id: 1)
|
34
|
+
def get_executive_profiles(group_id:, deal_id:, request_options: nil)
|
35
|
+
response = @request_client.conn.get do |req|
|
36
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
37
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
38
|
+
req.headers = {
|
39
|
+
**(req.headers || {}),
|
40
|
+
**@request_client.get_headers,
|
41
|
+
**(request_options&.additional_headers || {})
|
42
|
+
}.compact
|
43
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
44
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
45
|
+
end
|
46
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
47
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
48
|
+
end
|
49
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{group_id}/deal/#{deal_id}/data/executive-profiles"
|
50
|
+
end
|
51
|
+
parsed_json = JSON.parse(response.body)
|
52
|
+
parsed_json&.map do |item|
|
53
|
+
item = item.to_json
|
54
|
+
NewDemoApiClient::ExecutiveProfile.from_json(json_object: item)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
# Returns the number of employees at various seniority levels as of the endpoint
|
59
|
+
# of the talent data for the deal.
|
60
|
+
#
|
61
|
+
# @param group_id [Integer]
|
62
|
+
# @param deal_id [Integer]
|
63
|
+
# @param request_options [NewDemoApiClient::RequestOptions]
|
64
|
+
# @return [Array<NewDemoApiClient::EndpointSeniorityCount>]
|
65
|
+
# @example
|
66
|
+
# api = NewDemoApiClient::Client.new(
|
67
|
+
# base_url: "https://api.example.com",
|
68
|
+
# environment: NewDemoApiClient::Environment::DEFAULT,
|
69
|
+
# token: "YOUR_AUTH_TOKEN"
|
70
|
+
# )
|
71
|
+
# api.talent.get_seniority_count(group_id: 1, deal_id: 1)
|
72
|
+
def get_seniority_count(group_id:, deal_id:, request_options: nil)
|
73
|
+
response = @request_client.conn.get do |req|
|
74
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
75
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
76
|
+
req.headers = {
|
77
|
+
**(req.headers || {}),
|
78
|
+
**@request_client.get_headers,
|
79
|
+
**(request_options&.additional_headers || {})
|
80
|
+
}.compact
|
81
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
82
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
83
|
+
end
|
84
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
85
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
86
|
+
end
|
87
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{group_id}/deal/#{deal_id}/data/seniority-count"
|
88
|
+
end
|
89
|
+
parsed_json = JSON.parse(response.body)
|
90
|
+
parsed_json&.map do |item|
|
91
|
+
item = item.to_json
|
92
|
+
NewDemoApiClient::EndpointSeniorityCount.from_json(json_object: item)
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
# The function-level growth accounting for employees within the company. Measure
|
97
|
+
# how many users join, churn, or
|
98
|
+
# resurrect, at the function level, for each period there is data.
|
99
|
+
#
|
100
|
+
# @param group_id [Integer]
|
101
|
+
# @param deal_id [Integer]
|
102
|
+
# @param request_options [NewDemoApiClient::RequestOptions]
|
103
|
+
# @return [Array<NewDemoApiClient::FunctionLevelGrowthAccounting>]
|
104
|
+
# @example
|
105
|
+
# api = NewDemoApiClient::Client.new(
|
106
|
+
# base_url: "https://api.example.com",
|
107
|
+
# environment: NewDemoApiClient::Environment::DEFAULT,
|
108
|
+
# token: "YOUR_AUTH_TOKEN"
|
109
|
+
# )
|
110
|
+
# api.talent.get_team_growth_accounting(group_id: 1, deal_id: 1)
|
111
|
+
def get_team_growth_accounting(group_id:, deal_id:, request_options: nil)
|
112
|
+
response = @request_client.conn.get do |req|
|
113
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
114
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
115
|
+
req.headers = {
|
116
|
+
**(req.headers || {}),
|
117
|
+
**@request_client.get_headers,
|
118
|
+
**(request_options&.additional_headers || {})
|
119
|
+
}.compact
|
120
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
121
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
122
|
+
end
|
123
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
124
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
125
|
+
end
|
126
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{group_id}/deal/#{deal_id}/data/team-growth-accounting"
|
127
|
+
end
|
128
|
+
parsed_json = JSON.parse(response.body)
|
129
|
+
parsed_json&.map do |item|
|
130
|
+
item = item.to_json
|
131
|
+
NewDemoApiClient::FunctionLevelGrowthAccounting.from_json(json_object: item)
|
132
|
+
end
|
133
|
+
end
|
134
|
+
end
|
135
|
+
|
136
|
+
class AsyncTalentClient
|
137
|
+
# @return [NewDemoApiClient::AsyncRequestClient]
|
138
|
+
attr_reader :request_client
|
139
|
+
|
140
|
+
# @param request_client [NewDemoApiClient::AsyncRequestClient]
|
141
|
+
# @return [NewDemoApiClient::AsyncTalentClient]
|
142
|
+
def initialize(request_client:)
|
143
|
+
@request_client = request_client
|
144
|
+
end
|
145
|
+
|
146
|
+
# Get the profiles of the executives for the company associated with the deal.
|
147
|
+
#
|
148
|
+
# @param group_id [Integer]
|
149
|
+
# @param deal_id [Integer]
|
150
|
+
# @param request_options [NewDemoApiClient::RequestOptions]
|
151
|
+
# @return [Array<NewDemoApiClient::ExecutiveProfile>]
|
152
|
+
# @example
|
153
|
+
# api = NewDemoApiClient::Client.new(
|
154
|
+
# base_url: "https://api.example.com",
|
155
|
+
# environment: NewDemoApiClient::Environment::DEFAULT,
|
156
|
+
# token: "YOUR_AUTH_TOKEN"
|
157
|
+
# )
|
158
|
+
# api.talent.get_executive_profiles(group_id: 1, deal_id: 1)
|
159
|
+
def get_executive_profiles(group_id:, deal_id:, request_options: nil)
|
160
|
+
Async do
|
161
|
+
response = @request_client.conn.get do |req|
|
162
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
163
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
164
|
+
req.headers = {
|
165
|
+
**(req.headers || {}),
|
166
|
+
**@request_client.get_headers,
|
167
|
+
**(request_options&.additional_headers || {})
|
168
|
+
}.compact
|
169
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
170
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
171
|
+
end
|
172
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
173
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
174
|
+
end
|
175
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{group_id}/deal/#{deal_id}/data/executive-profiles"
|
176
|
+
end
|
177
|
+
parsed_json = JSON.parse(response.body)
|
178
|
+
parsed_json&.map do |item|
|
179
|
+
item = item.to_json
|
180
|
+
NewDemoApiClient::ExecutiveProfile.from_json(json_object: item)
|
181
|
+
end
|
182
|
+
end
|
183
|
+
end
|
184
|
+
|
185
|
+
# Returns the number of employees at various seniority levels as of the endpoint
|
186
|
+
# of the talent data for the deal.
|
187
|
+
#
|
188
|
+
# @param group_id [Integer]
|
189
|
+
# @param deal_id [Integer]
|
190
|
+
# @param request_options [NewDemoApiClient::RequestOptions]
|
191
|
+
# @return [Array<NewDemoApiClient::EndpointSeniorityCount>]
|
192
|
+
# @example
|
193
|
+
# api = NewDemoApiClient::Client.new(
|
194
|
+
# base_url: "https://api.example.com",
|
195
|
+
# environment: NewDemoApiClient::Environment::DEFAULT,
|
196
|
+
# token: "YOUR_AUTH_TOKEN"
|
197
|
+
# )
|
198
|
+
# api.talent.get_seniority_count(group_id: 1, deal_id: 1)
|
199
|
+
def get_seniority_count(group_id:, deal_id:, request_options: nil)
|
200
|
+
Async do
|
201
|
+
response = @request_client.conn.get do |req|
|
202
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
203
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
204
|
+
req.headers = {
|
205
|
+
**(req.headers || {}),
|
206
|
+
**@request_client.get_headers,
|
207
|
+
**(request_options&.additional_headers || {})
|
208
|
+
}.compact
|
209
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
210
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
211
|
+
end
|
212
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
213
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
214
|
+
end
|
215
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{group_id}/deal/#{deal_id}/data/seniority-count"
|
216
|
+
end
|
217
|
+
parsed_json = JSON.parse(response.body)
|
218
|
+
parsed_json&.map do |item|
|
219
|
+
item = item.to_json
|
220
|
+
NewDemoApiClient::EndpointSeniorityCount.from_json(json_object: item)
|
221
|
+
end
|
222
|
+
end
|
223
|
+
end
|
224
|
+
|
225
|
+
# The function-level growth accounting for employees within the company. Measure
|
226
|
+
# how many users join, churn, or
|
227
|
+
# resurrect, at the function level, for each period there is data.
|
228
|
+
#
|
229
|
+
# @param group_id [Integer]
|
230
|
+
# @param deal_id [Integer]
|
231
|
+
# @param request_options [NewDemoApiClient::RequestOptions]
|
232
|
+
# @return [Array<NewDemoApiClient::FunctionLevelGrowthAccounting>]
|
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.talent.get_team_growth_accounting(group_id: 1, deal_id: 1)
|
240
|
+
def get_team_growth_accounting(group_id:, deal_id:, request_options: nil)
|
241
|
+
Async do
|
242
|
+
response = @request_client.conn.get do |req|
|
243
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
244
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
245
|
+
req.headers = {
|
246
|
+
**(req.headers || {}),
|
247
|
+
**@request_client.get_headers,
|
248
|
+
**(request_options&.additional_headers || {})
|
249
|
+
}.compact
|
250
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
251
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
252
|
+
end
|
253
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
254
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
255
|
+
end
|
256
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{group_id}/deal/#{deal_id}/data/team-growth-accounting"
|
257
|
+
end
|
258
|
+
parsed_json = JSON.parse(response.body)
|
259
|
+
parsed_json&.map do |item|
|
260
|
+
item = item.to_json
|
261
|
+
NewDemoApiClient::FunctionLevelGrowthAccounting.from_json(json_object: item)
|
262
|
+
end
|
263
|
+
end
|
264
|
+
end
|
265
|
+
end
|
266
|
+
end
|