linkedin2 0.0.16 → 0.0.17

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/.coveralls.yml +2 -0
  3. data/.gitignore +2 -0
  4. data/.rspec +2 -2
  5. data/.travis.yml +1 -1
  6. data/README.md +3 -3
  7. data/Rakefile +1 -1
  8. data/lib/linkedin/api.rb +16 -0
  9. data/lib/linkedin/api/authentication.rb +5 -7
  10. data/lib/linkedin/api/companies.rb +16 -10
  11. data/lib/linkedin/api/invitation.rb +39 -0
  12. data/lib/linkedin/api/messaging.rb +24 -0
  13. data/lib/linkedin/api/network_updates.rb +5 -9
  14. data/lib/linkedin/api/people.rb +18 -0
  15. data/lib/linkedin/client.rb +34 -72
  16. data/lib/linkedin/configuration.rb +26 -11
  17. data/lib/linkedin/credentials.rb +27 -0
  18. data/lib/linkedin/errors.rb +45 -0
  19. data/lib/linkedin/faraday_middleware.rb +6 -4
  20. data/lib/linkedin/faraday_middleware/credentials_request.rb +31 -0
  21. data/lib/linkedin/faraday_middleware/{linkedin_error_response.rb → error_response.rb} +2 -10
  22. data/lib/linkedin/faraday_middleware/format_request.rb +17 -0
  23. data/lib/linkedin/faraday_middleware/user_agent_request.rb +10 -0
  24. data/lib/linkedin/fields.rb +58 -0
  25. data/lib/linkedin/industries.rb +199 -0
  26. data/lib/linkedin/response.rb +19 -0
  27. data/lib/linkedin/version.rb +1 -1
  28. data/lib/linkedin2.rb +11 -19
  29. data/linkedin.gemspec +16 -7
  30. data/spec/api/companies_spec.rb +8 -9
  31. data/spec/api/groups_spec.rb +3 -4
  32. data/spec/api/jobs_spec.rb +2 -3
  33. data/spec/api/network_updates_spec.rb +9 -15
  34. data/spec/api/{profiles_spec.rb → people_spec.rb} +11 -13
  35. data/spec/faraday_middleware/{linkedin_error_response_spec.rb → error_response_spec.rb} +8 -21
  36. data/spec/fixtures/requests/companies.yml +25 -15
  37. data/spec/fixtures/requests/invalid.yml +7 -7
  38. data/spec/fixtures/requests/network_updates.yml +12 -12
  39. data/spec/fixtures/requests/people.yml +380 -0
  40. data/spec/spec_helper.rb +18 -19
  41. data/spec/support/coverage.rb +14 -0
  42. data/spec/support/vcr.rb +9 -0
  43. data/spec/test_app.yml +3 -2
  44. metadata +119 -38
  45. data/lib/linkedin/api/industries.rb +0 -171
  46. data/lib/linkedin/api/permissions.rb +0 -42
  47. data/lib/linkedin/api/profiles.rb +0 -71
  48. data/lib/linkedin/error.rb +0 -29
  49. data/lib/linkedin/faraday_middleware/linkedin_format_request.rb +0 -26
  50. data/lib/linkedin/industry.rb +0 -33
  51. data/spec/fixtures/requests/profiles.yml +0 -201
@@ -1,3 +1,3 @@
1
1
  module LinkedIn
2
- VERSION = '0.0.16'
2
+ VERSION = '0.0.17'
3
3
  end
data/lib/linkedin2.rb CHANGED
@@ -1,42 +1,34 @@
1
- require 'forwardable'
2
- require 'oauth2'
3
1
  require 'active_support'
4
2
  require 'active_support/core_ext'
5
3
  require 'active_support/time'
6
- require 'faraday'
7
4
  require 'faraday_middleware'
8
- require 'yaml'
9
5
  require 'hashie'
6
+ require 'oauth2'
10
7
 
11
8
  require 'linkedin/version'
12
- require 'linkedin/error'
9
+ require 'linkedin/errors'
10
+ require 'linkedin/fields'
11
+
13
12
  require 'linkedin/utils'
14
13
  require 'linkedin/configuration'
15
14
  require 'linkedin/base'
16
15
  require 'linkedin/profile'
17
16
  require 'linkedin/company'
18
- require 'linkedin/industry'
17
+ require 'linkedin/industries'
18
+ require 'linkedin/api'
19
+ require 'linkedin/credentials'
20
+ require 'linkedin/response'
19
21
  require 'linkedin/faraday_middleware'
