thecompaniesapi 1.0.1

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 (100) hide show
  1. checksums.yaml +7 -0
  2. data/.env.example +4 -0
  3. data/.github/workflows/release.yml +106 -0
  4. data/.github/workflows/tests.yml +93 -0
  5. data/.gitignore +146 -0
  6. data/CODE_OF_CONDUCT.md +74 -0
  7. data/Gemfile +7 -0
  8. data/Gemfile.lock +36 -0
  9. data/LICENSE.txt +21 -0
  10. data/README.md +551 -0
  11. data/Rakefile +25 -0
  12. data/bin/console +14 -0
  13. data/bin/setup +8 -0
  14. data/lib/thecompaniesapi/client.rb +643 -0
  15. data/lib/thecompaniesapi/error.rb +28 -0
  16. data/lib/thecompaniesapi/generated/models/action.rb +91 -0
  17. data/lib/thecompaniesapi/generated/models/company_v2.rb +136 -0
  18. data/lib/thecompaniesapi/generated/models/email_pattern.rb +51 -0
  19. data/lib/thecompaniesapi/generated/models/job_title.rb +81 -0
  20. data/lib/thecompaniesapi/generated/models/list.rb +141 -0
  21. data/lib/thecompaniesapi/generated/models/list_analytics.rb +46 -0
  22. data/lib/thecompaniesapi/generated/models/llmanswer.rb +66 -0
  23. data/lib/thecompaniesapi/generated/models/nominatim_city.rb +101 -0
  24. data/lib/thecompaniesapi/generated/models/nominatim_continent.rb +111 -0
  25. data/lib/thecompaniesapi/generated/models/nominatim_country.rb +121 -0
  26. data/lib/thecompaniesapi/generated/models/nominatim_county.rb +96 -0
  27. data/lib/thecompaniesapi/generated/models/nominatim_state.rb +96 -0
  28. data/lib/thecompaniesapi/generated/models/page_contents_ideated.rb +171 -0
  29. data/lib/thecompaniesapi/generated/models/page_contents_link.rb +41 -0
  30. data/lib/thecompaniesapi/generated/models/page_contents_page.rb +71 -0
  31. data/lib/thecompaniesapi/generated/models/pagination_meta.rb +76 -0
  32. data/lib/thecompaniesapi/generated/models/prompt.rb +91 -0
  33. data/lib/thecompaniesapi/generated/models/segmentation_condition.rb +56 -0
  34. data/lib/thecompaniesapi/generated/models/team.rb +101 -0
  35. data/lib/thecompaniesapi/generated/models/technology.rb +96 -0
  36. data/lib/thecompaniesapi/generated/models/user.rb +101 -0
  37. data/lib/thecompaniesapi/generated/operations_map.rb +11 -0
  38. data/lib/thecompaniesapi/generated/requests/ask_company_request.rb +60 -0
  39. data/lib/thecompaniesapi/generated/requests/count_companies_post_request.rb +50 -0
  40. data/lib/thecompaniesapi/generated/requests/create_list_request.rb +70 -0
  41. data/lib/thecompaniesapi/generated/requests/export_companies_analytics_request.rb +70 -0
  42. data/lib/thecompaniesapi/generated/requests/fetch_companies_in_list_post_request.rb +70 -0
  43. data/lib/thecompaniesapi/generated/requests/product_prompt_request.rb +65 -0
  44. data/lib/thecompaniesapi/generated/requests/prompt_to_segmentation_request.rb +55 -0
  45. data/lib/thecompaniesapi/generated/requests/request_action_request.rb +80 -0
  46. data/lib/thecompaniesapi/generated/requests/retry_action_request.rb +30 -0
  47. data/lib/thecompaniesapi/generated/requests/search_companies_post_request.rb +90 -0
  48. data/lib/thecompaniesapi/generated/requests/toggle_companies_in_list_request.rb +50 -0
  49. data/lib/thecompaniesapi/generated/requests/update_list_request.rb +65 -0
  50. data/lib/thecompaniesapi/generated/requests/update_team_request.rb +45 -0
  51. data/lib/thecompaniesapi/generated/responses/ask_company_response.rb +38 -0
  52. data/lib/thecompaniesapi/generated/responses/count_companies_post_response.rb +34 -0
  53. data/lib/thecompaniesapi/generated/responses/count_companies_response.rb +34 -0
  54. data/lib/thecompaniesapi/generated/responses/create_list_response.rb +25 -0
  55. data/lib/thecompaniesapi/generated/responses/delete_list_response.rb +25 -0
  56. data/lib/thecompaniesapi/generated/responses/delete_prompt_response.rb +25 -0
  57. data/lib/thecompaniesapi/generated/responses/enrich_job_titles_response.rb +25 -0
  58. data/lib/thecompaniesapi/generated/responses/export_companies_analytics_response.rb +38 -0
  59. data/lib/thecompaniesapi/generated/responses/fetch_actions_response.rb +38 -0
  60. data/lib/thecompaniesapi/generated/responses/fetch_api_health_response.rb +42 -0
  61. data/lib/thecompaniesapi/generated/responses/fetch_companies_analytics_response.rb +38 -0
  62. data/lib/thecompaniesapi/generated/responses/fetch_companies_in_list_post_response.rb +42 -0
  63. data/lib/thecompaniesapi/generated/responses/fetch_companies_in_list_response.rb +42 -0
  64. data/lib/thecompaniesapi/generated/responses/fetch_company_by_email_response.rb +42 -0
  65. data/lib/thecompaniesapi/generated/responses/fetch_company_by_social_response.rb +25 -0
  66. data/lib/thecompaniesapi/generated/responses/fetch_company_context_response.rb +38 -0
  67. data/lib/thecompaniesapi/generated/responses/fetch_company_email_patterns_response.rb +25 -0
  68. data/lib/thecompaniesapi/generated/responses/fetch_company_in_list_response.rb +25 -0
  69. data/lib/thecompaniesapi/generated/responses/fetch_company_response.rb +25 -0
  70. data/lib/thecompaniesapi/generated/responses/fetch_lists_response.rb +38 -0
  71. data/lib/thecompaniesapi/generated/responses/fetch_open_api_response.rb +30 -0
  72. data/lib/thecompaniesapi/generated/responses/fetch_prompts_response.rb +38 -0
  73. data/lib/thecompaniesapi/generated/responses/fetch_team_response.rb +25 -0
  74. data/lib/thecompaniesapi/generated/responses/fetch_user_response.rb +25 -0
  75. data/lib/thecompaniesapi/generated/responses/product_prompt_response.rb +42 -0
  76. data/lib/thecompaniesapi/generated/responses/prompt_to_segmentation_response.rb +42 -0
  77. data/lib/thecompaniesapi/generated/responses/request_action_response.rb +34 -0
  78. data/lib/thecompaniesapi/generated/responses/retry_action_response.rb +34 -0
  79. data/lib/thecompaniesapi/generated/responses/search_cities_response.rb +38 -0
  80. data/lib/thecompaniesapi/generated/responses/search_companies_by_name_response.rb +38 -0
  81. data/lib/thecompaniesapi/generated/responses/search_companies_by_prompt_response.rb +38 -0
  82. data/lib/thecompaniesapi/generated/responses/search_companies_post_response.rb +42 -0
  83. data/lib/thecompaniesapi/generated/responses/search_companies_response.rb +42 -0
  84. data/lib/thecompaniesapi/generated/responses/search_continents_response.rb +38 -0
  85. data/lib/thecompaniesapi/generated/responses/search_counties_response.rb +38 -0
  86. data/lib/thecompaniesapi/generated/responses/search_countries_response.rb +38 -0
  87. data/lib/thecompaniesapi/generated/responses/search_industries_response.rb +38 -0
  88. data/lib/thecompaniesapi/generated/responses/search_industries_similar_response.rb +38 -0
  89. data/lib/thecompaniesapi/generated/responses/search_similar_companies_response.rb +38 -0
  90. data/lib/thecompaniesapi/generated/responses/search_states_response.rb +38 -0
  91. data/lib/thecompaniesapi/generated/responses/search_technologies_response.rb +38 -0
  92. data/lib/thecompaniesapi/generated/responses/toggle_companies_in_list_response.rb +25 -0
  93. data/lib/thecompaniesapi/generated/responses/update_list_response.rb +25 -0
  94. data/lib/thecompaniesapi/generated/responses/update_team_response.rb +25 -0
  95. data/lib/thecompaniesapi/http_client.rb +146 -0
  96. data/lib/thecompaniesapi/version.rb +3 -0
  97. data/lib/thecompaniesapi.rb +7 -0
  98. data/script/generate_client.rb +653 -0
  99. data/thecompaniesapi.gemspec +34 -0
  100. metadata +188 -0
