angellist_api 1.0.1 → 1.0.2
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.
- data/CHANGELOG.md +15 -0
- data/README.md +11 -6
- data/Rakefile +9 -0
- data/lib/angellist_api.rb +1 -3
- data/lib/angellist_api/api.rb +2 -4
- data/lib/angellist_api/authentication.rb +0 -1
- data/lib/angellist_api/client.rb +9 -1
- data/lib/angellist_api/client/activity_feeds.rb +29 -8
- data/lib/angellist_api/client/follows.rb +105 -63
- data/lib/angellist_api/client/jobs.rb +72 -0
- data/lib/angellist_api/client/reviews.rb +17 -6
- data/lib/angellist_api/client/search.rb +31 -0
- data/lib/angellist_api/client/startup_roles.rb +23 -8
- data/lib/angellist_api/client/startups.rb +49 -13
- data/lib/angellist_api/client/status_updates.rb +45 -24
- data/lib/angellist_api/client/tags.rb +52 -30
- data/lib/angellist_api/client/users.rb +39 -17
- data/lib/angellist_api/configuration.rb +24 -29
- data/lib/angellist_api/connection.rb +27 -29
- data/lib/angellist_api/core_ext/hash.rb +19 -0
- data/lib/angellist_api/error.rb +9 -32
- data/lib/angellist_api/error/bad_gateway.rb +7 -0
- data/lib/angellist_api/error/bad_request.rb +7 -0
- data/lib/angellist_api/error/enhance_your_calm.rb +13 -0
- data/lib/angellist_api/error/forbidden.rb +7 -0
- data/lib/angellist_api/error/internal_server_error.rb +7 -0
- data/lib/angellist_api/error/not_acceptable.rb +7 -0
- data/lib/angellist_api/error/not_found.rb +7 -0
- data/lib/angellist_api/error/service_unavailable.rb +7 -0
- data/lib/angellist_api/error/unauthorized.rb +7 -0
- data/lib/angellist_api/request.rb +11 -18
- data/lib/angellist_api/request/angellist_api_oauth.rb +16 -0
- data/lib/angellist_api/request/gateway.rb +18 -0
- data/lib/angellist_api/request/multipart_with_file.rb +36 -0
- data/lib/angellist_api/response/raise_client_error.rb +51 -0
- data/lib/angellist_api/response/raise_server_error.rb +27 -0
- data/lib/angellist_api/version.rb +1 -1
- data/spec/fixtures/cassettes/activity_feeds.yml +273 -0
- data/spec/fixtures/cassettes/follows.yml +1722 -0
- data/spec/fixtures/cassettes/jobs.yml +2052 -0
- data/spec/fixtures/cassettes/reviews.yml +93 -0
- data/spec/fixtures/cassettes/search.yml +169 -0
- data/spec/fixtures/cassettes/startup_roles.yml +1481 -0
- data/spec/fixtures/cassettes/startups.yml +532 -0
- data/spec/fixtures/cassettes/status_updates.yml +125 -0
- data/spec/fixtures/cassettes/tags.yml +762 -0
- data/spec/fixtures/cassettes/users.yml +275 -0
- data/spec/integration/activity_feeds_spec.rb +29 -0
- data/spec/integration/follows_spec.rb +60 -0
- data/spec/integration/jobs_spec.rb +36 -0
- data/spec/integration/reviews_spec.rb +15 -0
- data/spec/integration/search_spec.rb +27 -0
- data/spec/integration/startup_roles_spec.rb +25 -0
- data/spec/integration/startups_spec.rb +36 -0
- data/spec/integration/status_updates_spec.rb +18 -0
- data/spec/integration/tags_spec.rb +29 -0
- data/spec/integration/users_spec.rb +23 -0
- data/spec/spec_helper.rb +5 -2
- data/spec/support/vcr.rb +12 -0
- data/spec/{lib → unit/lib}/angellist_api/api_spec.rb +13 -15
- data/spec/unit/lib/angellist_api/authentication_spec.rb +49 -0
- data/spec/unit/lib/angellist_api/client/activity_feeds_spec.rb +22 -0
- data/spec/unit/lib/angellist_api/client/follows_spec.rb +82 -0
- data/spec/unit/lib/angellist_api/client/jobs_spec.rb +39 -0
- data/spec/unit/lib/angellist_api/client/reviews_spec.rb +14 -0
- data/spec/unit/lib/angellist_api/client/search_spec.rb +15 -0
- data/spec/unit/lib/angellist_api/client/startup_roles_spec.rb +14 -0
- data/spec/unit/lib/angellist_api/client/startups_spec.rb +40 -0
- data/spec/unit/lib/angellist_api/client/status_updates_spec.rb +30 -0
- data/spec/unit/lib/angellist_api/client/tags_spec.rb +39 -0
- data/spec/unit/lib/angellist_api/client/users_spec.rb +39 -0
- data/spec/{lib → unit/lib}/angellist_api/configuration_spec.rb +12 -11
- data/spec/unit/lib/angellist_api/error_spec.rb +124 -0
- data/spec/unit/lib/angellist_api/request_spec.rb +32 -0
- data/spec/unit/lib/angellist_api_spec.rb +42 -0
- metadata +128 -71
- data/lib/faraday/request/angellist_api_oauth.rb +0 -14
- data/lib/faraday/request/gateway.rb +0 -18
- data/lib/faraday/request/multipart_with_file.rb +0 -36
- data/lib/faraday/request/phoenix.rb +0 -18
- data/lib/faraday/response/raise_http_4xx.rb +0 -45
- data/lib/faraday/response/raise_http_5xx.rb +0 -24
- data/spec/lib/angellist_api/authentication_spec.rb +0 -53
- data/spec/lib/angellist_api/client/activity_feeds_spec.rb +0 -16
- data/spec/lib/angellist_api/client/follows_spec.rb +0 -74
- data/spec/lib/angellist_api/client/reviews_spec.rb +0 -16
- data/spec/lib/angellist_api/client/startup_roles_spec.rb +0 -16
- data/spec/lib/angellist_api/client/startups_spec.rb +0 -23
- data/spec/lib/angellist_api/client/status_updates_spec.rb +0 -32
- data/spec/lib/angellist_api/client/tags_spec.rb +0 -40
- data/spec/lib/angellist_api/client/users_spec.rb +0 -30
- data/spec/lib/angellist_api/error_spec.rb +0 -126
- data/spec/lib/angellist_api/request_spec.rb +0 -51
- data/spec/lib/angellist_api_spec.rb +0 -38
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
---
|
|
2
|
+
http_interactions:
|
|
3
|
+
- request:
|
|
4
|
+
method: get
|
|
5
|
+
uri: https://api.angel.co/1/users/2850?format=json&phoenix=true
|
|
6
|
+
body:
|
|
7
|
+
encoding: US-ASCII
|
|
8
|
+
string: ''
|
|
9
|
+
headers:
|
|
10
|
+
Accept:
|
|
11
|
+
- application/json
|
|
12
|
+
User-Agent:
|
|
13
|
+
- AngellistApi Ruby Gem 1.0.1
|
|
14
|
+
response:
|
|
15
|
+
status:
|
|
16
|
+
code: 200
|
|
17
|
+
message: !!null
|
|
18
|
+
headers:
|
|
19
|
+
server:
|
|
20
|
+
- nginx/1.0.6
|
|
21
|
+
date:
|
|
22
|
+
- Sat, 21 Apr 2012 22:29:44 GMT
|
|
23
|
+
content-type:
|
|
24
|
+
- application/json; charset=utf-8
|
|
25
|
+
transfer-encoding:
|
|
26
|
+
- chunked
|
|
27
|
+
connection:
|
|
28
|
+
- close
|
|
29
|
+
vary:
|
|
30
|
+
- Accept-Encoding, Accept-Encoding
|
|
31
|
+
status:
|
|
32
|
+
- '200'
|
|
33
|
+
x-powered-by:
|
|
34
|
+
- Phusion Passenger (mod_rails/mod_rack) 3.0.9
|
|
35
|
+
x-ratelimit-limit:
|
|
36
|
+
- '1000'
|
|
37
|
+
x-ratelimit-remaining:
|
|
38
|
+
- '987'
|
|
39
|
+
x-thanks:
|
|
40
|
+
- For using AngelList. Rock on.
|
|
41
|
+
x-runtime:
|
|
42
|
+
- '21'
|
|
43
|
+
etag:
|
|
44
|
+
- ! '"0c13384ccaf0ae7c9e1ff289e0070619"'
|
|
45
|
+
cache-control:
|
|
46
|
+
- private, max-age=0, must-revalidate
|
|
47
|
+
body:
|
|
48
|
+
encoding: ASCII-8BIT
|
|
49
|
+
string: ! '{"name":"500 Startups","id":2850,"bio":"Internet seed fund & startup
|
|
50
|
+
accelerator in Silicon Valley. Partners worked at PayPal, Google, AOL, Rackspace,
|
|
51
|
+
YouTube, Mint, Facebook fbFund, Founders Fund.","follower_count":5560,"angellist_url":"http://angel.co/500startups","image":"https://s3.amazonaws.com/photos.angel.co/users/2850-medium?1294804197","blog_url":"http://500.co/blog","online_bio_url":"http://500.co","twitter_url":"http://twitter.com/#!/500","facebook_url":"http://facebook.com/500startups","linkedin_url":"http://www.linkedin.com/company/500-startups","locations":[{"id":1701,"tag_type":"LocationTag","name":"mountain
|
|
52
|
+
view","display_name":"Mountain View","angellist_url":"http://angel.co/mountain-view-1"},{"id":8732,"tag_type":"LocationTag","name":"sao
|
|
53
|
+
paulo","display_name":"Sao Paulo","angellist_url":"http://angel.co/sao-paulo"}],"roles":[{"id":9305,"tag_type":"RoleTag","name":"seed
|
|
54
|
+
funds","display_name":"Seed Fund","angellist_url":"http://angel.co/seed-funds"},{"id":9306,"tag_type":"RoleTag","name":"vc","display_name":"VC","angellist_url":"http://angel.co/vc"}]}'
|
|
55
|
+
http_version: !!null
|
|
56
|
+
recorded_at: Sat, 21 Apr 2012 22:29:44 GMT
|
|
57
|
+
- request:
|
|
58
|
+
method: get
|
|
59
|
+
uri: https://api.angel.co/1/users/2850?format=json
|
|
60
|
+
body:
|
|
61
|
+
encoding: US-ASCII
|
|
62
|
+
string: ''
|
|
63
|
+
headers:
|
|
64
|
+
Accept:
|
|
65
|
+
- application/json
|
|
66
|
+
User-Agent:
|
|
67
|
+
- AngellistApi Ruby Gem 1.0.1
|
|
68
|
+
response:
|
|
69
|
+
status:
|
|
70
|
+
code: 200
|
|
71
|
+
message: !!null
|
|
72
|
+
headers:
|
|
73
|
+
server:
|
|
74
|
+
- nginx/1.0.6
|
|
75
|
+
date:
|
|
76
|
+
- Sat, 21 Apr 2012 23:16:43 GMT
|
|
77
|
+
content-type:
|
|
78
|
+
- application/json; charset=utf-8
|
|
79
|
+
transfer-encoding:
|
|
80
|
+
- chunked
|
|
81
|
+
connection:
|
|
82
|
+
- close
|
|
83
|
+
vary:
|
|
84
|
+
- Accept-Encoding, Accept-Encoding
|
|
85
|
+
status:
|
|
86
|
+
- '200'
|
|
87
|
+
x-powered-by:
|
|
88
|
+
- Phusion Passenger (mod_rails/mod_rack) 3.0.9
|
|
89
|
+
x-ratelimit-limit:
|
|
90
|
+
- '1000'
|
|
91
|
+
x-ratelimit-remaining:
|
|
92
|
+
- '953'
|
|
93
|
+
x-thanks:
|
|
94
|
+
- For using AngelList. Rock on.
|
|
95
|
+
x-runtime:
|
|
96
|
+
- '25'
|
|
97
|
+
etag:
|
|
98
|
+
- ! '"0c13384ccaf0ae7c9e1ff289e0070619"'
|
|
99
|
+
cache-control:
|
|
100
|
+
- private, max-age=0, must-revalidate
|
|
101
|
+
body:
|
|
102
|
+
encoding: ASCII-8BIT
|
|
103
|
+
string: ! '{"name":"500 Startups","id":2850,"bio":"Internet seed fund & startup
|
|
104
|
+
accelerator in Silicon Valley. Partners worked at PayPal, Google, AOL, Rackspace,
|
|
105
|
+
YouTube, Mint, Facebook fbFund, Founders Fund.","follower_count":5560,"angellist_url":"http://angel.co/500startups","image":"https://s3.amazonaws.com/photos.angel.co/users/2850-medium?1294804197","blog_url":"http://500.co/blog","online_bio_url":"http://500.co","twitter_url":"http://twitter.com/#!/500","facebook_url":"http://facebook.com/500startups","linkedin_url":"http://www.linkedin.com/company/500-startups","locations":[{"id":1701,"tag_type":"LocationTag","name":"mountain
|
|
106
|
+
view","display_name":"Mountain View","angellist_url":"http://angel.co/mountain-view-1"},{"id":8732,"tag_type":"LocationTag","name":"sao
|
|
107
|
+
paulo","display_name":"Sao Paulo","angellist_url":"http://angel.co/sao-paulo"}],"roles":[{"id":9305,"tag_type":"RoleTag","name":"seed
|
|
108
|
+
funds","display_name":"Seed Fund","angellist_url":"http://angel.co/seed-funds"},{"id":9306,"tag_type":"RoleTag","name":"vc","display_name":"VC","angellist_url":"http://angel.co/vc"}]}'
|
|
109
|
+
http_version: !!null
|
|
110
|
+
recorded_at: Sat, 21 Apr 2012 23:16:43 GMT
|
|
111
|
+
- request:
|
|
112
|
+
method: get
|
|
113
|
+
uri: https://api.angel.co/1/users/2850
|
|
114
|
+
body:
|
|
115
|
+
encoding: US-ASCII
|
|
116
|
+
string: ''
|
|
117
|
+
headers:
|
|
118
|
+
Accept:
|
|
119
|
+
- application/json
|
|
120
|
+
User-Agent:
|
|
121
|
+
- AngellistApi Ruby Gem 1.0.1
|
|
122
|
+
response:
|
|
123
|
+
status:
|
|
124
|
+
code: 200
|
|
125
|
+
message: !!null
|
|
126
|
+
headers:
|
|
127
|
+
server:
|
|
128
|
+
- nginx/1.0.6
|
|
129
|
+
date:
|
|
130
|
+
- Sun, 22 Apr 2012 00:35:28 GMT
|
|
131
|
+
content-type:
|
|
132
|
+
- application/json; charset=utf-8
|
|
133
|
+
transfer-encoding:
|
|
134
|
+
- chunked
|
|
135
|
+
connection:
|
|
136
|
+
- close
|
|
137
|
+
vary:
|
|
138
|
+
- Accept-Encoding, Accept-Encoding
|
|
139
|
+
status:
|
|
140
|
+
- '200'
|
|
141
|
+
x-powered-by:
|
|
142
|
+
- Phusion Passenger (mod_rails/mod_rack) 3.0.9
|
|
143
|
+
x-ratelimit-limit:
|
|
144
|
+
- '1000'
|
|
145
|
+
x-ratelimit-remaining:
|
|
146
|
+
- '968'
|
|
147
|
+
x-thanks:
|
|
148
|
+
- For using AngelList. Rock on.
|
|
149
|
+
x-runtime:
|
|
150
|
+
- '19'
|
|
151
|
+
etag:
|
|
152
|
+
- ! '"b5d91f38826f5fc779a09c530bea1f02"'
|
|
153
|
+
cache-control:
|
|
154
|
+
- private, max-age=0, must-revalidate
|
|
155
|
+
body:
|
|
156
|
+
encoding: ASCII-8BIT
|
|
157
|
+
string: ! '{"name":"500 Startups","id":2850,"bio":"Internet seed fund & startup
|
|
158
|
+
accelerator in Silicon Valley. Partners worked at PayPal, Google, AOL, Rackspace,
|
|
159
|
+
YouTube, Mint, Facebook fbFund, Founders Fund.","follower_count":5561,"angellist_url":"http://angel.co/500startups","image":"https://s3.amazonaws.com/photos.angel.co/users/2850-medium?1294804197","blog_url":"http://500.co/blog","online_bio_url":"http://500.co","twitter_url":"http://twitter.com/#!/500","facebook_url":"http://facebook.com/500startups","linkedin_url":"http://www.linkedin.com/company/500-startups","locations":[{"id":1701,"tag_type":"LocationTag","name":"mountain
|
|
160
|
+
view","display_name":"Mountain View","angellist_url":"http://angel.co/mountain-view-1"},{"id":8732,"tag_type":"LocationTag","name":"sao
|
|
161
|
+
paulo","display_name":"Sao Paulo","angellist_url":"http://angel.co/sao-paulo"}],"roles":[{"id":9305,"tag_type":"RoleTag","name":"seed
|
|
162
|
+
funds","display_name":"Seed Fund","angellist_url":"http://angel.co/seed-funds"},{"id":9306,"tag_type":"RoleTag","name":"vc","display_name":"VC","angellist_url":"http://angel.co/vc"}]}'
|
|
163
|
+
http_version: !!null
|
|
164
|
+
recorded_at: Sun, 22 Apr 2012 00:35:28 GMT
|
|
165
|
+
- request:
|
|
166
|
+
method: get
|
|
167
|
+
uri: https://api.angel.co/1/users/search?slug=500startups
|
|
168
|
+
body:
|
|
169
|
+
encoding: US-ASCII
|
|
170
|
+
string: ''
|
|
171
|
+
headers:
|
|
172
|
+
Accept:
|
|
173
|
+
- application/json
|
|
174
|
+
User-Agent:
|
|
175
|
+
- AngellistApi Ruby Gem 1.0.1
|
|
176
|
+
response:
|
|
177
|
+
status:
|
|
178
|
+
code: 200
|
|
179
|
+
message: !!null
|
|
180
|
+
headers:
|
|
181
|
+
server:
|
|
182
|
+
- nginx/1.0.6
|
|
183
|
+
date:
|
|
184
|
+
- Sun, 22 Apr 2012 00:35:29 GMT
|
|
185
|
+
content-type:
|
|
186
|
+
- application/json; charset=utf-8
|
|
187
|
+
transfer-encoding:
|
|
188
|
+
- chunked
|
|
189
|
+
connection:
|
|
190
|
+
- close
|
|
191
|
+
vary:
|
|
192
|
+
- Accept-Encoding, Accept-Encoding
|
|
193
|
+
status:
|
|
194
|
+
- '200'
|
|
195
|
+
x-powered-by:
|
|
196
|
+
- Phusion Passenger (mod_rails/mod_rack) 3.0.9
|
|
197
|
+
x-ratelimit-limit:
|
|
198
|
+
- '1000'
|
|
199
|
+
x-ratelimit-remaining:
|
|
200
|
+
- '967'
|
|
201
|
+
x-thanks:
|
|
202
|
+
- For using AngelList. Rock on.
|
|
203
|
+
x-runtime:
|
|
204
|
+
- '23'
|
|
205
|
+
etag:
|
|
206
|
+
- ! '"b5d91f38826f5fc779a09c530bea1f02"'
|
|
207
|
+
cache-control:
|
|
208
|
+
- private, max-age=0, must-revalidate
|
|
209
|
+
body:
|
|
210
|
+
encoding: ASCII-8BIT
|
|
211
|
+
string: ! '{"name":"500 Startups","id":2850,"bio":"Internet seed fund & startup
|
|
212
|
+
accelerator in Silicon Valley. Partners worked at PayPal, Google, AOL, Rackspace,
|
|
213
|
+
YouTube, Mint, Facebook fbFund, Founders Fund.","follower_count":5561,"angellist_url":"http://angel.co/500startups","image":"https://s3.amazonaws.com/photos.angel.co/users/2850-medium?1294804197","blog_url":"http://500.co/blog","online_bio_url":"http://500.co","twitter_url":"http://twitter.com/#!/500","facebook_url":"http://facebook.com/500startups","linkedin_url":"http://www.linkedin.com/company/500-startups","locations":[{"id":1701,"tag_type":"LocationTag","name":"mountain
|
|
214
|
+
view","display_name":"Mountain View","angellist_url":"http://angel.co/mountain-view-1"},{"id":8732,"tag_type":"LocationTag","name":"sao
|
|
215
|
+
paulo","display_name":"Sao Paulo","angellist_url":"http://angel.co/sao-paulo"}],"roles":[{"id":9305,"tag_type":"RoleTag","name":"seed
|
|
216
|
+
funds","display_name":"Seed Fund","angellist_url":"http://angel.co/seed-funds"},{"id":9306,"tag_type":"RoleTag","name":"vc","display_name":"VC","angellist_url":"http://angel.co/vc"}]}'
|
|
217
|
+
http_version: !!null
|
|
218
|
+
recorded_at: Sun, 22 Apr 2012 00:35:30 GMT
|
|
219
|
+
- request:
|
|
220
|
+
method: get
|
|
221
|
+
uri: https://api.angel.co/1/users/batch?ids=15821%2C100303
|
|
222
|
+
body:
|
|
223
|
+
encoding: US-ASCII
|
|
224
|
+
string: ''
|
|
225
|
+
headers:
|
|
226
|
+
Accept:
|
|
227
|
+
- application/json
|
|
228
|
+
User-Agent:
|
|
229
|
+
- AngellistApi Ruby Gem 1.0.1
|
|
230
|
+
response:
|
|
231
|
+
status:
|
|
232
|
+
code: 200
|
|
233
|
+
message: !!null
|
|
234
|
+
headers:
|
|
235
|
+
server:
|
|
236
|
+
- nginx/1.0.6
|
|
237
|
+
date:
|
|
238
|
+
- Sun, 22 Apr 2012 04:01:49 GMT
|
|
239
|
+
content-type:
|
|
240
|
+
- application/json; charset=utf-8
|
|
241
|
+
transfer-encoding:
|
|
242
|
+
- chunked
|
|
243
|
+
connection:
|
|
244
|
+
- close
|
|
245
|
+
vary:
|
|
246
|
+
- Accept-Encoding, Accept-Encoding
|
|
247
|
+
status:
|
|
248
|
+
- '200'
|
|
249
|
+
x-powered-by:
|
|
250
|
+
- Phusion Passenger (mod_rails/mod_rack) 3.0.9
|
|
251
|
+
x-ratelimit-limit:
|
|
252
|
+
- '1000'
|
|
253
|
+
x-ratelimit-remaining:
|
|
254
|
+
- '999'
|
|
255
|
+
x-thanks:
|
|
256
|
+
- For using AngelList. Rock on.
|
|
257
|
+
x-runtime:
|
|
258
|
+
- '113'
|
|
259
|
+
etag:
|
|
260
|
+
- ! '"c7acb0532fee68206b1e469e5718f06f"'
|
|
261
|
+
cache-control:
|
|
262
|
+
- private, max-age=0, must-revalidate
|
|
263
|
+
body:
|
|
264
|
+
encoding: ASCII-8BIT
|
|
265
|
+
string: ! '[{"name":"Tim Chae","id":15821,"bio":"CEO of PostRocket. Two profitable
|
|
266
|
+
startups before age of 18. UI/UX, BD & Hustler. Babson College Tech Entrepreneurship
|
|
267
|
+
and Design UG.","follower_count":308,"angellist_url":"http://angel.co/tchae","image":"https://s3.amazonaws.com/photos.angel.co/users/15821-medium?1327034404","blog_url":"http://www.timchae.com","online_bio_url":"http://www.timchae.com","twitter_url":"http://twitter.com/#!/tchae","facebook_url":"","linkedin_url":"http://www.linkedin.com/in/timchae","locations":[{"id":1620,"tag_type":"LocationTag","name":"boston","display_name":"Boston","angellist_url":"http://angel.co/boston"},{"id":1681,"tag_type":"LocationTag","name":"silicon
|
|
268
|
+
valley","display_name":"Silicon Valley","angellist_url":"http://angel.co/silicon-valley"},{"id":1692,"tag_type":"LocationTag","name":"san
|
|
269
|
+
francisco","display_name":"San Francisco","angellist_url":"http://angel.co/san-francisco"}],"roles":[{"id":14725,"tag_type":"RoleTag","name":"entrepreneur","display_name":"Entrepreneur","angellist_url":"http://angel.co/entrepreneur-1"}]},{"name":"Prathan
|
|
270
|
+
Thananart","id":100303,"bio":"Web developer. I believe computer and the Internet
|
|
271
|
+
hold key solutions to many of our present day problems, from traffic to grassroots
|
|
272
|
+
democracy.","follower_count":7,"angellist_url":"http://angel.co/scomma","image":"https://s3.amazonaws.com/photos.angel.co/users/100303-medium?1330411698","blog_url":null,"online_bio_url":"http://la.byr.in.th","twitter_url":"http://twitter.com/#!/scomma","facebook_url":null,"linkedin_url":null,"locations":[],"roles":[]}]'
|
|
273
|
+
http_version: !!null
|
|
274
|
+
recorded_at: Sun, 22 Apr 2012 04:01:49 GMT
|
|
275
|
+
recorded_with: VCR 2.1.0
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe AngellistApi::Client::ActivityFeeds do
|
|
4
|
+
use_vcr_cassette 'activity_feeds'
|
|
5
|
+
|
|
6
|
+
let(:client) { AngellistApi::Client.new }
|
|
7
|
+
let(:valid_types) do
|
|
8
|
+
%w[Comment Follow Review StartupIntro StartupPublish StartupRole StatusUpdate Update].freeze
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
it 'fetches Activity Feed entries' do
|
|
12
|
+
client.get_feed.should be_an_instance_of Hashie::Mash
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it 'wraps API item types' do
|
|
16
|
+
feed = client.get_feed[:feed]
|
|
17
|
+
feed.each do |activity|
|
|
18
|
+
valid_types.should include activity.item.type
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
it 'gets a single Activity Feed entry' do
|
|
23
|
+
activity = client.feed_item('8fCC3')
|
|
24
|
+
activity.should have_key :item
|
|
25
|
+
activity.should have_key :actor
|
|
26
|
+
activity.should have_key :target
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe AngellistApi::Client::Follows do
|
|
4
|
+
use_vcr_cassette 'follows'
|
|
5
|
+
|
|
6
|
+
let(:client) { AngellistApi::Client.new }
|
|
7
|
+
|
|
8
|
+
it 'gets follows in batch' do
|
|
9
|
+
follows = client.get_follows([4067161, 4067147])
|
|
10
|
+
follows.last.follower.angellist_url.should eq 'http://angel.co/danielle-morrill'
|
|
11
|
+
follows.last.followed.angellist_url.should eq 'http://angel.co/newco'
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
it "gets a user's followers" do
|
|
15
|
+
followers = client.get_user_followers(2850)
|
|
16
|
+
followers.users.should be_an_instance_of Array
|
|
17
|
+
followers.users.first.should be_an_instance_of Hashie::Mash
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
it "gets IDs of a user's followers" do
|
|
21
|
+
followers = client.get_user_follower_ids(2850)
|
|
22
|
+
followers.ids.should be_an_instance_of Array
|
|
23
|
+
followers.ids.first.should be_an_instance_of Fixnum
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
it 'gets users a user is following' do
|
|
27
|
+
following = client.get_user_following(2850)
|
|
28
|
+
following.users.first.should have_key :bio
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
it 'gets startups a user is following' do
|
|
32
|
+
following = client.get_user_following(2850, :type => :startup)
|
|
33
|
+
following.startups.first.should have_key :product_desc
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
it 'gets IDs of users a user is following' do
|
|
37
|
+
followers = client.get_user_following_ids(2850)
|
|
38
|
+
followers.ids.should be_an_instance_of Array
|
|
39
|
+
followers.ids.first.should be_an_instance_of Fixnum
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
it 'gets IDs of startups a user is following' do
|
|
43
|
+
followers = client.get_user_following_ids(2850, :type => :startup)
|
|
44
|
+
followers.ids.should be_an_instance_of Array
|
|
45
|
+
followers.ids.first.should be_an_instance_of Fixnum
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
it "gets a startup's followers" do
|
|
49
|
+
followers = client.get_startup_followers(1124) # 500-startups-fund
|
|
50
|
+
followers.users.should be_an_instance_of Array
|
|
51
|
+
followers.users.first.should be_an_instance_of Hashie::Mash
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
it "gets a startup's follower IDs" do
|
|
55
|
+
followers = client.get_startup_follower_ids(1124)
|
|
56
|
+
followers.ids.should be_an_instance_of Array
|
|
57
|
+
followers.ids.first.should be_an_instance_of Fixnum
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe AngellistApi::Client::Startups do
|
|
4
|
+
use_vcr_cassette 'jobs'
|
|
5
|
+
|
|
6
|
+
let(:client) { AngellistApi::Client.new }
|
|
7
|
+
|
|
8
|
+
it 'gets a listing of jobs' do
|
|
9
|
+
jobs = client.get_jobs
|
|
10
|
+
jobs.first.should have_key :job_type
|
|
11
|
+
jobs.first.should have_key :startup
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
it 'gets information about a job' do
|
|
15
|
+
job = client.get_job(2450)
|
|
16
|
+
job.title.should eq 'Software Engineer'
|
|
17
|
+
job.startup.name.should eq 'Kloudless'
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
it 'gets jobs for a given startup' do
|
|
21
|
+
jobs = client.get_startup_jobs(1124)
|
|
22
|
+
jobs.each { |job| job.startup.id.should eq 1124 }
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
it 'gets jobs for a given LocationTag' do
|
|
26
|
+
# This returns a job where the only LocationTag is Las Vegas. I've
|
|
27
|
+
# contacted AngelList to inquire if this is an API bug, doc fault, or?
|
|
28
|
+
pending 'API bug?'
|
|
29
|
+
|
|
30
|
+
sf = client.get_tag_jobs(1692)
|
|
31
|
+
sf.jobs.each do |job|
|
|
32
|
+
job.tags.select { |tag| tag.id == 1692 }.should_not be_empty
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe AngellistApi::Client::Reviews do
|
|
4
|
+
use_vcr_cassette 'reviews'
|
|
5
|
+
|
|
6
|
+
let(:client) { AngellistApi::Client.new }
|
|
7
|
+
|
|
8
|
+
it 'gets reviews of a user' do
|
|
9
|
+
reviews = client.get_reviews(:user_id => 2850)
|
|
10
|
+
reviews.should have_key :total_positive
|
|
11
|
+
reviews.reviews.should be_an_instance_of Array
|
|
12
|
+
reviews.reviews.first.should have_key :rating
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe AngellistApi::Client::Search do
|
|
4
|
+
use_vcr_cassette 'search'
|
|
5
|
+
|
|
6
|
+
let(:client) { AngellistApi::Client.new }
|
|
7
|
+
let(:valid_types) { %w[User Startup MarketTag LocationTag].freeze }
|
|
8
|
+
|
|
9
|
+
it 'searches with a general query' do
|
|
10
|
+
results = client.search('machine learning')
|
|
11
|
+
results.should be_an Array
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
it 'wraps API item types' do
|
|
15
|
+
results = client.search('machine learning')
|
|
16
|
+
results.each do |result|
|
|
17
|
+
valid_types.should include result.type
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
it 'searches with a scoped query' do
|
|
22
|
+
results = client.search('joshua', :type => 'User')
|
|
23
|
+
results.each { |res| res.type.should eq 'User' }
|
|
24
|
+
results.map { |res| res.name }.should include 'Joshua Slayton'
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|