20
-
21
- require 'linkedin/api/authentication'
22
- require 'linkedin/api/profiles'
23
- require 'linkedin/api/network_updates'
24
- require 'linkedin/api/companies'
25
- require 'linkedin/api/groups'
26
- require 'linkedin/api/industries'
27
- require 'linkedin/api/jobs'
28
- require 'linkedin/api/permissions'
29
-
30
22
  require 'linkedin/client'
31
23
 
32
24
  module LinkedIn
33
- def self.new(options = {}, &block)
34
- Client.new options, &block
25
+ def self.new(config = {}, &block)
26
+ Client.new config, &block
35
27
  end
36
28
 
37
29
  [:r_basicprofile, :r_emailaddress, :r_fullprofile, :r_contactinfo, :r_network, :rw_groups, :rw_nus, :w_messages].each do |field|
38
30
  define_singleton_method field do
39
- API::Permissions.const_get field.to_s.upcase
31
+ Fields.const_get field.to_s.upcase
40
32
  end
41
33
  end
42
34
  end
data/linkedin.gemspec CHANGED
@@ -18,16 +18,25 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ['lib']
20
20
 
21
- spec.add_dependency 'oauth2', '~> 0.9'
22
- spec.add_dependency 'hashie', '> 2.1.1'
21
+ spec.add_dependency 'oauth2', '~> 1.0'
22
+ spec.add_dependency 'hashie', '~> 3.3.1'
23
23
  spec.add_dependency 'activesupport', '>= 3.2'
24
24
  spec.add_dependency 'faraday_middleware', '~> 0.9.1'
25
25
 
26
- spec.add_development_dependency 'bundler', '~> 1.3'
27
- spec.add_development_dependency 'rake'
28
- spec.add_development_dependency 'pry'
29
- spec.add_development_dependency 'simplecov'
30
- spec.add_development_dependency 'rspec', '~> 2.14'
26
+ spec.add_development_dependency 'dotenv', '~> 0.11.1'
27
+
28
+ spec.add_development_dependency 'bundler', '~> 1.6'
29
+ spec.add_development_dependency 'rake', '~> 10.0'
30
+
31
+ spec.add_development_dependency 'pry', '~> 0.10.0'
32
+ spec.add_development_dependency 'pry-byebug', '~> 1.3.3'
33
+
34
+ spec.add_development_dependency 'rspec', '~> 3.0.0'
35
+ spec.add_development_dependency 'rspec-collection_matchers', '1.0.0'
36
+ spec.add_development_dependency 'webmock', '~> 1.18.0'
37
+ spec.add_development_dependency 'simplecov', '~> 0.9.0'
38
+ spec.add_development_dependency 'coveralls', '~> 0.7.1'
31
39
  spec.add_development_dependency 'vcr', '~> 2.5'
40
+
32
41
  spec.add_development_dependency 'yard'
33
42
  end
@@ -1,29 +1,27 @@
1
- require 'spec_helper'
2
-
3
1
  describe LinkedIn::API::Companies, vcr: { cassette_name: 'companies' } do
4
2
  subject { LinkedIn::Client.new }
5
3
 
6
4
  describe '#company' do
7
5
  it 'fetches a company profile by id' do
8
- subject.company(selector: 162479)['name'].should eq 'Apple'
6
+ expect(subject.company(162479)['name']).to eq 'Apple'
9
7
  end
10
8
 
11
9
  it 'fetches a company profile by universal name' do
12
- subject.company(selector: 'universal-name=linkedin')['name'].should eq 'LinkedIn'
10
+ expect(subject.company('universal-name=linkedin')['name']).to eq 'LinkedIn'
13
11
  end
14
12
 
15
13
  it 'fetches a company profile by e-mail domain' do
16
14
  companies = subject.company(filter: 'email-domain=apple.com')
17
- companies['values'].first['name'].should eq 'Apple'
15
+ expect(companies['values'].first['name']).to eq 'Apple'
18
16
  end
19
17
 
20
18
  it 'fetches companies in bulk using their respective selectors' do
21
- companies = subject.company(selector: [162479, 'universal-name=linkedin'])
22
- companies['values'].collect { |c| c['name'] }.should eq ['Apple', 'LinkedIn']
19
+ companies = subject.company([162479, 'universal-name=linkedin'])
20
+ expect(companies['values'].collect { |c| c['name'] }).to eq ['Apple', 'LinkedIn']
23
21
  end
