crunchbase4 0.1.1 → 0.1.6

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 (35) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop_todo.yml +5 -0
  3. data/CHANGELOG.md +66 -0
  4. data/Gemfile.lock +1 -1
  5. data/README.md +392 -40
  6. data/crunchbase4.gemspec +2 -2
  7. data/lib/crunchbase.rb +30 -1
  8. data/lib/crunchbase/autocompletes/client.rb +75 -0
  9. data/lib/crunchbase/client.rb +4 -0
  10. data/lib/crunchbase/deleted_entities/client.rb +69 -0
  11. data/lib/crunchbase/entities/client.rb +24 -12
  12. data/lib/crunchbase/models.rb +10 -1
  13. data/lib/crunchbase/models/address.rb +36 -0
  14. data/lib/crunchbase/models/autocomplete_entity.rb +25 -0
  15. data/lib/crunchbase/models/concerns/entity.rb +53 -0
  16. data/lib/crunchbase/models/concerns/mappings.rb +37 -0
  17. data/lib/crunchbase/models/deleted_entity.rb +26 -0
  18. data/lib/crunchbase/models/event_appearance.rb +39 -0
  19. data/lib/crunchbase/models/fund.rb +43 -0
  20. data/lib/crunchbase/models/ipo.rb +48 -0
  21. data/lib/crunchbase/models/job.rb +42 -0
  22. data/lib/crunchbase/models/organization.rb +9 -0
  23. data/lib/crunchbase/models/ownership.rb +39 -0
  24. data/lib/crunchbase/models/principal.rb +112 -0
  25. data/lib/crunchbase/utilities/autocomplete.rb +51 -0
  26. data/lib/crunchbase/utilities/deleted_entities.rb +47 -0
  27. data/lib/crunchbase/utilities/entity_endpoints.rb +58 -24
  28. data/lib/crunchbase/utilities/request.rb +28 -11
  29. data/lib/crunchbase/utilities/response.rb +1 -1
  30. data/lib/crunchbase/utilities/search_endpoints.rb +22 -0
  31. data/lib/crunchbase/utilities/search_query_parameters.rb +64 -0
  32. data/lib/crunchbase/utilities/veriables.rb +335 -0
  33. data/lib/crunchbase/version.rb +1 -1
  34. metadata +23 -7
  35. data/lib/crunchbase/models/entity.rb +0 -32
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 116da8bf7036e9d4dba37ed63c85c7fa7cf44fa11c16f291045db209f4ab81b2
4
- data.tar.gz: cb9d52123e679160e5055c6aeefbcf30be6924499f050105fa723c9412988587
3
+ metadata.gz: cdb7c5623a3de943904cfb33279384f6af90794bd04422502300a1f3a6734fd4
4
+ data.tar.gz: dcdb6527385ea1cf7bfdf9e59b5919ccbba6239673b596b015117eae40e0ee29
5
5
  SHA512:
6
- metadata.gz: a9cb04ffe4ed809a86743d76f2c815616b1d19ee132bf44fe04dc0fcd0d69265871cd4a827083a591630a9514c2f9d07c441a5bc9461ab14c4b3b31f021fc6bf
7
- data.tar.gz: 66a0327303a29efc601bac09788f8cd363bde4aedb0245f56d85d6c39eae02f531e1cbae6bd21db3c01e140e27a5c0f70c6bee069b761364902b69b2d3d194b9
6
+ metadata.gz: 73f00d14346138c7631c09338800ceecd2e67106351401a5c2bd7956ed53bd66d26cbfc95e52409e4e97800112cfabe4ddff3c139cbe48c4021bba0aee8760b2
7
+ data.tar.gz: dd131ff9d6f0ebcf6cf18df11b06d170db839117084bd6a6e995bbdeadffe15dda5a9a0e4b95a89c232a5efbe003c8ba0b748ac5d4e730f7522751024e44c2e1
@@ -35,6 +35,11 @@ Metrics/BlockLength:
35
35
  Max: 200
36
36
  Exclude:
37
37
  - spec/entities/client_spec.rb
38
+ - spec/client_spec.rb
38
39
 
39
40
  Layout/LineLength:
40
41
  Max: 200
