restforce 4.2.0 → 5.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.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +9 -9
  3. data/.github/ISSUE_TEMPLATE/unhandled-salesforce-error.md +17 -0
  4. data/.rubocop.yml +4 -3
  5. data/.rubocop_todo.yml +2 -2
  6. data/CHANGELOG.md +42 -0
  7. data/CONTRIBUTING.md +21 -1
  8. data/Dockerfile +31 -0
  9. data/Gemfile +0 -1
  10. data/README.md +43 -19
  11. data/UPGRADING.md +38 -0
  12. data/docker-compose.yml +7 -0
  13. data/lib/restforce.rb +10 -13
  14. data/lib/restforce/collection.rb +7 -2
  15. data/lib/restforce/concerns/api.rb +1 -1
  16. data/lib/restforce/concerns/caching.rb +7 -0
  17. data/lib/restforce/concerns/connection.rb +3 -3
  18. data/lib/restforce/concerns/picklists.rb +1 -1
  19. data/lib/restforce/config.rb +4 -1
  20. data/lib/restforce/error_code.rb +416 -0
  21. data/lib/restforce/file_part.rb +24 -0
  22. data/lib/restforce/mash.rb +8 -3
  23. data/lib/restforce/middleware.rb +2 -0
  24. data/lib/restforce/middleware/authentication.rb +4 -1
  25. data/lib/restforce/middleware/caching.rb +1 -1
  26. data/lib/restforce/middleware/instance_url.rb +1 -1
  27. data/lib/restforce/middleware/logger.rb +3 -2
  28. data/lib/restforce/middleware/raise_error.rb +3 -4
  29. data/lib/restforce/version.rb +1 -1
  30. data/restforce.gemspec +12 -13
  31. data/spec/integration/abstract_client_spec.rb +18 -6
  32. data/spec/spec_helper.rb +14 -1
  33. data/spec/support/fixture_helpers.rb +1 -3
  34. data/spec/unit/collection_spec.rb +18 -0
  35. data/spec/unit/concerns/api_spec.rb +1 -1
  36. data/spec/unit/concerns/caching_spec.rb +26 -0
  37. data/spec/unit/concerns/connection_spec.rb +2 -2
  38. data/spec/unit/error_code_spec.rb +61 -0
  39. data/spec/unit/mash_spec.rb +5 -0
  40. data/spec/unit/middleware/authentication_spec.rb +27 -4
  41. data/spec/unit/middleware/raise_error_spec.rb +19 -10
  42. data/spec/unit/signed_request_spec.rb +1 -1
  43. data/spec/unit/sobject_spec.rb +2 -5
  44. metadata +33 -40
  45. data/lib/restforce/upload_io.rb +0 -9
@@ -18,8 +18,8 @@ describe Restforce::Middleware::RaiseError do
18
18
  'INVALID_FIELD: error_message'
19
19
  end
20
20
 
21
- it 'raises an error that inherits from Faraday::Error::ResourceNotFound' do
22
- expect { on_complete }.to raise_error Faraday::Error::ResourceNotFound
21
+ it 'raises an error that inherits from Faraday::ResourceNotFound' do
22
+ expect { on_complete }.to raise_error Faraday::ResourceNotFound
23
23
  end
24
24
  end
25
25
 
@@ -31,8 +31,8 @@ describe Restforce::Middleware::RaiseError do
31
31
  /300: The external ID provided/
32
32
  end
33
33
 
34
- it 'raises an error that inherits from Faraday::Error::ClientError' do
35
- expect { on_complete }.to raise_error Faraday::Error::ClientError
34
+ it 'raises an error that inherits from Faraday::ClientError' do
35
+ expect { on_complete }.to raise_error Faraday::ClientError
36
36
  end
37
37
  end
38
38
 
@@ -44,8 +44,8 @@ describe Restforce::Middleware::RaiseError do
44
44
  'INVALID_FIELD: error_message'
45
45
  end
46
46
 