24
22
 
25
23
  it 'fetches companies that the current user is an adminstrator of' do
26
- subject.company(filter: 'is-company-admin=true')['_total'].should eq 0
24
+ expect(subject.company(filter: 'is-company-admin=true')['_total']).to eq 0
27
25
  end
28
26
  end
29
27
 
@@ -41,6 +39,7 @@ describe LinkedIn::API::Companies, vcr: { cassette_name: 'companies' } do
41
39
 
42
40
  it "should raise AccessDeniedError when LinkedIn returns 403 status code" do
43
41
  pending
42
+ pass
44
43
  end
45
44
  end
46
- end
45
+ end
@@ -1,5 +1,3 @@
1
- require 'spec_helper'
2
-
3
1
  describe LinkedIn::API::Groups do
4
2
  describe '#jobs' do
5
3
  end
@@ -17,9 +15,10 @@ describe LinkedIn::API::Groups do
17
15
  response.body.should == nil
18
16
  response.code.should == "201"
19
17
  end
20
-
18
+
21
19
  it "should raise AccessDeniedError when LinkedIn returns 403 status code" do
22
20
  pending
21
+ pass
23
22
  end
24
23
  end
25
- end
24
+ end
@@ -1,5 +1,3 @@
1
- require 'spec_helper'
2
-
3
1
  describe LinkedIn::API::Jobs do
4
2
  describe '#jobs' do
5
3
  end
@@ -29,6 +27,7 @@ describe LinkedIn::API::Jobs do
29
27
 
30
28
  it "should raise AccessDeniedError when LinkedIn returns 403 status code" do
31
29
  pending
30
+ pass
32
31
  end
33
32
  end
34
- end
33
+ end
@@ -1,32 +1,26 @@
1
- require 'spec_helper'
2
-
3
- describe LinkedIn::API::Profiles, vcr: { cassette_name: 'network_updates' } do
1
+ describe LinkedIn::API::NetworkUpdates, vcr: { cassette_name: 'network_updates' } do
4
2
  subject { LinkedIn::Client.new }
5
3
 
6
- describe '#network_updates' do
4
+ context '#network_updates' do
7
5
  it 'fetches network updates for the current user' do
8
6
  network_updates = subject.network_updates
9
- network_updates['_total'].should eq 13
10
- network_updates['values'].should have(10).things
7
+ expect(network_updates['_total']).to eq 13
8
+ expect(network_updates['values']).to have(10).things
11
9
  end
12
10
 
13
11
  it 'fetches network updates by key' do
14
- network_updates = subject.network_updates(selector: 'key=PROF-18939563-5794095336964247552-*1')
12
+ network_updates = subject.network_updates(key: 'PROF-18939563-5794095336964247552-*1')
15
13
  network_updates['updatedFields']['values'].should have(1).thing
16
14
  end
17
- end
18
15
 
19
- describe '#network_update_comments' do
20
16
  it 'fetches comments for network updates' do
21
- comments = subject.network_update_comments(selector: 'key=PROF-18939563-5794095336964247552-*1')
17
+ comments = subject.network_updates(key: 'PROF-18939563-5794095336964247552-*1', type: 'update-comments')
22
18
  comments['values'].first['comment'].should eq 'Whaaaat'
23
19
  end
24
- end
25
-
26
- describe '#network_update_likes' do
20
+
27
21
  it 'fetches "likes" for network updates' do
28
- likes = subject.network_update_likes(selector: 'key=PROF-18939563-5794095336964247552-*1')
22
+ likes = subject.network_updates(key: 'PROF-18939563-5794095336964247552-*1', type: 'likes')
29
23
  likes['values'].first['person']['id'].should eq 'cDmdM9cb0H'
30
24
  end
31
25
  end
32
- end
26
+ end
@@ -1,27 +1,25 @@
1
- require 'spec_helper'
2
-
3
- describe LinkedIn::API::Profiles, vcr: { cassette_name: 'profiles' } do
1
+ describe LinkedIn::API::People, vcr: { cassette_name: 'people' } do
4
2
  subject { LinkedIn::Client.new }
5
3
 
6
- describe '#profile' do
4
+ context '#profile' do
7
5
  it 'fetches the profile of the current user' do
8
6
  profile = subject.profile
9
7
 