@@ -0,0 +1,643 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'http_client'
4
+
5
+ module TheCompaniesAPI
6
+ ##
7
+ # The Companies API client with auto-generated methods
8
+ #
9
+ # This class extends HttpClient with auto-generated methods
10
+ # from the OpenAPI specification.
11
+ class Client < HttpClient
12
+ ##
13
+ #
14
+ #
15
+ # Get the health status of the API.
16
+ #
17
+ # @param params [Hash] Query parameters
18
+ # @param headers [Hash] Additional headers
19
+ # @return [Hash] API response
20
+ def fetch_api_health(params: {}, headers: {})
21
+ endpoint = '/'
22
+
23
+ get(endpoint, params: params)
24
+ end
25
+
26
+ ##
27
+ #
28
+ #
29
+ # Get the current OpenAPI specification.
30
+ #
31
+ # @param params [Hash] Query parameters
32
+ # @param headers [Hash] Additional headers
33
+ # @return [Hash] API response
34
+ def fetch_open_api(params: {}, headers: {})
35
+ endpoint = '/v2/openapi'
36
+
37
+ get(endpoint, params: params)
38
+ end
39
+
40
+ ##
41
+ #
42
+ #
43
+ # Get and filter your actions.
44
+ #
45
+ # @param params [Hash] Query parameters
46
+ # @param headers [Hash] Additional headers
47
+ # @return [Hash] API response
48
+ def fetch_actions(params: {}, headers: {})
49
+ endpoint = '/v2/actions'
50
+
51
+ get(endpoint, params: params)
52
+ end
53
+
54
+ ##
55
+ #
56
+ #
57
+ # Request or estimate a new action.
58
+ #
59
+ # @param data [Hash] Request body data
60
+ # @param headers [Hash] Additional headers
61
+ # @return [Hash] API response
62
+ def request_action(data: {}, headers: {})
63
+ endpoint = '/v2/actions'
64
+
65
+ post(endpoint, body: data)
66
+ end
67
+
68
+ ##
69
+ #
70
+ #
71
+ # Ask for a retry of failed action.
72
+ #
73
+ # @param action_id [String] Path parameter
74
+ # @param data [Hash] Request body data
75
+ # @param headers [Hash] Additional headers
76
+ # @return [Hash] API response
77
+ def retry_action(action_id, data: {}, headers: {})
78
+ endpoint = "/v2/actions/#{action_id}/retry"
79
+
80
+ post(endpoint, body: data)
81
+ end
82
+
83
+ ##
84
+ #
85
+ #
86
+ # Search companies using a segmentation query.
87
+ #
88
+ # @param params [Hash] Query parameters
89
+ # @param headers [Hash] Additional headers
90
+ # @return [Hash] API response
91
+ def search_companies(params: {}, headers: {})
92
+ endpoint = '/v2/companies'
93
+
94
+ get(endpoint, params: params)
95
+ end
96
+
97
+ ##
98
+ #
99
+ #
100
+ # Search companies using a segmentation query.
101
+ #
102
+ # @param data [Hash] Request body data
103
+ # @param headers [Hash] Additional headers
104
+ # @return [Hash] API response
105
+ def search_companies_post(data: {}, headers: {})
106
+ endpoint = '/v2/companies'
107
+
108
+ post(endpoint, body: data)
109
+ end
110
+
111
+ ##
112
+ #
113
+ #
114
+ # Get a single company data by its domain.
115
+ #
116
+ # @param domain [String] Path parameter
117
+ # @param params [Hash] Query parameters
118
+ # @param headers [Hash] Additional headers
119
+ # @return [Hash] API response
120
+ def fetch_company(domain, params: {}, headers: {})
121
+ endpoint = "/v2/companies/#{domain}"
122
+
123
+ get(endpoint, params: params)
124
+ end
125
+
126
+ ##
127
+ #
128
+ #
129
+ # Search companies by name.
130
+ #
131
+ # @param params [Hash] Query parameters
132
+ # @param headers [Hash] Additional headers
133
+ # @return [Hash] API response
134
+ def search_companies_by_name(params: {}, headers: {})
135
+ endpoint = '/v2/companies/by-name'
136
+
137
+ get(endpoint, params: params)
138
+ end
139
+
140
+ ##
141
+ #
142
+ #
143
+ # Search companies by prompt.
144
+ #
145
+ # @param params [Hash] Query parameters
146
+ # @param headers [Hash] Additional headers
147
+ # @return [Hash] API response
148
+ def search_companies_by_prompt(params: {}, headers: {})
149
+ endpoint = '/v2/companies/by-prompt'
150
+
151
+ get(endpoint, params: params)
152
+ end
153
+
154
+ ##
155
+ #
156
+ #
157
+ # Get similar companies from one or many domains.
158
+ #
159
+ # @param params [Hash] Query parameters
160
+ # @param headers [Hash] Additional headers
161
+ # @return [Hash] API response
162
+ def search_similar_companies(params: {}, headers: {})
163
+ endpoint = '/v2/companies/similar'
164
+
165
+ get(endpoint, params: params)
166
+ end
167
+
168
+ ##
169
+ #
170
+ #
171
+ # Get the count of companies using a segmentation query.
172
+ #
173
+ # @param params [Hash] Query parameters
174
+ # @param headers [Hash] Additional headers
175
+ # @return [Hash] API response
176
+ def count_companies(params: {}, headers: {})
177
+ endpoint = '/v2/companies/count'
178
+
179
+ get(endpoint, params: params)
180
+ end
181
+
182
+ ##
183
+ #
184
+ #
185
+ # Get the count of companies using a segmentation body.
186
+ #
187
+ # @param data [Hash] Request body data
188
+ # @param headers [Hash] Additional headers
189
+ # @return [Hash] API response
190
+ def count_companies_post(data: {}, headers: {})
191
+ endpoint = '/v2/companies/count'
192
+
193
+ post(endpoint, body: data)
194
+ end
195
+
196
+ ##
197
+ #
198
+ #
199
+ # Get a company data by email.
200
+ #
201
+ # @param params [Hash] Query parameters
202
+ # @param headers [Hash] Additional headers
203
+ # @return [Hash] API response
204
+ def fetch_company_by_email(params: {}, headers: {})
205
+ endpoint = '/v2/companies/by-email'
206
+
207
+ get(endpoint, params: params)
208
+ end
209
+
210
+ ##
211
+ #
212
+ #
213
+ # Get a company data by social media.
214
+ #
215
+ # @param params [Hash] Query parameters
216
+ # @param headers [Hash] Additional headers
217
+ # @return [Hash] API response
218
+ def fetch_company_by_social(params: {}, headers: {})
219
+ endpoint = '/v2/companies/by-social'
220
+
221
+ get(endpoint, params: params)
222
+ end
223
+
224
+ ##
225
+ #
226
+ #
227
+ # Get email patterns for a company by its domain.
228
+ #
229
+ # @param domain [String] Path parameter
230
+ # @param params [Hash] Query parameters
231
+ # @param headers [Hash] Additional headers
232
+ # @return [Hash] API response
233
+ def fetch_company_email_patterns(domain, params: {}, headers: {})
234
+ endpoint = "/v2/companies/#{domain}/email-patterns"
235
+
236
+ get(endpoint, params: params)
237
+ end
238
+
239
+ ##
240
+ #
241
+ #
242
+ # Ask a question about a company by its domain.
243
+ #
244
+ # @param domain [String] Path parameter
245
+ # @param data [Hash] Request body data
246
+ # @param headers [Hash] Additional headers
247
+ # @return [Hash] API response
248
+ def ask_company(domain, data: {}, headers: {})
249
+ endpoint = "/v2/companies/#{domain}/ask"
250
+
251
+ post(endpoint, body: data)
252
+ end
253
+
254
+ ##
255
+ #
256
+ #
257
+ # Get the full context of a company by its domain.
258
+ #
259
+ # @param domain [String] Path parameter
260
+ # @param params [Hash] Query parameters
261
+ # @param headers [Hash] Additional headers
262
+ # @return [Hash] API response
263
+ def fetch_company_context(domain, params: {}, headers: {})
264
+ endpoint = "/v2/companies/#{domain}/context"
265
+
266
+ get(endpoint, params: params)
267
+ end
268
+
269
+ ##
270
+ #
271
+ #
272
+ # Fetch analytics data for search segmentations and lists.
273
+ #
274
+ # @param params [Hash] Query parameters
275
+ # @param headers [Hash] Additional headers
276
+ # @return [Hash] API response
277
+ def fetch_companies_analytics(params: {}, headers: {})
278
+ endpoint = '/v2/companies/analytics'
279
+
280
+ get(endpoint, params: params)
281
+ end
282
+
283
+ ##
284
+ #
285
+ #
286
+ # Export analytics data for search segmentations and lists.
287
+ #
288
+ # @param data [Hash] Request body data
289
+ # @param headers [Hash] Additional headers
290
+ # @return [Hash] API response
291
+ def export_companies_analytics(data: {}, headers: {})
292
+ endpoint = '/v2/companies/analytics/export'
293
+
294
+ post(endpoint, body: data)
295
+ end
296
+
297
+ ##
298
+ #
299
+ #
300
+ # Search industries.
301
+ #
302
+ # @param params [Hash] Query parameters
303
+ # @param headers [Hash] Additional headers
304
+ # @return [Hash] API response
305
+ def search_industries(params: {}, headers: {})
306
+ endpoint = '/v2/industries'
307
+
308
+ get(endpoint, params: params)
309
+ end
310
+
311
+ ##
312
+ #
313
+ #
314
+ # Get similar industries from one or many industries.
315
+ #
316
+ # @param params [Hash] Query parameters
317
+ # @param headers [Hash] Additional headers
318
+ # @return [Hash] API response
319
+ def search_industries_similar(params: {}, headers: {})
320
+ endpoint = '/v2/industries/similar'
321
+
322
+ get(endpoint, params: params)
323
+ end
324
+
325
+ ##
326
+ #
327
+ #
328
+ # Search technologies.
329
+ #
330
+ # @param params [Hash] Query parameters
331
+ # @param headers [Hash] Additional headers
332
+ # @return [Hash] API response
333
+ def search_technologies(params: {}, headers: {})
334
+ endpoint = '/v2/technologies'
335
+
336
+ get(endpoint, params: params)
337
+ end
338
+
339
+ ##
340
+ #
341
+ #
342
+ # Search cities.
343
+ #
344
+ # @param params [Hash] Query parameters
345
+ # @param headers [Hash] Additional headers
346
+ # @return [Hash] API response
347
+ def search_cities(params: {}, headers: {})
348
+ endpoint = '/v2/locations/cities'
349
+
350
+ get(endpoint, params: params)
351
+ end
352
+
353
+ ##
354
+ #
355
+ #
356
+ # Search counties.
357
+ #
358
+ # @param params [Hash] Query parameters
359
+ # @param headers [Hash] Additional headers
360
+ # @return [Hash] API response
361
+ def search_counties(params: {}, headers: {})
362
+ endpoint = '/v2/locations/counties'
363
+
364
+ get(endpoint, params: params)
365
+ end
366
+
367
+ ##
368
+ #
369
+ #
370
+ # Search countries.
371
+ #
372
+ # @param params [Hash] Query parameters
373
+ # @param headers [Hash] Additional headers
374
+ # @return [Hash] API response
375
+ def search_countries(params: {}, headers: {})
376
+ endpoint = '/v2/locations/countries'
377
+
378
+ get(endpoint, params: params)
379
+ end
380
+
381
+ ##
382
+ #
383
+ #
384
+ # Search states.
385
+ #
386
+ # @param params [Hash] Query parameters
387
+ # @param headers [Hash] Additional headers
388
+ # @return [Hash] API response
389
+ def search_states(params: {}, headers: {})
390
+ endpoint = '/v2/locations/states'
391
+
392
+ get(endpoint, params: params)
393
+ end
394
+
395
+ ##
396
+ #
397
+ #
398
+ # Search continents.
399
+ #
400
+ # @param params [Hash] Query parameters
401
+ # @param headers [Hash] Additional headers
402
+ # @return [Hash] API response
403
+ def search_continents(params: {}, headers: {})
404
+ endpoint = '/v2/locations/continents'
405
+
406
+ get(endpoint, params: params)
407
+ end
408
+
409
+ ##
410
+ #
411
+ #
412
+ # Enrich job titles.
413
+ #
414
+ # @param params [Hash] Query parameters
415
+ # @param headers [Hash] Additional headers
416
+ # @return [Hash] API response
417
+ def enrich_job_titles(params: {}, headers: {})
418
+ endpoint = '/v2/job-titles/enrich'
419
+
420
+ get(endpoint, params: params)
421
+ end
422
+
423
+ ##
424
+ #
425
+ #
426
+ # Get and filter your lists.
427
+ #
428
+ # @param params [Hash] Query parameters
429
+ # @param headers [Hash] Additional headers
430
+ # @return [Hash] API response
431
+ def fetch_lists(params: {}, headers: {})
432
+ endpoint = '/v2/lists'
433
+
434
+ get(endpoint, params: params)
435
+ end
436
+
437
+ ##
438
+ #
439
+ #
440
+ # Create a new list.
441
+ #
442
+ # @param data [Hash] Request body data
443
+ # @param headers [Hash] Additional headers
444
+ # @return [Hash] API response
445
+ def create_list(data: {}, headers: {})
446
+ endpoint = '/v2/lists'
447
+
448
+ post(endpoint, body: data)
449
+ end
450
+
451
+ ##
452
+ #
453
+ #
454
+ # Update a list.
455
+ #
456
+ # @param list_id [String] Path parameter
457
+ # @param data [Hash] Request body data
458
+ # @param headers [Hash] Additional headers
459
+ # @return [Hash] API response
460
+ def update_list(list_id, data: {}, headers: {})
461
+ endpoint = "/v2/lists/#{list_id}"
462
+
463
+ patch(endpoint, body: data)
464
+ end
465
+
466
+ ##
467
+ #
468
+ #
469
+ # Delete a list.
470
+ #
471
+ # @param list_id [String] Path parameter
472
+ # @param params [Hash] Query parameters
473
+ # @param headers [Hash] Additional headers
474
+ # @return [Hash] API response
475
+ def delete_list(list_id, params: {}, headers: {})
476
+ endpoint = "/v2/lists/#{list_id}"
477
+
478
+ delete(endpoint, params: params)
479
+ end
480
+
481
+ ##
482
+ #
483
+ #
484
+ # Get companies in a list with a segmentation query.
485
+ #
486
+ # @param list_id [String] Path parameter
487
+ # @param params [Hash] Query parameters
488
+ # @param headers [Hash] Additional headers
489
+ # @return [Hash] API response
490
+ def fetch_companies_in_list(list_id, params: {}, headers: {})
491
+ endpoint = "/v2/lists/#{list_id}/companies"
492
+
493
+ get(endpoint, params: params)
494
+ end
495
+
496
+ ##
497
+ #
498
+ #
499
+ # Get companies in a list with a segmentation body.
500
+ #
501
+ # @param list_id [String] Path parameter
502
+ # @param data [Hash] Request body data
503
+ # @param headers [Hash] Additional headers
504
+ # @return [Hash] API response
505
+ def fetch_companies_in_list_post(list_id, data: {}, headers: {})
506
+ endpoint = "/v2/lists/#{list_id}/companies"
507
+
508
+ post(endpoint, body: data)
509
+ end
510
+
511
+ ##
512
+ #
513
+ #
514
+ # Get a company in a list.
515
+ #
516
+ # @param list_id [String] Path parameter
517
+ # @param domain [String] Path parameter
518
+ # @param params [Hash] Query parameters
519
+ # @param headers [Hash] Additional headers
520
+ # @return [Hash] API response
521
+ def fetch_company_in_list(list_id, domain, params: {}, headers: {})
522
+ endpoint = "/v2/lists/#{list_id}/companies/#{domain}"
523
+
524
+ get(endpoint, params: params)
525
+ end
526
+
527
+ ##
528
+ #
529
+ #
530
+ # Toggle one or more companies in a list.
531
+ #
532
+ # @param list_id [String] Path parameter
533
+ # @param data [Hash] Request body data
534
+ # @param headers [Hash] Additional headers
535
+ # @return [Hash] API response
536
+ def toggle_companies_in_list(list_id, data: {}, headers: {})
537
+ endpoint = "/v2/lists/#{list_id}/companies/toggle"
538
+
539
+ patch(endpoint, body: data)
540
+ end
541
+
542
+ ##
543
+ #
544
+ #
545
+ # Get team information.
546
+ #
547
+ # @param team_id [String] Path parameter
548
+ # @param params [Hash] Query parameters
549
+ # @param headers [Hash] Additional headers
550
+ # @return [Hash] API response
551
+ def fetch_team(team_id, params: {}, headers: {})
552
+ endpoint = "/v2/teams/#{team_id}"
553
+
554
+ get(endpoint, params: params)
555
+ end
556
+
557
+ ##
558
+ #
559
+ #
560
+ # Update a team.
561
+ #
562
+ # @param team_id [String] Path parameter
563
+ # @param data [Hash] Request body data
564
+ # @param headers [Hash] Additional headers
565
+ # @return [Hash] API response
566
+ def update_team(team_id, data: {}, headers: {})
567
+ endpoint = "/v2/teams/#{team_id}"
568
+
569
+ patch(endpoint, body: data)
570
+ end
571
+
572
+ ##
573
+ #
574
+ #
575
+ # Get current user information.
576
+ #
577
+ # @param params [Hash] Query parameters
578
+ # @param headers [Hash] Additional headers
579
+ # @return [Hash] API response
580
+ def fetch_user(params: {}, headers: {})
581
+ endpoint = '/v2/user'
582
+
583
+ get(endpoint, params: params)
584
+ end
585
+
586
+ ##
587
+ #
588
+ #
589
+ # Fetch prompts history.
590
+ #
591
+ # @param params [Hash] Query parameters
592
+ # @param headers [Hash] Additional headers
593
+ # @return [Hash] API response
594
+ def fetch_prompts(params: {}, headers: {})
595
+ endpoint = '/v2/prompts'
596
+
597
+ get(endpoint, params: params)
598
+ end
599
+
600
+ ##
601
+ #
602
+ #
603
+ # Delete a prompt.
604
+ #
605
+ # @param prompt_id [String] Path parameter
606
+ # @param params [Hash] Query parameters
607
+ # @param headers [Hash] Additional headers
608
+ # @return [Hash] API response
609
+ def delete_prompt(prompt_id, params: {}, headers: {})
610
+ endpoint = "/v2/prompts/#{prompt_id}"
611
+
612
+ delete(endpoint, params: params)
613
+ end
614
+
615
+ ##
616
+ #
617
+ #
618
+ # Query the product prompt.
619
+ #
620
+ # @param data [Hash] Request body data
621
+ # @param headers [Hash] Additional headers
622
+ # @return [Hash] API response
623
+ def product_prompt(data: {}, headers: {})
624
+ endpoint = '/v2/prompts/product'
625
+
626
+ post(endpoint, body: data)
627
+ end
628
+
629
+ ##
630
+ #
631
+ #
632
+ # Convert a query to a segmentation.
633
+ #
634
+ # @param data [Hash] Request body data
635
+ # @param headers [Hash] Additional headers
636
+ # @return [Hash] API response
637
+ def prompt_to_segmentation(data: {}, headers: {})
638
+ endpoint = '/v2/prompts/segmentation'
639
+
640
+ post(endpoint, body: data)
641
+ end
642
+ end
643
+ end
@@ -0,0 +1,28 @@
1
+ module TheCompaniesAPI
2
+ class Error < StandardError
3
+ attr_reader :status, :response_body
4
+
5
+ def initialize(message = nil, status = nil, response_body = nil)
6
+ super(message)
7
+ @status = status
8
+ @response_body = response_body
9
+ end
10
+ end
11
+
12
+ class Error
13
+ # Client errors (4xx)
14
+ class ClientError < Error; end
15
+
16
+ # Server errors (5xx)
17
+ class ServerError < Error; end
18
+
19
+ # Network/connection errors
20
+ class ConnectionError < Error; end
21
+
22
+ # Timeout errors
23
+ class TimeoutError < Error; end
24
+
25
+ # Generic API errors
26
+ class APIError < Error; end
27
+ end
28
+ end