47
- it 'raises an error that inherits from Faraday::Error::ClientError' do
48
- expect { on_complete }.to raise_error Faraday::Error::ClientError
47
+ it 'raises an error that inherits from Faraday::ClientError' do
48
+ expect { on_complete }.to raise_error Faraday::ClientError
49
49
  end
50
50
  end
51
51
 
@@ -66,8 +66,8 @@ describe Restforce::Middleware::RaiseError do
66
66
  '413: Request Entity Too Large'
67
67
  end
68
68
 
69
- it 'raises an error that inherits from Faraday::Error::ClientError' do
70
- expect { on_complete }.to raise_error Faraday::Error::ClientError
69
+ it 'raises an error that inherits from Faraday::ClientError' do
70
+ expect { on_complete }.to raise_error Faraday::ClientError
71
71
  end
72
72
  end
73
73
 
@@ -80,10 +80,19 @@ describe Restforce::Middleware::RaiseError do
80
80
  "(error code missing): #{body}"
81
81
  end
82
82
 
83
- it 'raises an error that inherits from Faraday::Error::ClientError' do
84
- expect { on_complete }.to raise_error Faraday::Error::ClientError,
83
+ it 'raises an error that inherits from Faraday::ClientError' do
84
+ expect { on_complete }.to raise_error Faraday::ClientError,
85
85
  "(error code missing): #{body}"
86
86
  end
87
87
  end
88
+
89
+ context 'when error code is not already defined' do
90
+ let(:body) { { 'errorCode' => 'SOMETHING_UNDEFINED' } }
91
+ let(:status) { 400 }
92
+
93
+ it 'raises a generic Restforce::ResponseError' do
94
+ expect { on_complete }.to raise_error Restforce::ResponseError
95
+ end
96
+ end
88
97
  end
89
98
  end
@@ -6,7 +6,7 @@ describe Restforce::SignedRequest do
6
6
  let(:client_secret) { 'foo' }
7
7
  let(:digest) do
8
8
  if RUBY_VERSION < '2.1'
9
- OpenSSL::Digest::Digest.new('sha256')
9
+ OpenSSL::Digest.new('Digest', 'sha256')
10
10
  else
11
11
  OpenSSL::Digest.new('sha256')
12
12
  end
@@ -45,13 +45,10 @@ describe Restforce::SObject do
45
45
  destroy: :destroy,
46
46
  destroy!: :destroy! }.each do |method, receiver|
47
47
  describe ".#{method}" do
48
- subject(:send_method) { sobject.send(method) }
48
+ subject(:send_method) { lambda { sobject.send(method) } }
49
49
 
50
50
  context 'when an Id was not queried' do
51
- it "raises an error" do
52
- expect { send_method }.to raise_error ArgumentError,
53
- /need to query the Id for the record/
54
- end
51
+ it { should raise_error ArgumentError, /need to query the Id for the record/ }
55
52
  end
56
53
 
57
54
  context 'when an Id is present' do
metadata CHANGED
@@ -1,36 +1,36 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: restforce
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.2.0
4
+ version: 5.0.2
5
5
  platform: ruby
6
6
  authors:
7
- - Eric J. Holmes
8
7
  - Tim Rogers
8
+ - Eric J. Holmes
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2019-10-23 00:00:00.000000000 Z
12
+ date: 2020-09-06 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: faraday
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
+ - - "<="
19
+ - !ruby/object:Gem::Version
20
+ version: '2.0'
18
21
  - - ">="
19
22
  - !ruby/object:Gem::Version
20
23
  version: 0.9.0
21
- - - "<="
22
- - !ruby/object:Gem::Version
23
- version: '1.0'
24
24
  type: :runtime
25
25
  prerelease: false
26
26
  version_requirements: !ruby/object:Gem::Requirement
27
27
  requirements:
28
+ - - "<="
29
+ - !ruby/object:Gem::Version
30
+ version: '2.0'
28
31
  - - ">="
29
32
  - !ruby/object:Gem::Version
30
33
  version: 0.9.0
31
- - - "<="
32
- - !ruby/object:Gem::Version
33
- version: '1.0'
34
34
  - !ruby/object:Gem::Dependency
35
35
  name: faraday_middleware
