crunchbase4 0.1.0 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop_todo.yml +11 -1
  3. data/CHANGELOG.md +66 -0
  4. data/Gemfile.lock +4 -1
  5. data/README.md +572 -62
  6. data/crunchbase4.gemspec +7 -6
  7. data/lib/crunchbase.rb +30 -3
  8. data/lib/crunchbase/autocompletes/client.rb +75 -0
  9. data/lib/crunchbase/client.rb +9 -40
  10. data/lib/crunchbase/config.rb +1 -1
  11. data/lib/crunchbase/deleted_entities/client.rb +69 -0
  12. data/lib/crunchbase/entities/client.rb +35 -21
  13. data/lib/crunchbase/models.rb +11 -1
  14. data/lib/crunchbase/models/acquisition.rb +61 -0
  15. data/lib/crunchbase/models/address.rb +36 -0
  16. data/lib/crunchbase/models/autocomplete_entity.rb +25 -0
  17. data/lib/crunchbase/models/concerns/entity.rb +48 -0
  18. data/lib/crunchbase/models/concerns/mappings.rb +37 -0
  19. data/lib/crunchbase/models/deleted_entity.rb +26 -0
  20. data/lib/crunchbase/models/event_appearance.rb +39 -0
  21. data/lib/crunchbase/models/fund.rb +43 -0
  22. data/lib/crunchbase/models/funding_round.rb +1 -1
  23. data/lib/crunchbase/models/ipo.rb +48 -0
  24. data/lib/crunchbase/models/job.rb +42 -0
  25. data/lib/crunchbase/models/ownership.rb +39 -0
  26. data/lib/crunchbase/models/principal.rb +112 -0
  27. data/lib/crunchbase/searches/client.rb +57 -6
  28. data/lib/crunchbase/utilities/autocomplete.rb +51 -0
  29. data/lib/crunchbase/utilities/cb_model.rb +32 -0
  30. data/lib/crunchbase/utilities/deleted_entities.rb +47 -0
  31. data/lib/crunchbase/utilities/entity_endpoints.rb +125 -0
  32. data/lib/crunchbase/utilities/request.rb +47 -8
  33. data/lib/crunchbase/utilities/response.rb +33 -12
  34. data/lib/crunchbase/utilities/search_endpoints.rb +46 -0
  35. data/lib/crunchbase/utilities/search_query_parameters.rb +64 -0
  36. data/lib/crunchbase/utilities/veriables.rb +335 -0
  37. data/lib/crunchbase/version.rb +1 -1
  38. metadata +45 -12
  39. data/lib/crunchbase/models/entity.rb +0 -28
  40. data/lib/crunchbase/searches/organization.rb +0 -52
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4317bd93d0d27af2af5fa3ee7ecfb5bfd2c4c9b37ab8a17d11d5db5730985e26
4
- data.tar.gz: 8b961f21ae443862cd22fd22595c1f69c7519745461eb07a112c628b83d3746a
3
+ metadata.gz: 84f43d773473d40462a4eead8f4548aaa15eb10b2c5dff849b50d07f579fddf5
4
+ data.tar.gz: 7f34006abc99d5106cdf7a261adade5e72d8db7be3d68a1cbd3bccdfb8e1d10b
5
5
  SHA512:
6
- metadata.gz: ad8b0f747d0df8c38d1f4c0f14468c753e4473d9ac581593739a7cf1ae0e0abadd593fc214760efc3e713bfeb70a37096cd5373de5e205e53081a2f2fe8741db
7
- data.tar.gz: ab491bf0ac55c60c649c338d58f1cd83b8ca2aa2af7bb214ef2f782d9a7f2d02831e2c864b782b5febe7ef4ae4de1b8401476bd6c918118ef737869c0764f8a6
6
+ metadata.gz: ab8418cc8cb8739460bb1335092dee1f9110e9453f4ab61bca6430ad0250251db887e5cf95637fb0d1f319030a4b16ad0e188c3c925b9c63ea1aa2fd257da25b
7
+ data.tar.gz: 67c78499a471c58315b1ff8d6c4abd5fe262dda55cfd2d67edf74be77d701a4e777db43cb1b6d38cb7d4cd1e0f6642b93b52f5608ee5df741830103378d5ff3d
@@ -9,7 +9,7 @@
9
9
  # Offense count: 2
10
10
  # Configuration parameters: IgnoredMethods.
11
11
  Metrics/AbcSize:
12
- Max: 17
12
+ Max: 30
13
13
 
14
14
  # Offense count: 1
15
15
  # Configuration parameters: CountComments.
@@ -33,3 +33,13 @@ Metrics/PerceivedComplexity:
33
33
 
34
34
  Metrics/BlockLength:
35
35
  Max: 200
36
+ Exclude:
37
+ - spec/entities/client_spec.rb
38
+ - spec/client_spec.rb
39
+
40
+ Layout/LineLength:
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 organzations
13
+ - Before: (`client.deleted_organzations`)
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 organzations
17
+ - Before: (`client.autocomplete_organzations`)
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
+ - organzations
42
+ - people
43
+ - funding rounds
44
+ - Implemented `autocompletes` API to allow user filter entities by keyword
45
+ - organzations
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 organzations 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,8 +1,9 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- crunchbase4 (0.1.0)
4
+ crunchbase4 (0.1.5)
5
5
  faraday
6
+ faraday_curl
6
7
  faraday_middleware
7
8
 
8
9
  GEM