42
+
43
+ Metrics/ModuleLength:
44
+ Exclude:
45
+ - lib/crunchbase/utilities/veriables.rb
@@ -0,0 +1,66 @@
1
+ # Change Log
2
+
3
+ ## [0.1.5] - 2020-06-26
4
+
5
+ ### Refactoring
6
+ - Add more query condition support for card query (limit, order, before_id, after_id)
7
+ * Before
8
+ - Get organzation's fund: (`client.organization(entity_id, 'fund')`)
9
+ * After
10
+ - Get organzation's fund: (`client.organization(entity_id, card_id: 'fund')`)
11
+ - Method for uniformly obtaining deleted entities data and support more query condition
12
+ * Get deleted organizations
13
+ - Before: (`client.deleted_organizations`)
14
+ - After : (`client.deleted_entities(collection_ids: 'organizations', limit: 20)`)
15
+ - Method for uniformly obtaining autocompletes entities data and support more query condition
16
+ * Get autocompletes organizations
17
+ - Before: (`client.autocomplete_organizations`)
18
+ - After : (`client.autocomplete('ekohe', collection_ids: 'organizations', limit: 3)`)
19
+
20
+ ## [0.1.4] - 2020-06-12
21
+
22
+ ### Added
23
+ - Implemented APIs to get the cards data of Entity
24
+ - fund: (`client.organization(entity_id, 'fund')`)
25
+ - ownership: (`client.organization(entity_id, 'ownership')`)
26
+ - founders: (`client.organization(entity_id, 'founders')`)
27
+ - investors: (`client.organization(entity_id, 'investors')`)
28
+ - jobs: (`client.organization(entity_id, 'jobs')`)
29
+ - headquarters_address: (`client.organization(entity_id, 'headquarters_address')`)
30
+
31
+ ## [0.1.3] - 2020-06-09
32
+
33
+ ### Added
34
+ - Implemented `deleted_entities` API to allow user get deleted entities by collection_ids
35
+ - Implemented `fetch(entity_id, card_id)` API, allow user get the entity with card_id data
36
+
37
+ ## [0.1.2] - 2020-06-07
38
+
39
+ ### Added
40
+ - Implemented searches APIs to get the recent updates entities on Search
41
+ - organizations
42
+ - people
43
+ - funding rounds
44
+ - Implemented `autocompletes` API to allow user filter entities by keyword
45
+ - organizations
46
+ - people
47
+ - funding rounds
48
+
49
+ ## [0.1.1] - 2020-06-06
50
+
51
+ ### Added
52
+ - Implemented APIs to get acquisition and investment of Entity
53
+ - Implemented APIs to search organizations and funding rounds of Search
54
+
55
+ ### Changed
56
+ - Refactor the API client to support search API
57
+
58
+ ## [0.1.0] - 2020-06-04
59
+
60
+ ### Added
61
+
62
+ - Implemented APIs to get organzation and funding round of Entity
63
+
64
+ ## [0.0.0] - 2020-06-01
65
+
66
+ - Learning the Crunchbase V4 API changes then creating the Gem
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- crunchbase4 (0.1.0)
4
+ crunchbase4 (0.1.5)
5
5
  faraday
6
6
  faraday_curl
7
7
  faraday_middleware
data/README.md CHANGED
@@ -1,9 +1,9 @@
1
1
  # Crunchbase
2
2
 