36
36
  requirement: !ruby/object:Gem::Requirement
@@ -40,7 +40,7 @@ dependencies:
40
40
  version: 0.8.8
41
41
  - - "<="
42
42
  - !ruby/object:Gem::Version
43
- version: '1.0'
43
+ version: '2.0'
44
44
  type: :runtime
45
45
  prerelease: false
46
46
  version_requirements: !ruby/object:Gem::Requirement
@@ -50,21 +50,7 @@ dependencies:
50
50
  version: 0.8.8
51
51
  - - "<="
52
52
  - !ruby/object:Gem::Version
53
- version: '1.0'
54
- - !ruby/object:Gem::Dependency
55
- name: json
56
- requirement: !ruby/object:Gem::Requirement
57
- requirements:
58
- - - ">="
59
- - !ruby/object:Gem::Version
60
- version: 1.7.5
61
- type: :runtime
62
- prerelease: false
63
- version_requirements: !ruby/object:Gem::Requirement
64
- requirements:
65
- - - ">="
66
- - !ruby/object:Gem::Version
67
- version: 1.7.5
53
+ version: '2.0'
68
54
  - !ruby/object:Gem::Dependency
69
55
  name: jwt
70
56
  requirement: !ruby/object:Gem::Requirement
@@ -88,7 +74,7 @@ dependencies:
88
74
  version: 1.2.0
89
75
  - - "<"
90
76
  - !ruby/object:Gem::Version
91
- version: '4.0'
77
+ version: '5.0'
92
78
  type: :runtime
93
79
  prerelease: false
94
80
  version_requirements: !ruby/object:Gem::Requirement
@@ -98,7 +84,7 @@ dependencies:
98
84
  version: 1.2.0
99
85
  - - "<"
100
86
  - !ruby/object:Gem::Version
101
- version: '4.0'
87
+ version: '5.0'
102
88
  - !ruby/object:Gem::Dependency
103
89
  name: faye
104
90
  requirement: !ruby/object:Gem::Requirement
@@ -147,62 +133,66 @@ dependencies:
147
133
  requirements:
148
134
  - - "~>"
149
135
  - !ruby/object:Gem::Version
150
- version: 0.75.0
136
+ version: 0.90.0
151
137
  type: :development
152
138
  prerelease: false
153
139
  version_requirements: !ruby/object:Gem::Requirement
154
140
  requirements:
155
141
  - - "~>"
156
142
  - !ruby/object:Gem::Version
157
- version: 0.75.0
143
+ version: 0.90.0
158
144
  - !ruby/object:Gem::Dependency
159
145
  name: simplecov
160
146
  requirement: !ruby/object:Gem::Requirement
161
147
  requirements:
162
148
  - - "~>"
163
149
  - !ruby/object:Gem::Version
164
- version: 0.17.1
150
+ version: 0.19.0
165
151
  type: :development
166
152
  prerelease: false
167
153
  version_requirements: !ruby/object:Gem::Requirement
168
154
  requirements:
169
155
  - - "~>"
170
156
  - !ruby/object:Gem::Version
171
- version: 0.17.1
157
+ version: 0.19.0
172
158
  - !ruby/object:Gem::Dependency
173
159
  name: webmock
174
160
  requirement: !ruby/object:Gem::Requirement
175
161
  requirements:
176
162
  - - "~>"
177
163
  - !ruby/object:Gem::Version
178
- version: 3.7.6
164
+ version: 3.8.3
179
165
  type: :development
180
166
  prerelease: false
181
167
  version_requirements: !ruby/object:Gem::Requirement
182
168
  requirements:
183
169
  - - "~>"
184
170
  - !ruby/object:Gem::Version
185
- version: 3.7.6
186
- description: A lightweight ruby client for the Salesforce REST API.
171
+ version: 3.8.3
172
+ description: A lightweight Ruby client for the Salesforce REST API
187
173
  email:
174
+ - me@timrogers.co.uk
188
175
  - eric@ejholmes.net
189
- - tim@gocardless.com
190
176
  executables: []
191
177
  extensions: []
192
178
  extra_rdoc_files: []