10
- profile['firstName'].should eq 'Josh'
11
- profile['lastName'].should eq 'Testjordan'
8
+ expect(profile['firstName']).to eq 'Josh'
9
+ expect(profile['lastName']).to eq 'Testjordan'
12
10
  end
13
11
 
14
12
  it 'fetches publicly available profiles' do
15
- profile = subject.profile(selector: 'id=Fy5e5a4mqr')
16
-
17
- profile['firstName'].should eq 'Sir Richard'
18
- profile['lastName'].should eq 'B.'
13
+ profile = subject.profile('id=Fy5e5a4mqr')
14
+
15
+ expect(profile['firstName']).to eq 'Sir Richard'
16
+ expect(profile['lastName']).to eq 'B.'
19
17
  end
20
18
  end
21
19
 
22
- describe '#connections' do
20
+ context '#connections' do
23
21
  it 'fetches the connections of the current user' do
24
- subject.connections['values'].should have(2).things
22
+ expect(subject.connections['values']).to have(2).things
25
23
  end
26
24
  end
27
25
 
@@ -99,7 +97,7 @@ describe LinkedIn::API::Profiles, vcr: { cassette_name: 'profiles' } do
99
97
  end
100
98
  end
101
99
 
102
- describe '#connections' do
100
+ context '#connections' do
103
101
  it 'finds all connections for the current user' do
104
102
  linkedin_keys = %w(id headline firstName lastName industry location pictureUrl siteStandardProfileRequest)
105
103
  connections = subject.connections
@@ -1,14 +1,9 @@
1
- require 'spec_helper'
2
-
3
- describe LinkedIn::FaradayMiddleware::LinkedinErrorResponse, vcr: { cassette_name: 'invalid' } do
1
+ describe LinkedIn::FaradayMiddleware::ErrorResponse, vcr: { cassette_name: 'invalid' } do
4
2
  subject { LinkedIn::Client.new(access_token: nil) }
5
3
 
6
4
  describe '#on_error' do
7
5
  it 'raises an error with the status and body reported by Rack included' do
8
- begin
9
- subject.profile
10
- raise 'Should have encountered an exception'
11
- rescue LinkedIn::Error => error
6
+ expect { subject.profile }.to raise_error do |error|
12
7
  error.status.should eq 401