@@ -17,6 +18,8 @@ GEM
17
18
  diff-lcs (1.3)
18
19
  faraday (1.0.1)
19
20
  multipart-post (>= 1.2, < 3)
21
+ faraday_curl (0.0.2)
22
+ faraday (>= 0.9.0)
20
23
  faraday_middleware (1.0.0)
21
24
  faraday (~> 1.0)
22
25
  hashdiff (1.0.1)
data/README.md CHANGED
@@ -1,10 +1,9 @@
1
1
  # Crunchbase
2
2
 
3
- A Ruby Library for Crunchbase API v4 - [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)
7
- [![Coverage Status](https://coveralls.io/repos/github/encoreshao/crunchbase4/badge.svg)](https://coveralls.io/github/encoreshao/crunchbase4)
6
+ [![Build Status](https://travis-ci.org/ekohe/crunchbase4.svg?branch=master)](https://travis-ci.org/ekohe/crunchbase4)
8
7
 
9
8
  ## Installation
10
9
 
@@ -18,40 +17,133 @@ And then execute:
18
17
 
19
18
  $ bundle install
20
19
 
21
- ## Usage
20
+ Or install it yourself as:
22
21
 
23
- ## Configure your API certificate
22
+ $ gem install crunchbase4
24
23
 
25
- ```
26
- require 'crunchbase4'
24
+ ## Getting Started
27
25
 
28
- CB_CONFIG = YAML.load(File.read('crunchbase.yml'))
29
- Crunchbase.config do |c|
30
- c.user_key = CB_CONFIG['user_key']
31
- end
26
+ #### Configure your certificate for API
32
27
 
33
- OR
28
+ ```ruby
29
+ require 'crunchbase4'
34
30
 
31
+ CB_CONFIG = YAML.load(File.read('crunchbase.yml'))
35
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
36
34
  ```
37
35
 
38
- ## get the organization data
36
+ ## Usage
37
+
38
+ #### Class: `Client` for API
39
39
 
40
40
  ```
41
41
  pry(main)> client = Crunchbase::Client.new
42
+ ```
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
+ <!-- Entity 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
+ response = client.person('mark-zuckerberg')
71
+ response = client.person('mark-zuckerberg', card_id: 'participated_investments')
72
+ response = client.funding_round('371c20af8aa94bcba8da0694d138f247')
73
+ response = client.funding_round('371c20af8aa94bcba8da0694d138f247', card_id: 'investors')
74
+ response = client.acquisition('7638eae9-07b7-4fc6-ad20-5d99de3ff928')
75
+ response = client.fund('aeaac12b-df56-7039-40f9-f1992f88e20e')
76
+ response = client.ownership('4506d9ce-85d3-4a8f-89cd-07a225359d55')
77
+
78
+ <!-- Get the JSON response of Entity -->
79
+
80
+ response.as_json
81
+
82
+ <!-- Search -->
83
+ client.search_organizations(query_data)
84
+ client.search_people(query_data)
85
+ client.search_funding_rounds(query_data)
86
+ client.recent_updates({
87
+ scope_name: 'organization',
88
+ field_ids: %w[name website permalink],
89
+ date: '2020-05-05',
90
+ limit: 100
91
+ })
92
+
93
+ <!-- Autocompletes -->
94
+ response = client.autocomplete('ekohe')
95
+ response = client.autocomplete('ekohe', collection_ids: 'organizations')
96
+ response = client.autocomplete('ekohe', collection_ids: 'organizations', limit: 3)
97
+ response = client.autocomplete('encore', collection_ids: 'people')
98
+ response = client.autocomplete('facebook', collection_ids: 'funding_rounds')
99
+ response = client.autocomplete('facebook', collection_ids: 'press_references')
100
+
101
+ <!-- Deleted Entities -->
102
+ response = client.deledeted_entities(collection_ids: 'organizations')
103
+ response = client.deledeted_entities(collection_ids: 'people')
104
+ response = client.deledeted_entities(collection_ids: 'funding_rounds')
105
+ ```
106
+
107
+ #### Module: Utils
108
+
109
+ * 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.
110
+
111
+ ```ruby
112
+ pry(main)> Crunchbase::Utils.constants
113
+ => [:QUERY_OPERATORS,
114
+ :COMPANY_TYPES,
115
+ :FACET_IDS,
116
+ :IPO_STATUS,
117
+ :FUNDING_STAGES,
118
+ :FUNDING_TYPES,
119
+ :CURRENCY_ENUM,
120
+ :DATE_PRECISIONS,
121
+ :LAYOUT_IDS,
122
+ :NUM_EMPLOYEES_ENUM,
123
+ :OPERATING_STATUS,
124
+ :PROGRAM_TYPES,
125
+ :REVENUE_RANGES,
126
+ :SCHOOL_METHODS,
127
+ :SCHOOL_TYPES,
128
+ :STATUS,
129
+ :STOCK_EXCHANGE_SYMBOLS]
130
+ pry(main)> Crunchbase::Utils::COMPANY_TYPES
131
+ => {"for_profit"=>"For Profit", "non_profit"=>"Non-profit"}
132
+ ```
133
+
134
+ ### Entity
135
+
136
+ #### Get the organization data
137
+
138
+ ```ruby
42
139
  pry(main)> response = client.organization('ekohe')
43
- => #<Crunchbase::Entities::Organization:0x00007fbc5cfdf2f8
44
- @acquirer_identifier=nil,
45
- @aliases=nil,
140
+ => #<Crunchbase::Models::Organization:0x00007fbc5cfdf2f8
46
141
  @categories=["Apps", "Artificial Intelligence", "Big Data", "E-Commerce", "Enterprise Software", "FinTech", "iOS", "Retail", "UX Design"],
47
142
  @category_groups=["Apps", "Artificial Intelligence", "Commerce and Shopping", "Data and Analytics", "Design", "Financial Services", "Mobile", "Platforms", "Science and Engineering", "Software"],
48
- @closed_on=nil,
49
143
  @company_type="for_profit",
50
144
  @contact_email="info@ekohe.com",
51
145
  @created_at="2013-05-14T14:28:38Z",
52
- @delisted_on=nil,
53
- @demo_days=nil,
54
- @description=
146
+ ...
55
147
  ...>
56
148
  pry(main)> response.name
57
149
  => "Ekohe"
@@ -59,28 +151,22 @@ pry(main)> response.permalink
59
151
  => "ekohe"
60
152
  ```
61
153
 
62
- OR if you want to get the json data, please call `response.as_json` in your project.
154
+ Or, if you want to use json data, please call `response.as_json` in your project.
63
155
 
156
+ ##### Get the person data
64
157
 
65
- ## get the person data
66
-
67
- ```
68
- pry(main)> client = Crunchbase::Client.new
158
+ ```ruby
69
159
  pry(main)> response = client.person('mark-zuckerberg')
70
- => #<Crunchbase::Entities::Person:0x00007ffbf201d178
160
+ => #<Crunchbase::Models::Person:0x00007ffbf201d178
71
161
  @aliases=["Zuck"],
72
162
  @born_on="1984-05-14",
73
163
  @created_at="2007-05-26T04:51:46Z",
74
- @description=
75
- "Mark Zuckerberg is the founder and CEO of Facebook, which he started in his college dorm room in 2004 with roomates Dustin Moskovitz and Chris Hughes and from New York.\r\n\r\nZuckerberg is responsible for setting the overall direction and product strategy for the company. He leads the design of Facebook's service and development of its core technology and infrastructure. Mark studied computer science at Harvard University before moving the company to Palo Alto, California.\r\n\r\nEarlier in life, Zuckerberg developed a music recommendation system called Synapse and a peer-to-peer client called Wirehog. However, he abandoned both to pursue new projects.\r\n\r\nZuckerberg attended Harvard University and studied computer science before founding Facebook.\r\n\r\nWhile at Harvard, Zuckerberg created Facemash, a website that compared students' dorm photos side-by-side in a fashion similar to HOT or NOT. Harvard administration was not amused, and Zuckerberg faced subsequent disciplinary action. Less than three months later, he launched Facebook.\r\n\r\nIn September 2010, Zuckerberg donated $100 million to the Newark Public School System to help renovate and revamp the system.\r\n\r\nZuckerberg won the 2007 Crunchie Award for 'Best Startup CEO.' He was the Time Magazine 2010 Person Of The Year. He also won the 2012 Crunchie Award for CEO of the year.",
76
- @died_on=nil,
77
164
  @entity_def_id="person",
78
165
  @entity_id="mark-zuckerberg",
79
166
  @facebook="https://www.facebook.com/zuck",
80
167
  @facet_ids=["investor", "rank"],
81
168
  @first_name="Mark",
82
169
  @gender="male",
83
- @identifier="Mark Zuckerberg",
84
170
  ...>
85
171
  pry(main)> response.name
86
172
  => "Mark Zuckerberg"
@@ -88,52 +174,476 @@ pry(main)> response.permalink
88
174
  => "mark-zuckerberg"
89
175
  ```
90
176
 
91
- OR if you want to get the json data, please call `response.as_json` in your project.
92
-
93
- ```
94
- pry(main)> response.as_json
95
- => {:born_on=>"1984-05-14",
96
- :created_at=>"2007-05-26T04:51:46Z",
97
- :died_on=>nil,
98
- :entity_def_id=>"person",
99
- :facebook=>"https://www.facebook.com/zuck",
100
- :facet_ids=>["investor", "rank"],
101
- :first_name=>"Mark",
102
- :gender=>"male",
103
- :identifier=>"Mark Zuckerberg",
104
- :image_id=>"v1448830269/gzcifut4c2xah95x0ewd.jpg",
105
- :image_url=>"https://res.cloudinary.com/crunchbase-production/image/upload/v1448830269/gzcifut4c2xah95x0ewd.jpg",
106
- :investor_stage=>["seed"],
107
- :investor_type=>["investment_partner", "angel"],
108
- :last_name=>"Zuckerberg",
109
- :layout_id=>"investor",
110
- :linkedin=>nil,
111
- :location_group_identifiers=>["San Francisco Bay Area", "Silicon Valley", "West Coast", "Western US"],
112
- :location_identifiers=>["Palo Alto", "California", "United States", "North America"],
113
- :middle_name=>nil,
114
- :num_articles=>31046,
115
- :num_current_advisor_jobs=>4,
116
- :num_current_jobs=>7,
117
- :num_event_appearances=>6,
118
- :num_exits=>nil,
177
+ ##### Get the funding round data
178
+
179
+ ```ruby
180
+ pry(main)> response = client.funding_round('371c20af-8aa9-4bcb-a8da-0694d138f247')
181
+ => #<Crunchbase::Models::FundingRound:0x00007f8806b55ca8
182
+ @announced_on="2013-06-30",
183
+ @closed_on=nil,
184
+ @created_at="2020-04-02T12:17:59Z",
185
+ @entity_def_id="funding_round",
186
+ @funded_organization_categories=nil,
187
+ @funded_organization_description="Facebook is an online social networking service that enables its users to connect with friends and family.",
188
+ @funded_organization_funding_stage="ipo",
189
+ @funded_organization_funding_total=2335700000,
190
+ @funded_organization_identifier="Facebook",
191
+ @funded_organization_location=["Menlo Park", "California", "United States", "North America"],
192
+ @funded_organization_revenue_range="r_10000000",
119
193
  ....>
194
+ pry(main)> response.name
195
+ => "Secondary Market - Facebook"
196
+ pry(main)> response.uuid
197
+ => "371c20af-8aa9-4bcb-a8da-0694d138f247"
198
+ ```
199
+ ##### Get the fund data
200
+
201
+ ```ruby
202
+ pry(main)> response = client.fund('aeaac12b-df56-7039-40f9-f1992f88e20e')
203
+ => #<Crunchbase::Models::Fund:0x00007ffa6a5a4080
204
+ @announced_on="2017-04-03",
205
+ @created_at="2017-04-04T04:40:49Z",
206
+ @entity_def_id="fund",
207
+ @image_id="v1491280776/azwvvy68ap2o29ffcnn7.png",
208
+ @investor_identifiers=["Betaworks", "Craig Newmark Philanthropies", "Democracy Fund", "Facebook", "Ford Foundation", "Knight Foundation", "Mozilla", "Tow Foundation"],
209
+ @money_raised=14000000,
210
+ @name="The News Integrity Initiative Fund I",
211
+ @num_investors=8,
212
+ @owner_identifier="The News Integrity Initiative",
213
+ @permalink="the-news-integrity-initiative-raised-the-news-integrity-initiative-fund-i--aeaac12b",
214
+ @short_description="The News Integrity Initiative raises new The News Integrity Initiative Fund I on 2017-04-03",
215
+ @started_on=nil,
216
+ @updated_at="2018-02-12T22:18:54Z",
217
+ @uuid="aeaac12b-df56-7039-40f9-f1992f88e20e">
218
+ pry(main)> response.name
219
+ => "The News Integrity Initiative Fund I"
220
+ pry(main)> response.uuid
221
+ => "aeaac12b-df56-7039-40f9-f1992f88e20e"
222
+ ```
223
+
224
+ ##### Get the acquisition data
225
+
226
+ ```ruby
227
+ pry(main)> response = client.acquisition('7638eae9-07b7-4fc6-ad20-5d99de3ff928')
228
+ => #<Crunchbase::Models::Acquisition:0x00007fa01134da60
229
+ @acquiree_categories=["Communities", "Internet", "Photo Sharing", "Publishing", "Search Engine", "Social Media"],
230
+ @acquiree_funding_total=150949998,
231
+ @acquiree_identifier="Giphy",
232
+ @acquiree_last_funding_type="series_d",
233
+ @acquiree_locations=["New York", "New York", "United States", "North America"],
234
+ ...>
235
+ pry(main)> response.uuid
236
+ => "7638eae9-07b7-4fc6-ad20-5d99de3ff928"
237
+ pry(main)> response.acquiree_funding_total
238
+ => 150949998
239
+ ```
240
+
241
+ ##### Get the press reference data
242
+
243
+ ```ruby
244
+ pry(main)> response = client.press_reference('0171b30e-9cf8-4ad5-8288-2993e4308e0f')
245
+ => #<Crunchbase::Models::PressReference:0x00007fce2d33dbc0
246
+ @activity_entities=["Facebook", "General Atlantic", "KKR", "Reliance Industries", "Vista Equity Partners"],
247
+ @author=nil,
248
+ @created_at="2020-06-05T17:41:10Z",
249
+ @entity_def_id="press_reference",
250
+ @identifier="Jio Platforms to receive $1.2b from Abu Dhabi’s sovereign investment firm",
251
+ @posted_on="2020-06-05",
252
+ @publisher="Tech in Asia",
253
+ @thumbnail_url="https://cdn.techinasia.com/wp-content/uploads/2016/07/Flickr_-_World_Economic_Forum_-_Ambani.jpg",
254
+ @title="Jio Platforms to receive $1.2b from Abu Dhabi’s sovereign investment firm",
255
+ @updated_at="2020-06-05T17:41:10Z",
256
+ @url="https://ift.tt/3cByFh1",
257
+ @uuid="0171b30e-9cf8-4ad5-8288-2993e4308e0f">
258
+ ```
259
+
260
+ ##### Get the investment data
261
+
262
+ ```ruby
263
+ pry(main)> response = client.investment('1368da0c-07b0-46ef-9a86-b518367e60d6')
264
+ => #<Crunchbase::Models::Investment:0x00007f8c15105830
265
+ @announced_on="2013-06-30",
266
+ @created_at="2020-04-02T12:17:59Z",
267
+ @entity_def_id="investment",
268
+ @funding_round_identifier="Secondary Market - Facebook",
269
+ @funding_round_money_raised=nil,
270
+ @identifier="Jean-Brice Abrial investment in Secondary Market - Facebook",
271
+ @investor_identifier="Jean-Brice Abrial",
272
+ @investor_stage=["early_stage_venture", "seed"],
273
+ @investor_type=["angel"],
274
+ @is_lead_investor=nil,
275
+ @money_invested=1500000.0,
276
+ @name="Jean-Brice Abrial investment in Secondary Market - Facebook",
277
+ @organization_identifier="Facebook",
278
+ @partner_identifiers=nil,
279
+ @permalink="jean-brice-abrial-invested-in-facebook-secondary-market--371c20af--1368da0c",
280
+ @updated_at="2020-04-02T12:17:59Z",
281
+ @uuid="1368da0c-07b0-46ef-9a86-b518367e60d6">
282
+ ```
283
+
284
+ ##### Get the ownership data
285
+
286
+ ```ruby
287
+ pry(main)> response = client.ownership('4506d9ce-85d3-4a8f-89cd-07a225359d55')
288
+ => #<Crunchbase::Models::Ownership:0x00007fbf2fdb78b0
289
+ @created_at="2015-03-04T20:04:23Z",
290
+ @entity_def_id="ownership",
291
+ @identifier=["4506d9ce-85d3-4a8f-89cd-07a225359d55", "Facebook owns Instagram", "facebook-owns-instagram--4506d9ce"],
292
+ @name="Facebook owns Instagram",
293
+ @ownee_identifier="Instagram",
294
+ @owner_identifier="Facebook",
295
+ @ownership_type="subsidiary",
296
+ @permalink="facebook-owns-instagram--4506d9ce",
297
+ @updated_at="2018-02-13T01:18:10Z",
298
+ @uuid="4506d9ce-85d3-4a8f-89cd-07a225359d55">
299
+ pry(main)> response.name
300
+ => "Facebook owns Instagram"
301
+ pry(main)> response.uuid
302
+ => "4506d9ce-85d3-4a8f-89cd-07a225359d55"
303
+ ```
304
+
305
+ ### Search
306
+
307
+ * Search query parameters for each endpoint
308
+
309
+ ```ruby
310
+ {
311
+ "field_ids": [],
312
+ "query": [],
313
+ "order": [],
314
+ "limit": 0
315
+ }
316
+ ```
317
+
318
+ ##### Get the latest updated entities
319
+
320
+ Allow user using the method `recent_updates(args)` to get recent updates for each endpoint on searches
321
+
322
+ * Example to get recent updated organizations
323
+
324
+ ```ruby
325
+ args = {
326
+ scope_name: 'organization', # must
327
+ date: '2020-05-05', # must
328
+ field_ids: %w[name website permalink], # default %[uuid created_at updated_at]
329
+ sort: 'desc' # default `desc`
330
+ before_id: 'uuid' # optional
331
+ after_id: 'uuid' # optional
332
+ }
333
+
334
+ response = client.recent_updates(args)
335
+ ```
336
+
337
+ ##### Search organizations by query conditions and order
338
+
339
+ * building the query conditions
340
+
341
+ ```ruby
342
+ query_data = {
343
+ 'field_ids' => %w[
344
+ name
345
+ website
346
+ uuid
347
+ short_description
348
+ company_type
349
+ ],
350
+ 'order' => [
351
+ {
352
+ 'field_id' => 'company_type',
353
+ 'sort' => 'asc'
354
+ }
355
+ ],
356
+ 'query' => [
357
+ {
358
+ 'type' => 'predicate',
359
+ 'field_id' => 'funding_total',
360
+ 'operator_id' => 'between',
361
+ 'values' => [
362
+ {
363
+ 'value' => 1_000_000,
364
+ 'currency' => 'usd'
365
+ },
366
+ {
367
+ 'value' => 10_000_000,
368
+ 'currency' => 'usd'
369
+ }
370
+ ]
371
+ },
372
+ {
373
+ 'type' => 'predicate',
374
+ 'field_id' => 'facet_ids',
375
+ 'operator_id' => 'includes',
376
+ 'values' => %w[company investor]
377
+ }
378
+ ],
379
+ 'limit' => 4
380
+ }
381
+ ```
382
+
383
+ * Use `client` to send a request and parse response
384
+
385
+ ```ruby
386
+ pry(main)> response = client.search_organizations(query_data)
387
+ => #<Crunchbase::Searches::Client:0x00007fdfc1ad6eb8
388
+ @conditions=
389
+ {"field_ids"=>["name", "website", "uuid", "short_description", "company_type"],
390
+ "order"=>[{"field_id"=>"company_type", "sort"=>"asc"}],
391
+ "query"=>
392
+ [{"type"=>"predicate", "field_id"=>"funding_total", "operator_id"=>"between", "values"=>[{"value"=>1000000, "currency"=>"usd"}, {"value"=>10000000, "currency"=>"usd"}]},
393
+ {"type"=>"predicate", "field_id"=>"facet_ids", "operator_id"=>"includes", "values"=>["company", "investor"]}],
394
+ "limit"=>4},
395
+ @count=4,
396
+ @entities=
397
+ [#<Crunchbase::Models::Organization:0x00007fdfc1b06460
398
+ @company_type="for_profit",
399
+ @name="360VUZ",
400
+ @short_description="360VUZ is an immersive virtual video mobile app that enables users to teleport from their smartphone in 360°",
401
+ @uuid="cb32a4d7-2bd0-1727-a055-63aa6a545380",
402
+ @website="http://www.360VUZ.com">,
403
+ #<Crunchbase::Models::Organization:0x00007fdfc1b05b78
404
+ @company_type="for_profit",
405
+ @name="HATCHER+",
406
+ @short_description="Hatcher+ is a data-driven venture investment platform.",
407
+ @uuid="a0ed41b8-8031-adad-dbb3-2e8f8e1e6848",
408
+ @website="https://h2.hatcher.com">,
409
+ #<Crunchbase::Models::Organization:0x00007fdfc1b05290
410
+ @company_type="for_profit",
411
+ @name="Merck",
412
+ @short_description="Merck is a biopharmaceutical company that offers medicines and vaccines for various diseases.",
413
+ @uuid="2f9b212a-d3aa-a8c2-6317-516127c8ba88",
414
+ @website="http://www.merck.com">,
415
+ #<Crunchbase::Models::Organization:0x00007fdfc1b049a8
416
+ @company_type="for_profit",
417
+ @name="Archistar.ai",
418
+ @short_description="World-first artificial intelligence helping professionals find development sites, assess for feasibility and generate architectural designs",
419
+ @uuid="3be8b43a-1143-4e26-8ecb-660a5a78edc5",
420
+ @website="https://archistar.ai/">],
421
+ @entity_type="organization",
422
+ @kclass_name=Crunchbase::Models::Organization,
423
+ @total_count=44871>
424
+ ```
425
+
426
+ - Get entities: response.entities
427
+ - Get total count: response.total_count
428
+ - Get entities count: response.count
429
+
430
+ ##### Search people by query conditions and order
431
+
432
+ * building the query conditions
433
+
434
+ ```ruby
435
+ query_data = {
436
+ 'field_ids' => %w[
437
+ first_name
438
+ last_name
439
+ uuid
440
+ permalink
441
+ name
442
+ ],
443
+ 'order' => [
444
+ {
445
+ 'field_id' => 'last_name',
446
+ 'sort' => 'asc',
447
+ 'nulls' => 'last'
448
+ }
449
+ ],
450
+ 'query' => [
451
+ {
452
+ 'type' => 'predicate',
453
+ 'field_id' => 'first_name',
454
+ 'operator_id' => 'contains',
455
+ 'values' => [
456
+ 'Maxime'
457
+ ]
458
+ },
459
+ {
460
+ 'type' => 'predicate',
461
+ 'field_id' => 'last_name',
462
+ 'operator_id' => 'contains',
463
+ 'values' => [
464
+ 'Guilbot'
465
+ ]
466
+ }
467
+ ],
468
+ 'limit' => 5
469
+ }
470
+ ```
471
+
472
+ * Use `client` to send a request and parse response
473
+
474
+ ```ruby
475
+ pry(main)> response = client.search_people(query_data)
476
+ => #<Crunchbase::Searches::Client:0x00007f9acca12d18
477
+ @conditions=
478
+ {"field_ids"=>["first_name", "last_name", "uuid", "permalink", "name"],
479
+ "order"=>[{"field_id"=>"last_name", "sort"=>"asc", "nulls"=>"last"}],
480
+ "query"=>
481
+ [{"type"=>"predicate", "field_id"=>"first_name", "operator_id"=>"contains", "values"=>["Maxime"]}, {"type"=>"predicate", "field_id"=>"last_name", "operator_id"=>"contains", "values"=>["Guilbot"]}],
482
+ "limit"=>5},
483
+ @count=1,
484
+ @entities=[#<Crunchbase::Models::Person:0x00007f9acca43418 @first_name="Maxime", @last_name="Guilbot", @name="Maxime Guilbot", @permalink="maxime-guilbot", @uuid="90f4c92e-3479-1f6e-6470-b2ae78805839">],
485
+ @entity_type="person",
486
+ @kclass_name=Crunchbase::Models::Person,
487
+ @total_count=1>
488
+ pry(main)> response.entities
489
+ => [#<Crunchbase::Models::Person:0x00007f9acca43418 @first_name="Maxime", @last_name="Guilbot", @name="Maxime Guilbot", @permalink="maxime-guilbot", @uuid="90f4c92e-3479-1f6e-6470-b2ae78805839">]
490
+ pry(main)> response.total_count
491
+ => 1
492
+ ```
493
+
494
+ ### Autocompletes
495
+
496
+ ##### Allow users to filter by keyword from these endpoints
497
+
498
+ Search by keyword has been supported in "Organization", "People" and "Fund Round"
499
+
500
+ * Search in an organization by keyword
501
+
502
+ ```ruby
503
+ pry(main)> response = client.autocomplete('ekohe', collection_ids: 'organizations')
504
+ => #<Crunchbase::Autocompletes::Client:0x00007fecb34ce1e8
505
+ @conditions={:query=>"ekohe", :collection_ids=>"organizations"},
506
+ @count=25,
507
+ @entities=
508
+ [#<Crunchbase::Models::AutocompleteEntity:0x00007fecb3976cb8
509
+ @facet_ids=["siftery", "apptopia", "company", "rank", "builtwith", "bombora", "similarweb"],
510
+ @identifier=["9fe491b2-b6a1-5c87-0f4d-226dd0cc97a9", "Ekohe", "ekohe"],
511
+ @permalink="ekohe",
512
+ @short_description="Creating cutting-edge, useful technical solutions to move you forward -- we deliver on the promise of AI.",
513
+ @uuid="9fe491b2-b6a1-5c87-0f4d-226dd0cc97a9">,
514
+ #<Crunchbase::Models::AutocompleteEntity:0x00007fecb3975980
515
+ @facet_ids=["rank", "builtwith", "company", "siftery"],
516
+ @identifier=["4994381c-3f6a-07bc-6ccf-a180cfbfbf60", "Ekohealth", "ekohealth"],
517
+ @permalink="ekohealth",
518
+ @short_description="Ekohealth is an online platform, entitling the patients having Ekohealth card to avail up to 50% discount on medical expense.",
519
+ @uuid="4994381c-3f6a-07bc-6ccf-a180cfbfbf60">,
520
+ #<Crunchbase::Models::AutocompleteEntity:0x00007fecb3974cb0
521
+ @facet_ids=["siftery", "apptopia", "company", "rank", "builtwith", "bombora", "similarweb"],
522
+ @identifier=["d21d2598-6f76-d6b4-458e-579bc9c3a36d", "EcoHealth Alliance", "ecohealth-alliance"],
523
+ @permalink="ecohealth-alliance",
524
+ @short_description="EcoHealth Alliance is a solutions that promote conservation and prevents pandemics.",
525
+ @uuid="d21d2598-6f76-d6b4-458e-579bc9c3a36d">,
526
+ ...]
527
+ pry(main)> response.entities
528
+ pry(main)> response.count
529
+ pry(main)> response.total_count
530
+ ```
531
+
532
+ * Search in an people by keyword
533
+
534
+ ```ruby
535
+ pry(main)> response = client.autocomplete('maxime', collection_ids: 'people')
536
+ => #<Crunchbase::Autocompletes::Client:0x00007fecb474f9c0
537
+ @conditions={:query=>"maxime", :collection_ids=>"people"},
538
+ @count=25,
539
+ @entities=
540
+ [#<Crunchbase::Models::AutocompleteEntity:0x00007fecb477db40
541
+ @facet_ids=["rank"],
542
+ @identifier=["e270e799-052d-60ba-86d4-9c0535556851", "Maxime Leufroy-Murat", "maxime-leufroy-murat"],
543
+ @permalink="maxime-leufroy-murat",
544
+ @short_description="Maxime Leufroy-Murat - CEO @ FG Properties",
545
+ @uuid="e270e799-052d-60ba-86d4-9c0535556851">,
546
+ #<Crunchbase::Models::AutocompleteEntity:0x00007fecb477ce70
547
+ @facet_ids=["rank"],
548
+ @identifier=["0b71cab9-43dc-4f03-9267-4dcbc191ec30", "Maxime Schwab", "maxime-schwab"],
549
+ @permalink="maxime-schwab",
550
+ @short_description="Co-Founder",
551
+ @uuid="0b71cab9-43dc-4f03-9267-4dcbc191ec30">,
552
+ #<Crunchbase::Models::AutocompleteEntity:0x00007fecb477c1f0
553
+ @facet_ids=["rank"],
554
+ @identifier=["527a4a8e-46e4-d808-c7df-b540bd8fedab", "Maxime Lombardini", "maxime-lombardini"],
555
+ @permalink="maxime-lombardini",
556
+ @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...",
557
+ @uuid="527a4a8e-46e4-d808-c7df-b540bd8fedab">,
558
+ ...]
559
+ pry(main)> response.entities
560
+ pry(main)> response.count
561
+ pry(main)> response.total_count
562
+ ```
563
+
564
+ * Search in an funding rounds by keyword
565
+
566
+ ```ruby
567
+ pry(main)> response = client.autocomplete('facebook', collection_ids: 'funding_rounds')
568
+ => #<Crunchbase::Autocompletes::Client:0x00007fecb4dd66b8
569
+ @conditions={:query=>"facebook", :collection_ids=>"funding_rounds"},
570
+ @count=25,
571
+ @entities=
572
+ [#<Crunchbase::Models::AutocompleteEntity:0x00007fecb4e04950
573
+ @facet_ids=["rank"],
574
+ @identifier=["6fae3958-a001-27c0-fb7e-666266aedd78", "Series B - Facebook", "facebook-series-b--6fae3958"],
575
+ @permalink="facebook-series-b--6fae3958",
576
+ @short_description="Facebook raised $27500000 on 2006-04-01 in Series B",
577
+ @uuid="6fae3958-a001-27c0-fb7e-666266aedd78">,
578
+ #<Crunchbase::Models::AutocompleteEntity:0x00007fecb4e17c30
579
+ @facet_ids=["rank"],
580
+ @identifier=["d950d7a5-79ff-fb93-ca87-13386b0e2feb", "Series A - Facebook", "facebook-series-a--d950d7a5"],
581
+ @permalink="facebook-series-a--d950d7a5",
582
+ @short_description="Facebook raised $12700000 on 2005-05-01 in Series A",
583
+ @uuid="d950d7a5-79ff-fb93-ca87-13386b0e2feb">,
584
+ #<Crunchbase::Models::AutocompleteEntity:0x00007fecb4e16f60
585
+ @facet_ids=["rank"],
586
+ @identifier=["59971bc0-0935-be60-e279-a9db5e787169", "Secondary Market - Facebook", "facebook-secondary-market--59971bc0"],
587
+ @permalink="facebook-secondary-market--59971bc0",
588
+ @short_description="Facebook raised $120000000 on 2010-06-28 in Secondary Market",
589
+ @uuid="59971bc0-0935-be60-e279-a9db5e787169">,
590
+ ...]
591
+ pry(main)> response.entities
592
+ pry(main)> response.count
593
+ pry(main)> response.total_count
594
+ ```
595
+
596
+ ### Deleted Entities
597
+
598
+ * Get deleted entities by collection_ids
599
+
600
+ ```ruby
601
+ pry(main)> response = client.deleted_entities
602
+ => #<Crunchbase::DeletedEntities::Client:0x00007fa9196b6498
603
+ @conditions={:collection_ids=>"organizations"},
604
+ @count=1000,
605
+ @entities=
606
+ [#<Crunchbase::Models::DeletedEntity:0x00007fa9197f9df0 @deleted_at="2020-06-06T11:51:34Z", @entity_def_id="organization", @identifier=[], @uuid="31e5d1dd-3a7d-4c8c-b7dc-4780d391bbc3">,
607
+ #<Crunchbase::Models::DeletedEntity:0x00007fa9197f8fb8 @deleted_at="2020-06-06T10:43:10Z", @entity_def_id="organization", @identifier=[], @uuid="31d2ba51-ef94-4039-a6fc-22e5c1f0ed80">,
608
+ #<Crunchbase::Models::DeletedEntity:0x00007fa9197f86a8 @deleted_at="2020-06-05T18:32:20Z", @entity_def_id="organization", @identifier=[], @uuid="3f105ec3-606c-4779-85c8-29ec78d67d2d">,
609
+ #<Crunchbase::Models::DeletedEntity:0x00007fa91981fd48 @deleted_at="2020-06-05T15:01:59Z", @entity_def_id="organization", @identifier=[], @uuid="e66d053a-86fa-4f5f-9c98-1d4b3ed0778d">,
610
+ #<Crunchbase::Models::DeletedEntity:0x00007fa91981f438 @deleted_at="2020-06-05T13:17:39Z", @entity_def_id="organization", @identifier=[], @uuid="014de711-a0b0-4e29-a8ce-5f8c2696d9af">,
611
+ #<Crunchbase::Models::DeletedEntity:0x00007fa91981eb28 @deleted_at="2020-06-05T13:09:11Z", @entity_def_id="organization", @identifier=[], @uuid="8b3102a2-04cc-4fb2-85cb-b2aa55662291">,
612
+ #<Crunchbase::Models::DeletedEntity:0x00007fa91981e218 @deleted_at="2020-06-05T11:47:50Z", @entity_def_id="organization", @identifier=[], @uuid="62ae4ffc-a999-4c09-8c42-eef26be606aa">,
613
+ #<Crunchbase::Models::DeletedEntity:0x00007fa91981d908 @deleted_at="2020-06-05T11:47:34Z", @entity_def_id="organization", @identifier=[], @uuid="7aa08989-f6ef-427c-96ac-7e1482a7eec1">,
614
+ #<Crunchbase::Models::DeletedEntity:0x00007fa91981cff8 @deleted_at="2020-06-05T11:46:13Z", @entity_def_id="organization", @identifier=[], @uuid="7a6a5e41-d396-437a-9dfb-8539ef554268">,
615
+ #<Crunchbase::Models::DeletedEntity:0x00007fa91981c6e8 @deleted_at="2020-06-05T11:45:21Z", @entity_def_id="organization", @identifier=[], @uuid="10db5120-a638-40eb-b636-e7cca20708e0">,
616
+ #<Crunchbase::Models::DeletedEntity:0x00007fa91982fd88 @deleted_at="2020-06-05T11:45:01Z", @entity_def_id="organization", @identifier=[], @uuid="86c09840-b344-4687-a5ee-e5ea851b0b94">,
617
+ #<Crunchbase::Models::DeletedEntity:0x00007fa91982f478 @deleted_at="2020-06-05T11:44:07Z", @entity_def_id="organization", @identifier=[], @uuid="2ac345e0-f6a0-4352-b66b-3254d4616c87">,
618
+ #<Crunchbase::Models::DeletedEntity:0x00007fa91982eb68 @deleted_at="2020-06-05T11:43:23Z", @entity_def_id="organization", @identifier=[], @uuid="9fa9c806-bc1b-49e6-81f4-719cbfd7928e">,
619
+ ....]
620
+ pry(main)> response.entities
621
+ pry(main)> response.count
622
+ pry(main)> response.total_count
623
+
624
+ # Get deleted people and funding rounds
625
+ pry(main)> response = client.deleted_entities(collection_ids: 'people')
626
+ pry(main)> response = client.deleted_entities(collection_ids: 'funding_rounds')
120
627
  ```
121
628
 
122
629
  ## Development
123
630
 
124
631
  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.
125
632
 
126
- To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
633
+ ## Changelog
634
+
635
+ If you want to know what update, please check the [Changelog](https://github.com/ekohe/crunchbase4/blob/master/CHANGELOG.md).
127
636
 
128
637
  ## Contributing
129
638
 
130
- Bug reports and pull requests are welcome on GitHub at https://github.com/encoreshao/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/encoreshao/crunchbase4/blob/master/CODE_OF_CONDUCT.md).
639
+ 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.
131
640
 
641
+ To see all contributors from https://github.com/ekohe/crunchbase4/graphs/contributors
132
642
 
133
643
  ## License
134
644
 
135
- The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
645
+ Crunchbase is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
136
646
 
137
647
  ## Code of Conduct
138
648
 
139
- Everyone interacting in the Crunchbase project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/encoreshao/crunchbase4/blob/master/CODE_OF_CONDUCT.md).
649
+ Everyone interacting in the Crunchbase project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/ekohe/crunchbase4/blob/master/CODE_OF_CONDUCT.md).