193
179
  files:
194
180
  - ".circleci/config.yml"
181
+ - ".github/ISSUE_TEMPLATE/unhandled-salesforce-error.md"
195
182
  - ".gitignore"
196
183
  - ".rubocop.yml"
197
184
  - ".rubocop_todo.yml"
198
185
  - CHANGELOG.md
199
186
  - CODE_OF_CONDUCT.md
200
187
  - CONTRIBUTING.md
188
+ - Dockerfile
201
189
  - Gemfile
202
190
  - Guardfile
203
191
  - LICENSE
204
192
  - README.md
205
193
  - Rakefile
194
+ - UPGRADING.md
195
+ - docker-compose.yml
206
196
  - lib/restforce.rb
207
197
  - lib/restforce/abstract_client.rb
208
198
  - lib/restforce/attachment.rb
@@ -221,6 +211,8 @@ files:
221
211
  - lib/restforce/config.rb
222
212
  - lib/restforce/data/client.rb
223
213
  - lib/restforce/document.rb
214
+ - lib/restforce/error_code.rb
215
+ - lib/restforce/file_part.rb
224
216
  - lib/restforce/mash.rb
225
217
  - lib/restforce/middleware.rb
226
218
  - lib/restforce/middleware/authentication.rb
@@ -240,7 +232,6 @@ files:
240
232
  - lib/restforce/signed_request.rb
241
233
  - lib/restforce/sobject.rb
242
234
  - lib/restforce/tooling/client.rb
243
- - lib/restforce/upload_io.rb
244
235
  - lib/restforce/version.rb
245
236
  - restforce.gemspec
246
237
  - script/bootstrap
@@ -306,6 +297,7 @@ files:
306
297
  - spec/unit/config_spec.rb
307
298
  - spec/unit/data/client_spec.rb
308
299
  - spec/unit/document_spec.rb
300
+ - spec/unit/error_code_spec.rb
309
301
  - spec/unit/mash_spec.rb
310
302
  - spec/unit/middleware/authentication/jwt_bearer_spec.rb
311
303
  - spec/unit/middleware/authentication/password_spec.rb
@@ -321,7 +313,7 @@ files:
321
313
  - spec/unit/signed_request_spec.rb
322
314
  - spec/unit/sobject_spec.rb
323
315
  - spec/unit/tooling/client_spec.rb
324
- homepage: http://restforce.org/
316
+ homepage: https://restforce.github.io/
325
317
  licenses:
326
318
  - MIT
327
319
  metadata:
@@ -335,17 +327,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
335
327
  requirements:
336
328
  - - ">="
337
329
  - !ruby/object:Gem::Version
338
- version: '2.4'
330
+ version: '2.5'
339
331
  required_rubygems_version: !ruby/object:Gem::Requirement
340
332
  requirements:
341
333
  - - ">="
342
334
  - !ruby/object:Gem::Version
343
335
  version: '0'
344
336
  requirements: []
345
- rubygems_version: 3.0.3
337
+ rubygems_version: 3.1.2
346
338
  signing_key:
347
339
  specification_version: 4
348
- summary: A lightweight ruby client for the Salesforce REST API.
340
+ summary: A lightweight Ruby client for the Salesforce REST API
349
341
  test_files:
350
342
  - spec/fixtures/auth_error_response.json
351
343
  - spec/fixtures/auth_success_response.json
@@ -406,6 +398,7 @@ test_files:
406
398
  - spec/unit/config_spec.rb
407
399
  - spec/unit/data/client_spec.rb
408
400
  - spec/unit/document_spec.rb
401
+ - spec/unit/error_code_spec.rb
409
402
  - spec/unit/mash_spec.rb
410
403
  - spec/unit/middleware/authentication/jwt_bearer_spec.rb
411
404
  - spec/unit/middleware/authentication/password_spec.rb
@@ -1,9 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'faraday/upload_io'
4
-
5
- module Restforce
6
- UploadIO = Faraday::UploadIO
7
- end
8
-
9
- require 'restforce/patches/parts' unless Parts::Part.method(:new).arity.abs == 4