13
8
  error.body.should eq({
14
9
  'errorCode' => 0,
@@ -21,21 +16,13 @@ describe LinkedIn::FaradayMiddleware::LinkedinErrorResponse, vcr: { cassette_nam
21
16
  end
22
17
 
23
18
  it 'uses the message returned by LinkedIn' do
24
- begin
25
- subject.profile
26
- raise 'Should have encountered an exception'
27
- rescue LinkedIn::Error => err
28
- err.message.should eq 'Empty oauth2_access_token'
29
- end
19
+ expect { subject.profile }.to raise_error { |error| expect(error.message).to eq 'Empty oauth2_access_token' }
30
20
  end
31
21
 
32
22
  it 'includes the Faraday request/response object for further introspection by the consumer' do
33
- begin
34
- subject.profile
35
- raise 'Should have encountered an exception'
36
- rescue LinkedIn::Error => err
37
- err.request.headers['User-Agent'].should eq 'Faraday v0.8.8'
38
- err.response.headers['Server'].should eq 'Apache-Coyote/1.1'
23
+ expect { subject.profile }.to raise_error do |error|
24
+ error.request.headers['User-Agent'].should eq 'LinkedIn2 Gem v0.0.16'
25
+ error.response.headers['server'].should eq 'Apache-Coyote/1.1'
39
26
  end
40
27
  end
41
28
 
@@ -46,8 +33,8 @@ describe LinkedIn::FaradayMiddleware::LinkedinErrorResponse, vcr: { cassette_nam
46
33
  raise 'Should have encountered an exception'
47
34
  rescue LinkedIn::Error => err
48
35
  pending 'we need to discuss camelCase vs snake_case. LinkedIn returns "errorCode"'
49
- err.error_code.should eq
36
+ err.error_code.should eq
50
37
  end
51
38
  end
52
39
  end
53
- end
40
+ end
@@ -2,17 +2,19 @@
2
2
  http_interactions:
3
3
  - request:
4
4
  method: get
5
- uri: https://api.linkedin.com/v1/companies/162479?oauth2_access_token=AQUJwEF40pJUbVxsW_mujQ3QCiXvlTnMFk55SlfVPYRcAPdsn1oE1Hm8Ldlc61o57k96i04ufG81KFdPJIOSJswXsGyZ0tk9IMZea8sfNXMGMnZgikQJUQPkmRVYVw9BP1qH9tp7hJF32DQtzkBB_NE8xPASPVgXVWbbntChGyYqqDvF1p8&format=json
5
+ uri: https://api.linkedin.com/v1/companies/162479?oauth2_access_token=AQUJwEF40pJUbVxsW_mujQ3QCiXvlTnMFk55SlfVPYRcAPdsn1oE1Hm8Ldlc61o57k96i04ufG81KFdPJIOSJswXsGyZ0tk9IMZea8sfNXMGMnZgikQJUQPkmRVYVw9BP1qH9tp7hJF32DQtzkBB_NE8xPASPVgXVWbbntChGyYqqDvF1p8
6
6
  body:
7
7
  encoding: US-ASCII
8
8
  string: ''
9
9
  headers:
10
10
  User-Agent:
11
11
  - Faraday v0.8.8
12
+ X-Li-Format:
13
+ - json
12
14
  response:
13
15
  status:
14
16
  code: 200
15
- message:
17
+ message:
16
18
  headers:
17
19
  server:
18
20
  - Apache-Coyote/1.1
@@ -47,21 +49,23 @@ http_interactions:
47
49
  "id": 162479,
48
50
  "name": "Apple"
49
51
  }
50
- http_version:
52
+ http_version:
51
53
  recorded_at: Tue, 15 Oct 2013 03:40:32 GMT
52
54
  - request:
53
55
  method: get
54
- uri: https://api.linkedin.com/v1/companies/universal-name=linkedin?oauth2_access_token=AQUJwEF40pJUbVxsW_mujQ3QCiXvlTnMFk55SlfVPYRcAPdsn1oE1Hm8Ldlc61o57k96i04ufG81KFdPJIOSJswXsGyZ0tk9IMZea8sfNXMGMnZgikQJUQPkmRVYVw9BP1qH9tp7hJF32DQtzkBB_NE8xPASPVgXVWbbntChGyYqqDvF1p8&format=json
56
+ uri: https://api.linkedin.com/v1/companies/universal-name=linkedin?oauth2_access_token=AQUJwEF40pJUbVxsW_mujQ3QCiXvlTnMFk55SlfVPYRcAPdsn1oE1Hm8Ldlc61o57k96i04ufG81KFdPJIOSJswXsGyZ0tk9IMZea8sfNXMGMnZgikQJUQPkmRVYVw9BP1qH9tp7hJF32DQtzkBB_NE8xPASPVgXVWbbntChGyYqqDvF1p8
55
57
  body:
56
58
  encoding: US-ASCII
57
59
  string: ''
58
60
  headers:
59
61
  User-Agent:
60
62
  - Faraday v0.8.8
63
+ X-Li-Format:
64
+ - json
61
65
  response:
62
66
  status:
63
67
  code: 200
64
- message:
68
+ message:
65
69
  headers:
66
70
  server:
67
71
  - Apache-Coyote/1.1
@@ -96,21 +100,23 @@ http_interactions:
96
100
  "id": 1337,
97
101
  "name": "LinkedIn"
98
102
  }
99
- http_version:
103
+ http_version:
100
104
  recorded_at: Tue, 15 Oct 2013 03:40:33 GMT
101
105
  - request:
102
106
  method: get
103
- uri: https://api.linkedin.com/v1/companies/?email-domain=apple.com&oauth2_access_token=AQUJwEF40pJUbVxsW_mujQ3QCiXvlTnMFk55SlfVPYRcAPdsn1oE1Hm8Ldlc61o57k96i04ufG81KFdPJIOSJswXsGyZ0tk9IMZea8sfNXMGMnZgikQJUQPkmRVYVw9BP1qH9tp7hJF32DQtzkBB_NE8xPASPVgXVWbbntChGyYqqDvF1p8&format=json
107
+ uri: https://api.linkedin.com/v1/companies?email-domain=apple.com&oauth2_access_token=AQUJwEF40pJUbVxsW_mujQ3QCiXvlTnMFk55SlfVPYRcAPdsn1oE1Hm8Ldlc61o57k96i04ufG81KFdPJIOSJswXsGyZ0tk9IMZea8sfNXMGMnZgikQJUQPkmRVYVw9BP1qH9tp7hJF32DQtzkBB_NE8xPASPVgXVWbbntChGyYqqDvF1p8
104
108
  body:
105
109
  encoding: US-ASCII
106
110
  string: ''
107
111
  headers:
108
112
  User-Agent:
109
113
  - Faraday v0.8.8
114
+ X-Li-Format:
115
+ - json
110
116
  response:
111
117
  status:
112
118
  code: 200
113
- message:
119
+ message:
114
120
  headers:
115
121
  server:
116
122
  - Apache-Coyote/1.1
@@ -148,21 +154,23 @@ http_interactions:
148
154
  "name": "Apple"
149
155
  }]