3
- Crunchbase is a ruby wrapper base on Crunchbase V4 API. It provides easy to get the API data by each endpoint. [CB-v4 doc](https://app.swaggerhub.com/apis/Crunchbase/crunchbase-enterprise_api/1.0.1)
3
+ Crunchbase is a ruby wrapper based on Crunchbase V4 API. it provides easy to get the API data by each endpoint. [CB v4 DOC](https://app.swaggerhub.com/apis/Crunchbase/crunchbase-enterprise_api/1.0.1)
4
4
 
5
5
  [![Gem Version](https://badge.fury.io/rb/crunchbase4.svg)](https://badge.fury.io/rb/crunchbase4)
6
- [![Build Status](https://travis-ci.org/encoreshao/crunchbase4.svg?branch=master)](https://travis-ci.org/encoreshao/crunchbase4)
6
+ [![Build Status](https://travis-ci.org/ekohe/crunchbase4.svg?branch=master)](https://travis-ci.org/ekohe/crunchbase4)
7
7
 
8
8
  ## Installation
9
9
 
@@ -23,34 +23,129 @@ Or install it yourself as:
23
23
 
24
24
  ## Getting Started
25
25
 
26
- ### Configure your API certificate
26
+ #### Configure your certificate for API
27
27
 
28
- ```
28
+ ```ruby
29
29
  require 'crunchbase4'
30
30
 
31
31
  CB_CONFIG = YAML.load(File.read('crunchbase.yml'))
32
- Crunchbase.config do |c|
33
- c.user_key = CB_CONFIG['user_key']
34
- end
35
-
36
- OR
37
-
38
32
  Crunchbase.config.user_key = CB_CONFIG['user_key']
33
+ Crunchbase.config.user_key = false # If you want to know the request information, can set the debug = true
39
34
  ```
40
35
 
41
36
  ## Usage
42
37
 
43
- ### The first step is to build an API client
38
+ #### Class: `Client` for API
44
39
 
45
40
  ```
46
41
  pry(main)> client = Crunchbase::Client.new
47
42
  ```
48
43
 
44
+ #### API request for endpoint we completed
45
+
46
+ - [Entity](https://github.com/ekohe/crunchbase4#entity)
47
+ - Organization
48
+ - fields
49
+ - cards: [raised_investments, participated_funds, child_organizations, participated_investments, investors, parent_organization, raised_funding_rounds, ipos, event_appearances, raised_funds, acquiree_acquisitions, acquirer_acquisitions, parent_ownership, jobs, founders, child_ownerships, participated_funding_rounds, press_references, headquarters_address]
50
+ - Person
51
+ - fields
52
+ - FundingRound
53
+ - fields
54
+ - [Searches](https://github.com/ekohe/crunchbase4#search)
55
+ - [Autocompletes](https://github.com/ekohe/crunchbase4#autocompletes)
56
+ - [Deleted Entities](https://github.com/ekohe/crunchbase4#deleted-entities)
57
+
58
+ ```ruby
59
+ <!-- Examples of organization and single card -->
60
+ response = client.organization('ekohe')
61
+ ipos = client.organization('ekohe', card_id: 'ipos')
62
+ fund = client.organization('ekohe', card_id: 'fund')
63
+ ownership = client.organization('ekohe', card_id: 'ownership')
64
+ founders = client.organization('ekohe', card_id: 'founders')
65
+ investors = client.organization('ekohe', card_id: 'investors')
66
+ jobs = client.organization('ekohe', card_id: 'jobs')
67
+ headquarters_address = client.organization('ekohe', card_id: 'headquarters_address')
68
+ top_2_press_references = client.organization('ekohe', card_id: 'press_references', limit: 2)
69
+
70
+ <!-- Examples to get the funding rounds of the organization through paging -->
71
+ response = client.organization(
72
+ 'facebook', card_id: 'participated_funding_rounds',
73
+ limit: 5,
74
+ order: 'announced_on:desc',
75
+ after_id: '3cdfcecd-5377-439b-acab-cefcf6fe21a5'
76
+ )
77
+
78
+ <!-- Examples of person and single card -->
79
+
80
+ response = client.person('mark-zuckerberg')
81
+ response = client.person('mark-zuckerberg', card_id: 'participated_investments')
82
+ response = client.funding_round('3cdfcecd-5377-439b-acab-cefcf6fe21a5')
83
+ response = client.funding_round('3cdfcecd-5377-439b-acab-cefcf6fe21a5', card_id: 'investors')
84
+ response = client.acquisition('7638eae9-07b7-4fc6-ad20-5d99de3ff928')
85
+ response = client.fund('aeaac12b-df56-7039-40f9-f1992f88e20e')
86
+ response = client.ownership('4506d9ce-85d3-4a8f-89cd-07a225359d55')
87
+
88
+ <!-- Get the JSON response of entity -->
89
+
90
+ response.as_json
91
+
92
+ <!-- Search -->
93
+ client.search_organizations(query_data)
94
+ client.search_people(query_data)
95
+ client.search_funding_rounds(query_data)
96
+ client.recent_updates({
97
+ scope_name: 'organization',
98
+ field_ids: %w[name website permalink],
99
+ date: '2020-05-05',
100
+ limit: 100
101
+ })
102
+
103
+ <!-- Autocompletes -->
104
+ response = client.autocomplete('ekohe')
105
+ response = client.autocomplete('ekohe', collection_ids: 'organizations')
106
+ response = client.autocomplete('ekohe', collection_ids: 'organizations', limit: 3)
107
+ response = client.autocomplete('encore', collection_ids: 'people')
108
+ response = client.autocomplete('facebook', collection_ids: 'funding_rounds')
109
+ response = client.autocomplete('facebook', collection_ids: 'press_references')
110
+
111
+ <!-- Deleted Entities -->
112
+ response = client.deledeted_entities(collection_ids: 'organizations')
113
+ response = client.deledeted_entities(collection_ids: 'people')
114
+ response = client.deledeted_entities(collection_ids: 'funding_rounds')
115
+ ```
116
+
117
+ #### Module: Utils
118
+
119
+ * We return all the original data from CrunchBase without any conversion. So you want to use the converted data, you can use this tool to convert.
120
+
121
+ ```ruby
122
+ pry(main)> Crunchbase::Utils.constants
123
+ => [:QUERY_OPERATORS,
124
+ :COMPANY_TYPES,
125
+ :FACET_IDS,
126
+ :IPO_STATUS,
127
+ :FUNDING_STAGES,
128
+ :FUNDING_TYPES,
129
+ :CURRENCY_ENUM,
130
+ :DATE_PRECISIONS,
131
+ :LAYOUT_IDS,
132
+ :NUM_EMPLOYEES_ENUM,
133
+ :OPERATING_STATUS,
134
+ :PROGRAM_TYPES,
135
+ :REVENUE_RANGES,
136
+ :SCHOOL_METHODS,
137
+ :SCHOOL_TYPES,
138
+ :STATUS,
139
+ :STOCK_EXCHANGE_SYMBOLS]
140
+ pry(main)> Crunchbase::Utils::COMPANY_TYPES
141
+ => {"for_profit"=>"For Profit", "non_profit"=>"Non-profit"}
142
+ ```
143
+
49
144
  ### Entity
50
145
 
51
146
  #### Get the organization data
52
147
 
53
- ```
148
+ ```ruby
54
149
  pry(main)> response = client.organization('ekohe')
55
150
  => #<Crunchbase::Models::Organization:0x00007fbc5cfdf2f8
56
151
  @categories=["Apps", "Artificial Intelligence", "Big Data", "E-Commerce", "Enterprise Software", "FinTech", "iOS", "Retail", "UX Design"],
@@ -68,9 +163,9 @@ pry(main)> response.permalink
68
163
 
69
164
  Or, if you want to use json data, please call `response.as_json` in your project.
70
165
 
71
- #### Get the person data
166
+ ##### Get the person data
72
167
 
73
- ```
168
+ ```ruby
74
169
  pry(main)> response = client.person('mark-zuckerberg')
75
170
  => #<Crunchbase::Models::Person:0x00007ffbf201d178
76
171
  @aliases=["Zuck"],
@@ -89,10 +184,9 @@ pry(main)> response.permalink
89
184
  => "mark-zuckerberg"
90
185
  ```
91
186
 
92
- #### Get the funding round data
187
+ ##### Get the funding round data
93
188
 
94
- ```
95
- => #<Crunchbase::Client:0x00007f8806824c28>
189
+ ```ruby
96
190
  pry(main)> response = client.funding_round('371c20af-8aa9-4bcb-a8da-0694d138f247')
97
191
  => #<Crunchbase::Models::FundingRound:0x00007f8806b55ca8
98
192
  @announced_on="2013-06-30",
@@ -112,10 +206,34 @@ pry(main)> response.name
112
206
  pry(main)> response.uuid
113
207
  => "371c20af-8aa9-4bcb-a8da-0694d138f247"
114
208
  ```
209
+ ##### Get the fund data
115
210
 
116
- #### Get the acquisition data
117
-
211
+ ```ruby
212
+ pry(main)> response = client.fund('aeaac12b-df56-7039-40f9-f1992f88e20e')
213
+ => #<Crunchbase::Models::Fund:0x00007ffa6a5a4080
214
+ @announced_on="2017-04-03",
215
+ @created_at="2017-04-04T04:40:49Z",
216
+ @entity_def_id="fund",
217
+ @image_id="v1491280776/azwvvy68ap2o29ffcnn7.png",
218
+ @investor_identifiers=["Betaworks", "Craig Newmark Philanthropies", "Democracy Fund", "Facebook", "Ford Foundation", "Knight Foundation", "Mozilla", "Tow Foundation"],
219
+ @money_raised=14000000,
220
+ @name="The News Integrity Initiative Fund I",
221
+ @num_investors=8,
222
+ @owner_identifier="The News Integrity Initiative",
223
+ @permalink="the-news-integrity-initiative-raised-the-news-integrity-initiative-fund-i--aeaac12b",
224
+ @short_description="The News Integrity Initiative raises new The News Integrity Initiative Fund I on 2017-04-03",
225
+ @started_on=nil,
226
+ @updated_at="2018-02-12T22:18:54Z",
227
+ @uuid="aeaac12b-df56-7039-40f9-f1992f88e20e">
228
+ pry(main)> response.name
229
+ => "The News Integrity Initiative Fund I"
230
+ pry(main)> response.uuid
231
+ => "aeaac12b-df56-7039-40f9-f1992f88e20e"
118
232
  ```
233
+
234
+ ##### Get the acquisition data
235
+
236
+ ```ruby
119
237
  pry(main)> response = client.acquisition('7638eae9-07b7-4fc6-ad20-5d99de3ff928')
120
238
  => #<Crunchbase::Models::Acquisition:0x00007fa01134da60
121
239
  @acquiree_categories=["Communities", "Internet", "Photo Sharing", "Publishing", "Search Engine", "Social Media"],
@@ -130,9 +248,9 @@ pry(main)> response.acquiree_funding_total
130
248
  => 150949998
131
249
  ```
132
250
 
133
- #### Get the press reference data
251
+ ##### Get the press reference data
134
252
 
135
- ```
253
+ ```ruby
136
254
  pry(main)> response = client.press_reference('0171b30e-9cf8-4ad5-8288-2993e4308e0f')
137
255
  => #<Crunchbase::Models::PressReference:0x00007fce2d33dbc0
138
256
  @activity_entities=["Facebook", "General Atlantic", "KKR", "Reliance Industries", "Vista Equity Partners"],
@@ -149,9 +267,9 @@ pry(main)> response = client.press_reference('0171b30e-9cf8-4ad5-8288-2993e4308e
149
267
  @uuid="0171b30e-9cf8-4ad5-8288-2993e4308e0f">
150
268
  ```
151
269
 
152
- #### Get the investment data
270
+ ##### Get the investment data
153
271
 
154
- ```
272
+ ```ruby
155
273
  pry(main)> response = client.investment('1368da0c-07b0-46ef-9a86-b518367e60d6')
156
274
  => #<Crunchbase::Models::Investment:0x00007f8c15105830
157
275
  @announced_on="2013-06-30",
@@ -173,11 +291,32 @@ pry(main)> response = client.investment('1368da0c-07b0-46ef-9a86-b518367e60d6')
173
291
  @uuid="1368da0c-07b0-46ef-9a86-b518367e60d6">
174
292
  ```
175
293
 
294
+ ##### Get the ownership data
295
+
296
+ ```ruby
297
+ pry(main)> response = client.ownership('4506d9ce-85d3-4a8f-89cd-07a225359d55')
298
+ => #<Crunchbase::Models::Ownership:0x00007fbf2fdb78b0
299
+ @created_at="2015-03-04T20:04:23Z",
300
+ @entity_def_id="ownership",
301
+ @identifier=["4506d9ce-85d3-4a8f-89cd-07a225359d55", "Facebook owns Instagram", "facebook-owns-instagram--4506d9ce"],
302
+ @name="Facebook owns Instagram",
303
+ @ownee_identifier="Instagram",
304
+ @owner_identifier="Facebook",
305
+ @ownership_type="subsidiary",
306
+ @permalink="facebook-owns-instagram--4506d9ce",
307
+ @updated_at="2018-02-13T01:18:10Z",
308
+ @uuid="4506d9ce-85d3-4a8f-89cd-07a225359d55">
309
+ pry(main)> response.name
310
+ => "Facebook owns Instagram"
311
+ pry(main)> response.uuid
312
+ => "4506d9ce-85d3-4a8f-89cd-07a225359d55"
313
+ ```
314
+
176
315
  ### Search
177
316
 
178
317
  * Search query parameters for each endpoint
179
318
 
180
- ```
319
+ ```ruby
181
320
  {
182
321
  "field_ids": [],
183
322
  "query": [],
@@ -186,11 +325,30 @@ pry(main)> response = client.investment('1368da0c-07b0-46ef-9a86-b518367e60d6')
186
325
  }
187
326
  ```
188
327
 
189
- #### Search organizations by query conditions and order
328
+ ##### Get the latest updated entities
329
+
330
+ Allow user using the method `recent_updates(args)` to get recent updates for each endpoint on searches
190
331
 
191
- * Step1: Needs to build the query conditions
332
+ * Example to get recent updated organizations
192
333
 
334
+ ```ruby
335
+ args = {
336
+ scope_name: 'organization', # must
337
+ date: '2020-05-05', # must
338
+ field_ids: %w[name website permalink], # default %[uuid created_at updated_at]
339
+ sort: 'desc' # default `desc`
340
+ before_id: 'uuid' # optional
341
+ after_id: 'uuid' # optional
342
+ }
343
+
344
+ response = client.recent_updates(args)
193
345
  ```
346
+
347
+ ##### Search organizations by query conditions and order
348
+
349
+ * building the query conditions
350
+
351
+ ```ruby
194
352
  query_data = {
195
353
  'field_ids' => %w[
196
354
  name
@@ -234,7 +392,7 @@ query_data = {
234
392
 
235
393
  * Use `client` to send a request and parse response
236
394
 
237
- ```
395
+ ```ruby
238
396
  pry(main)> response = client.search_organizations(query_data)
239
397
  => #<Crunchbase::Searches::Client:0x00007fdfc1ad6eb8
240
398
  @conditions=
@@ -275,28 +433,222 @@ pry(main)> response = client.search_organizations(query_data)
275
433
  @total_count=44871>
276
434
  ```
277
435
 
278
- - Get all entities: `response.entities`
279
- - Get total count: `response.total_count`
280
- - Get entities count: `response.count`
436
+ - Get entities: response.entities
437
+ - Get total count: response.total_count
438
+ - Get entities count: response.count
281
439
 
282
- ## Development
440
+ ##### Search people by query conditions and order
283
441
 
284
- After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
442
+ * building the query conditions
285
443
 
286
- ### Examples of API requests
444
+ ```ruby
445
+ query_data = {
446
+ 'field_ids' => %w[
447
+ first_name
448
+ last_name
449
+ uuid
450
+ permalink
451
+ name
452
+ ],
453
+ 'order' => [
454
+ {
455
+ 'field_id' => 'last_name',
456
+ 'sort' => 'asc',
457
+ 'nulls' => 'last'
458
+ }
459
+ ],
460
+ 'query' => [
461
+ {
462
+ 'type' => 'predicate',
463
+ 'field_id' => 'first_name',
464
+ 'operator_id' => 'contains',
465
+ 'values' => [
466
+ 'Maxime'
467
+ ]
468
+ },
469
+ {
470
+ 'type' => 'predicate',
471
+ 'field_id' => 'last_name',
472
+ 'operator_id' => 'contains',
473
+ 'values' => [
474
+ 'Guilbot'
475
+ ]
476
+ }
477
+ ],
478
+ 'limit' => 5
479
+ }
480
+ ```
481
+
482
+ * Use `client` to send a request and parse response
287
483
 
484
+ ```ruby
485
+ pry(main)> response = client.search_people(query_data)
486
+ => #<Crunchbase::Searches::Client:0x00007f9acca12d18
487
+ @conditions=
488
+ {"field_ids"=>["first_name", "last_name", "uuid", "permalink", "name"],
489
+ "order"=>[{"field_id"=>"last_name", "sort"=>"asc", "nulls"=>"last"}],
490
+ "query"=>
491
+ [{"type"=>"predicate", "field_id"=>"first_name", "operator_id"=>"contains", "values"=>["Maxime"]}, {"type"=>"predicate", "field_id"=>"last_name", "operator_id"=>"contains", "values"=>["Guilbot"]}],
492
+ "limit"=>5},
493
+ @count=1,
494
+ @entities=[#<Crunchbase::Models::Person:0x00007f9acca43418 @first_name="Maxime", @last_name="Guilbot", @name="Maxime Guilbot", @permalink="maxime-guilbot", @uuid="90f4c92e-3479-1f6e-6470-b2ae78805839">],
495
+ @entity_type="person",
496
+ @kclass_name=Crunchbase::Models::Person,
497
+ @total_count=1>
498
+ pry(main)> response.entities
499
+ => [#<Crunchbase::Models::Person:0x00007f9acca43418 @first_name="Maxime", @last_name="Guilbot", @name="Maxime Guilbot", @permalink="maxime-guilbot", @uuid="90f4c92e-3479-1f6e-6470-b2ae78805839">]
500
+ pry(main)> response.total_count
501
+ => 1
288
502
  ```
289
- Crunchbase.config.user_key = 'user_key'
290
- client = Crunchbase::Client.new
291
- response = client.organization('ekohe')
292
- response = client.person('mark-zuckerberg')
293
- response = client.funding_round('371c20af8aa94bcba8da0694d138f247')
294
- response = client.acquisition('7638eae9-07b7-4fc6-ad20-5d99de3ff928')
503
+
504
+ ### Autocompletes
505
+
506
+ ##### Allow users to filter by keyword from these endpoints
507
+
508
+ Search by keyword has been supported in "Organization", "People" and "Fund Round"
509
+
510
+ * Search in an organization by keyword
511
+
512
+ ```ruby
513
+ pry(main)> response = client.autocomplete('ekohe', collection_ids: 'organizations')
514
+ => #<Crunchbase::Autocompletes::Client:0x00007fecb34ce1e8
515
+ @conditions={:query=>"ekohe", :collection_ids=>"organizations"},
516
+ @count=25,
517
+ @entities=
518
+ [#<Crunchbase::Models::AutocompleteEntity:0x00007fecb3976cb8
519
+ @facet_ids=["siftery", "apptopia", "company", "rank", "builtwith", "bombora", "similarweb"],
520
+ @identifier=["9fe491b2-b6a1-5c87-0f4d-226dd0cc97a9", "Ekohe", "ekohe"],
521
+ @permalink="ekohe",
522
+ @short_description="Creating cutting-edge, useful technical solutions to move you forward -- we deliver on the promise of AI.",
523
+ @uuid="9fe491b2-b6a1-5c87-0f4d-226dd0cc97a9">,
524
+ #<Crunchbase::Models::AutocompleteEntity:0x00007fecb3975980
525
+ @facet_ids=["rank", "builtwith", "company", "siftery"],
526
+ @identifier=["4994381c-3f6a-07bc-6ccf-a180cfbfbf60", "Ekohealth", "ekohealth"],
527
+ @permalink="ekohealth",
528
+ @short_description="Ekohealth is an online platform, entitling the patients having Ekohealth card to avail up to 50% discount on medical expense.",
529
+ @uuid="4994381c-3f6a-07bc-6ccf-a180cfbfbf60">,
530
+ #<Crunchbase::Models::AutocompleteEntity:0x00007fecb3974cb0
531
+ @facet_ids=["siftery", "apptopia", "company", "rank", "builtwith", "bombora", "similarweb"],
532
+ @identifier=["d21d2598-6f76-d6b4-458e-579bc9c3a36d", "EcoHealth Alliance", "ecohealth-alliance"],
533
+ @permalink="ecohealth-alliance",
534
+ @short_description="EcoHealth Alliance is a solutions that promote conservation and prevents pandemics.",
535
+ @uuid="d21d2598-6f76-d6b4-458e-579bc9c3a36d">,
536
+ ...]
537
+ pry(main)> response.entities
538
+ pry(main)> response.count
539
+ pry(main)> response.total_count
540
+ ```
541
+
542
+ * Search in an people by keyword
543
+
544
+ ```ruby
545
+ pry(main)> response = client.autocomplete('maxime', collection_ids: 'people')
546
+ => #<Crunchbase::Autocompletes::Client:0x00007fecb474f9c0
547
+ @conditions={:query=>"maxime", :collection_ids=>"people"},
548
+ @count=25,
549
+ @entities=
550
+ [#<Crunchbase::Models::AutocompleteEntity:0x00007fecb477db40
551
+ @facet_ids=["rank"],
552
+ @identifier=["e270e799-052d-60ba-86d4-9c0535556851", "Maxime Leufroy-Murat", "maxime-leufroy-murat"],
553
+ @permalink="maxime-leufroy-murat",
554
+ @short_description="Maxime Leufroy-Murat - CEO @ FG Properties",
555
+ @uuid="e270e799-052d-60ba-86d4-9c0535556851">,
556
+ #<Crunchbase::Models::AutocompleteEntity:0x00007fecb477ce70
557
+ @facet_ids=["rank"],
558
+ @identifier=["0b71cab9-43dc-4f03-9267-4dcbc191ec30", "Maxime Schwab", "maxime-schwab"],
559
+ @permalink="maxime-schwab",
560
+ @short_description="Co-Founder",
561
+ @uuid="0b71cab9-43dc-4f03-9267-4dcbc191ec30">,
562
+ #<Crunchbase::Models::AutocompleteEntity:0x00007fecb477c1f0
563
+ @facet_ids=["rank"],
564
+ @identifier=["527a4a8e-46e4-d808-c7df-b540bd8fedab", "Maxime Lombardini", "maxime-lombardini"],
565
+ @permalink="maxime-lombardini",
566
+ @short_description="Maxime Lombardini is Chief Executive Officer and Member of the board of Iliad since 2007. \r\n\r\nBefore joining Iliad, Maxime Lombardini use to...",
567
+ @uuid="527a4a8e-46e4-d808-c7df-b540bd8fedab">,
568
+ ...]
569
+ pry(main)> response.entities
570
+ pry(main)> response.count
571
+ pry(main)> response.total_count
572
+ ```
573
+
574
+ * Search in an funding rounds by keyword
575
+
576
+ ```ruby
577
+ pry(main)> response = client.autocomplete('facebook', collection_ids: 'funding_rounds')
578
+ => #<Crunchbase::Autocompletes::Client:0x00007fecb4dd66b8
579
+ @conditions={:query=>"facebook", :collection_ids=>"funding_rounds"},
580
+ @count=25,
581
+ @entities=
582
+ [#<Crunchbase::Models::AutocompleteEntity:0x00007fecb4e04950
583
+ @facet_ids=["rank"],
584
+ @identifier=["6fae3958-a001-27c0-fb7e-666266aedd78", "Series B - Facebook", "facebook-series-b--6fae3958"],
585
+ @permalink="facebook-series-b--6fae3958",
586
+ @short_description="Facebook raised $27500000 on 2006-04-01 in Series B",
587
+ @uuid="6fae3958-a001-27c0-fb7e-666266aedd78">,
588
+ #<Crunchbase::Models::AutocompleteEntity:0x00007fecb4e17c30
589
+ @facet_ids=["rank"],
590
+ @identifier=["d950d7a5-79ff-fb93-ca87-13386b0e2feb", "Series A - Facebook", "facebook-series-a--d950d7a5"],
591
+ @permalink="facebook-series-a--d950d7a5",
592
+ @short_description="Facebook raised $12700000 on 2005-05-01 in Series A",
593
+ @uuid="d950d7a5-79ff-fb93-ca87-13386b0e2feb">,
594
+ #<Crunchbase::Models::AutocompleteEntity:0x00007fecb4e16f60
595
+ @facet_ids=["rank"],
596
+ @identifier=["59971bc0-0935-be60-e279-a9db5e787169", "Secondary Market - Facebook", "facebook-secondary-market--59971bc0"],
597
+ @permalink="facebook-secondary-market--59971bc0",
598
+ @short_description="Facebook raised $120000000 on 2010-06-28 in Secondary Market",
599
+ @uuid="59971bc0-0935-be60-e279-a9db5e787169">,
600
+ ...]
601
+ pry(main)> response.entities
602
+ pry(main)> response.count
603
+ pry(main)> response.total_count
604
+ ```
605
+
606
+ ### Deleted Entities
607
+
608
+ * Get deleted entities by collection_ids
609
+
610
+ ```ruby
611
+ pry(main)> response = client.deleted_entities
612
+ => #<Crunchbase::DeletedEntities::Client:0x00007fa9196b6498
613
+ @conditions={:collection_ids=>"organizations"},
614
+ @count=1000,
615
+ @entities=
616
+ [#<Crunchbase::Models::DeletedEntity:0x00007fa9197f9df0 @deleted_at="2020-06-06T11:51:34Z", @entity_def_id="organization", @identifier=[], @uuid="31e5d1dd-3a7d-4c8c-b7dc-4780d391bbc3">,
617
+ #<Crunchbase::Models::DeletedEntity:0x00007fa9197f8fb8 @deleted_at="2020-06-06T10:43:10Z", @entity_def_id="organization", @identifier=[], @uuid="31d2ba51-ef94-4039-a6fc-22e5c1f0ed80">,
618
+ #<Crunchbase::Models::DeletedEntity:0x00007fa9197f86a8 @deleted_at="2020-06-05T18:32:20Z", @entity_def_id="organization", @identifier=[], @uuid="3f105ec3-606c-4779-85c8-29ec78d67d2d">,
619
+ #<Crunchbase::Models::DeletedEntity:0x00007fa91981fd48 @deleted_at="2020-06-05T15:01:59Z", @entity_def_id="organization", @identifier=[], @uuid="e66d053a-86fa-4f5f-9c98-1d4b3ed0778d">,
620
+ #<Crunchbase::Models::DeletedEntity:0x00007fa91981f438 @deleted_at="2020-06-05T13:17:39Z", @entity_def_id="organization", @identifier=[], @uuid="014de711-a0b0-4e29-a8ce-5f8c2696d9af">,
621
+ #<Crunchbase::Models::DeletedEntity:0x00007fa91981eb28 @deleted_at="2020-06-05T13:09:11Z", @entity_def_id="organization", @identifier=[], @uuid="8b3102a2-04cc-4fb2-85cb-b2aa55662291">,
622
+ #<Crunchbase::Models::DeletedEntity:0x00007fa91981e218 @deleted_at="2020-06-05T11:47:50Z", @entity_def_id="organization", @identifier=[], @uuid="62ae4ffc-a999-4c09-8c42-eef26be606aa">,
623
+ #<Crunchbase::Models::DeletedEntity:0x00007fa91981d908 @deleted_at="2020-06-05T11:47:34Z", @entity_def_id="organization", @identifier=[], @uuid="7aa08989-f6ef-427c-96ac-7e1482a7eec1">,
624
+ #<Crunchbase::Models::DeletedEntity:0x00007fa91981cff8 @deleted_at="2020-06-05T11:46:13Z", @entity_def_id="organization", @identifier=[], @uuid="7a6a5e41-d396-437a-9dfb-8539ef554268">,
625
+ #<Crunchbase::Models::DeletedEntity:0x00007fa91981c6e8 @deleted_at="2020-06-05T11:45:21Z", @entity_def_id="organization", @identifier=[], @uuid="10db5120-a638-40eb-b636-e7cca20708e0">,
626
+ #<Crunchbase::Models::DeletedEntity:0x00007fa91982fd88 @deleted_at="2020-06-05T11:45:01Z", @entity_def_id="organization", @identifier=[], @uuid="86c09840-b344-4687-a5ee-e5ea851b0b94">,
627
+ #<Crunchbase::Models::DeletedEntity:0x00007fa91982f478 @deleted_at="2020-06-05T11:44:07Z", @entity_def_id="organization", @identifier=[], @uuid="2ac345e0-f6a0-4352-b66b-3254d4616c87">,
628
+ #<Crunchbase::Models::DeletedEntity:0x00007fa91982eb68 @deleted_at="2020-06-05T11:43:23Z", @entity_def_id="organization", @identifier=[], @uuid="9fa9c806-bc1b-49e6-81f4-719cbfd7928e">,
629
+ ....]
630
+ pry(main)> response.entities
631
+ pry(main)> response.count
632
+ pry(main)> response.total_count
633
+
634
+ # Get deleted people and funding rounds
635
+ pry(main)> response = client.deleted_entities(collection_ids: 'people')
636
+ pry(main)> response = client.deleted_entities(collection_ids: 'funding_rounds')
295
637
  ```
296
638
 
639
+ ## Development
640
+
641
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
642
+
643
+ ## Changelog
644
+
645
+ If you want to know what update, please check the [Changelog](https://github.com/ekohe/crunchbase4/blob/master/CHANGELOG.md).
646
+
297
647
  ## Contributing
298
648
 
299
- Bug reports and pull requests are welcome on GitHub at https://github.com/ekohe/crunchbase4. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/ekohe/crunchbase4/blob/master/CODE_OF_CONDUCT.md).
649
+ Bug reports and pull requests are welcome on GitHub at https://github.com/ekohe/crunchbase4. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected.
650
+
651
+ To see all contributors from https://github.com/ekohe/crunchbase4/graphs/contributors
300
652
 
301
653
  ## License
302
654