150
156
  }
151
- http_version:
157
+ http_version:
152
158
  recorded_at: Tue, 15 Oct 2013 03:40:33 GMT
153
159
  - request:
154
160
  method: get
155
- uri: https://api.linkedin.com/v1/companies::(162479,universal-name=linkedin)?oauth2_access_token=AQUJwEF40pJUbVxsW_mujQ3QCiXvlTnMFk55SlfVPYRcAPdsn1oE1Hm8Ldlc61o57k96i04ufG81KFdPJIOSJswXsGyZ0tk9IMZea8sfNXMGMnZgikQJUQPkmRVYVw9BP1qH9tp7hJF32DQtzkBB_NE8xPASPVgXVWbbntChGyYqqDvF1p8&format=json
161
+ uri: https://api.linkedin.com/v1/companies::(162479,universal-name=linkedin)?oauth2_access_token=AQUJwEF40pJUbVxsW_mujQ3QCiXvlTnMFk55SlfVPYRcAPdsn1oE1Hm8Ldlc61o57k96i04ufG81KFdPJIOSJswXsGyZ0tk9IMZea8sfNXMGMnZgikQJUQPkmRVYVw9BP1qH9tp7hJF32DQtzkBB_NE8xPASPVgXVWbbntChGyYqqDvF1p8
156
162
  body:
157
163
  encoding: US-ASCII
158
164
  string: ''
159
165
  headers:
160
166
  User-Agent:
161
167
  - Faraday v0.8.8
168
+ X-Li-Format:
169
+ - json
162
170
  response:
163
171
  status:
164
172
  code: 200
165
- message:
173
+ message:
166
174
  headers:
167
175
  server:
168
176
  - Apache-Coyote/1.1
@@ -208,21 +216,23 @@ http_interactions:
208
216
  }
209
217
  ]
210
218
  }
211
- http_version:
219
+ http_version:
212
220
  recorded_at: Tue, 15 Oct 2013 03:40:33 GMT
213
221
  - request:
214
222
  method: get
215
- uri: https://api.linkedin.com/v1/companies/?is-company-admin=true&oauth2_access_token=AQUJwEF40pJUbVxsW_mujQ3QCiXvlTnMFk55SlfVPYRcAPdsn1oE1Hm8Ldlc61o57k96i04ufG81KFdPJIOSJswXsGyZ0tk9IMZea8sfNXMGMnZgikQJUQPkmRVYVw9BP1qH9tp7hJF32DQtzkBB_NE8xPASPVgXVWbbntChGyYqqDvF1p8&format=json
223
+ uri: https://api.linkedin.com/v1/companies?is-company-admin=true&oauth2_access_token=AQUJwEF40pJUbVxsW_mujQ3QCiXvlTnMFk55SlfVPYRcAPdsn1oE1Hm8Ldlc61o57k96i04ufG81KFdPJIOSJswXsGyZ0tk9IMZea8sfNXMGMnZgikQJUQPkmRVYVw9BP1qH9tp7hJF32DQtzkBB_NE8xPASPVgXVWbbntChGyYqqDvF1p8
216
224
  body:
217
225
  encoding: US-ASCII
218
226
  string: ''
219
227
  headers:
220
228
  User-Agent:
221
229
  - Faraday v0.8.8
230
+ X-Li-Format:
231
+ - json
222
232
  response:
223
233
  status:
224
234
  code: 200
225
- message:
235
+ message:
226
236
  headers:
227
237
  server:
228
238
  - Apache-Coyote/1.1
@@ -253,6 +263,6 @@ http_interactions:
253
263
  body:
254
264
  encoding: UTF-8
255
265
  string: '{"_total": 0}'
256
- http_version:
266
+ http_version:
257
267
  recorded_at: Tue, 15 Oct 2013 03:40:34 GMT
258
268
  recorded_with: VCR 2.5.0