restforce 4.2.1 → 6.0.0

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 (65) hide show
  1. checksums.yaml +4 -4
  2. data/.github/ISSUE_TEMPLATE/unhandled-salesforce-error.md +17 -0
  3. data/.github/dependabot.yml +10 -0
  4. data/.github/funding.yml +1 -0
  5. data/.github/workflows/build.yml +23 -0
  6. data/.github/workflows/faraday.yml +27 -0
  7. data/.rubocop.yml +5 -4
  8. data/CHANGELOG.md +115 -0
  9. data/CONTRIBUTING.md +21 -1
  10. data/Dockerfile +31 -0
  11. data/Gemfile +15 -7
  12. data/README.md +102 -24
  13. data/UPGRADING.md +67 -0
  14. data/docker-compose.yml +7 -0
  15. data/lib/restforce/abstract_client.rb +1 -0
  16. data/lib/restforce/collection.rb +27 -4
  17. data/lib/restforce/concerns/api.rb +3 -2
  18. data/lib/restforce/concerns/base.rb +2 -2
  19. data/lib/restforce/concerns/caching.rb +7 -0
  20. data/lib/restforce/concerns/composite_api.rb +104 -0
  21. data/lib/restforce/concerns/connection.rb +1 -1
  22. data/lib/restforce/concerns/picklists.rb +2 -2
  23. data/lib/restforce/concerns/streaming.rb +1 -3
  24. data/lib/restforce/config.rb +14 -9
  25. data/lib/restforce/error_code.rb +650 -0
  26. data/lib/restforce/file_part.rb +32 -0
  27. data/lib/restforce/mash.rb +8 -3
  28. data/lib/restforce/middleware/authentication.rb +1 -0
  29. data/lib/restforce/middleware/caching.rb +140 -15
  30. data/lib/restforce/middleware/json_request.rb +90 -0
  31. data/lib/restforce/middleware/json_response.rb +85 -0
  32. data/lib/restforce/middleware/logger.rb +14 -9
  33. data/lib/restforce/middleware/raise_error.rb +13 -5
  34. data/lib/restforce/middleware.rb +2 -0
  35. data/lib/restforce/version.rb +1 -1
  36. data/lib/restforce.rb +15 -14
  37. data/restforce.gemspec +13 -21
  38. data/spec/fixtures/sobject/list_view_results_success_response.json +151 -0
  39. data/spec/integration/abstract_client_spec.rb +56 -35
  40. data/spec/integration/data/client_spec.rb +6 -2
  41. data/spec/spec_helper.rb +24 -1
  42. data/spec/support/client_integration.rb +7 -7
  43. data/spec/support/concerns.rb +1 -1
  44. data/spec/support/fixture_helpers.rb +1 -3
  45. data/spec/support/middleware.rb +1 -2
  46. data/spec/unit/collection_spec.rb +38 -2
  47. data/spec/unit/concerns/api_spec.rb +22 -15
  48. data/spec/unit/concerns/authentication_spec.rb +6 -6
  49. data/spec/unit/concerns/caching_spec.rb +26 -0
  50. data/spec/unit/concerns/composite_api_spec.rb +143 -0
  51. data/spec/unit/concerns/connection_spec.rb +2 -2
  52. data/spec/unit/concerns/streaming_spec.rb +4 -4
  53. data/spec/unit/config_spec.rb +2 -2
  54. data/spec/unit/error_code_spec.rb +61 -0
  55. data/spec/unit/mash_spec.rb +5 -0
  56. data/spec/unit/middleware/authentication/jwt_bearer_spec.rb +24 -8
  57. data/spec/unit/middleware/authentication/password_spec.rb +12 -4
  58. data/spec/unit/middleware/authentication/token_spec.rb +12 -4
  59. data/spec/unit/middleware/authentication_spec.rb +14 -8
  60. data/spec/unit/middleware/gzip_spec.rb +2 -2
  61. data/spec/unit/middleware/raise_error_spec.rb +29 -10
  62. data/spec/unit/signed_request_spec.rb +1 -1
  63. metadata +64 -187
  64. data/.circleci/config.yml +0 -56
  65. data/lib/restforce/upload_io.rb +0 -9
metadata CHANGED
@@ -1,84 +1,90 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: restforce
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.2.1
4
+ version: 6.0.0
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-12-04 00:00:00.000000000 Z
12
+ date: 2022-09-09 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
- - - ">="
18
+ - - "<"
19
19
  - !ruby/object:Gem::Version
20
- version: 0.9.0
21
- - - "<="
20
+ version: 2.5.0
21
+ - - ">="
22
22
  - !ruby/object:Gem::Version
23
- version: '1.0'
23
+ version: 1.1.0
24
24
  type: :runtime
25
25
  prerelease: false
26
26
  version_requirements: !ruby/object:Gem::Requirement
27
27
  requirements:
28
- - - ">="
28
+ - - "<"
29
29
  - !ruby/object:Gem::Version
30
- version: 0.9.0
31
- - - "<="
30
+ version: 2.5.0
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: '1.0'
33
+ version: 1.1.0
34
34
  - !ruby/object:Gem::Dependency
35
- name: faraday_middleware
35
+ name: faraday-follow_redirects
36
36
  requirement: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- version: 0.8.8
41
38
  - - "<="
42
39
  - !ruby/object:Gem::Version
43
- version: '1.0'
40
+ version: 0.3.0
41
+ - - "<"
42
+ - !ruby/object:Gem::Version
43
+ version: 1.0.0
44
44
  type: :runtime
45
45
  prerelease: false
46
46
  version_requirements: !ruby/object:Gem::Requirement
47
47
  requirements:
48
- - - ">="
49
- - !ruby/object:Gem::Version
50
- version: 0.8.8
51
48
  - - "<="
52
49
  - !ruby/object:Gem::Version
53
- version: '1.0'
50
+ version: 0.3.0
51
+ - - "<"
52
+ - !ruby/object:Gem::Version
53
+ version: 1.0.0
54
54
  - !ruby/object:Gem::Dependency
55
- name: json
55
+ name: faraday-multipart
56
56
  requirement: !ruby/object:Gem::Requirement
57
57
  requirements:
58
58
  - - ">="
59
59
  - !ruby/object:Gem::Version
60
- version: 1.7.5
60
+ version: 1.0.0
61
+ - - "<"
62
+ - !ruby/object:Gem::Version
63
+ version: 2.0.0
61
64
  type: :runtime
62
65
  prerelease: false
63
66
  version_requirements: !ruby/object:Gem::Requirement
64
67
  requirements:
65
68
  - - ">="
66
69
  - !ruby/object:Gem::Version
67
- version: 1.7.5
70
+ version: 1.0.0
71
+ - - "<"
72
+ - !ruby/object:Gem::Version
73
+ version: 2.0.0
68
74
  - !ruby/object:Gem::Dependency
69
- name: jwt
75
+ name: faraday-net_http
70
76
  requirement: !ruby/object:Gem::Requirement
71
77
  requirements:
72
- - - ">="
78
+ - - "<"
73
79
  - !ruby/object:Gem::Version
74
- version: 1.5.6
80
+ version: 3.0.0
75
81
  type: :runtime
76
82
  prerelease: false
77
83
  version_requirements: !ruby/object:Gem::Requirement
78
84
  requirements:
79
- - - ">="
85
+ - - "<"
80
86
  - !ruby/object:Gem::Version
81
- version: 1.5.6
87
+ version: 3.0.0
82
88
  - !ruby/object:Gem::Dependency
83
89
  name: hashie
84
90
  requirement: !ruby/object:Gem::Requirement
@@ -88,7 +94,7 @@ dependencies:
88
94
  version: 1.2.0
89
95
  - - "<"
90
96
  - !ruby/object:Gem::Version
91
- version: '5.0'
97
+ version: '6.0'
92
98
  type: :runtime
93
99
  prerelease: false
94
100
  version_requirements: !ruby/object:Gem::Requirement
@@ -98,111 +104,48 @@ dependencies:
98
104
  version: 1.2.0
99
105
  - - "<"
100
106
  - !ruby/object:Gem::Version
101
- version: '5.0'
107
+ version: '6.0'
102
108
  - !ruby/object:Gem::Dependency
103
- name: faye
109
+ name: jwt
104
110
  requirement: !ruby/object:Gem::Requirement
105
111
  requirements:
106
112
  - - ">="
107
113
  - !ruby/object:Gem::Version
108
- version: '0'
109
- type: :development
114
+ version: 1.5.6
115
+ type: :runtime
110
116
  prerelease: false
111
117
  version_requirements: !ruby/object:Gem::Requirement
112
118
  requirements:
113
119
  - - ">="
114
120
  - !ruby/object:Gem::Version
115
- version: '0'
116
- - !ruby/object:Gem::Dependency
117
- name: rspec
118
- requirement: !ruby/object:Gem::Requirement
119
- requirements:
120
- - - "~>"
121
- - !ruby/object:Gem::Version
122
- version: 2.14.0
123
- type: :development
124
- prerelease: false
125
- version_requirements: !ruby/object:Gem::Requirement
126
- requirements:
127
- - - "~>"
128
- - !ruby/object:Gem::Version
129
- version: 2.14.0
130
- - !ruby/object:Gem::Dependency
131
- name: rspec_junit_formatter
132
- requirement: !ruby/object:Gem::Requirement
133
- requirements:
134
- - - "~>"
135
- - !ruby/object:Gem::Version
136
- version: 0.4.1
137
- type: :development
138
- prerelease: false
139
- version_requirements: !ruby/object:Gem::Requirement
140
- requirements:
141
- - - "~>"
142
- - !ruby/object:Gem::Version
143
- version: 0.4.1
144
- - !ruby/object:Gem::Dependency
145
- name: rubocop
146
- requirement: !ruby/object:Gem::Requirement
147
- requirements:
148
- - - "~>"
149
- - !ruby/object:Gem::Version
150
- version: 0.77.0
151
- type: :development
152
- prerelease: false
153
- version_requirements: !ruby/object:Gem::Requirement
154
- requirements:
155
- - - "~>"
156
- - !ruby/object:Gem::Version
157
- version: 0.77.0
158
- - !ruby/object:Gem::Dependency
159
- name: simplecov
160
- requirement: !ruby/object:Gem::Requirement
161
- requirements:
162
- - - "~>"
163
- - !ruby/object:Gem::Version
164
- version: 0.17.1
165
- type: :development
166
- prerelease: false
167
- version_requirements: !ruby/object:Gem::Requirement
168
- requirements:
169
- - - "~>"
170
- - !ruby/object:Gem::Version
171
- version: 0.17.1
172
- - !ruby/object:Gem::Dependency
173
- name: webmock
174
- requirement: !ruby/object:Gem::Requirement
175
- requirements:
176
- - - "~>"
177
- - !ruby/object:Gem::Version
178
- version: 3.7.6
179
- type: :development
180
- prerelease: false
181
- version_requirements: !ruby/object:Gem::Requirement
182
- requirements:
183
- - - "~>"
184
- - !ruby/object:Gem::Version
185
- version: 3.7.6
186
- description: A lightweight ruby client for the Salesforce REST API.
121
+ version: 1.5.6
122
+ description: A lightweight Ruby client for the Salesforce REST API
187
123
  email:
124
+ - me@timrogers.co.uk
188
125
  - eric@ejholmes.net
189
- - tim@gocardless.com
190
126
  executables: []
191
127
  extensions: []
192
128
  extra_rdoc_files: []
193
129
  files:
194
- - ".circleci/config.yml"
130
+ - ".github/ISSUE_TEMPLATE/unhandled-salesforce-error.md"
131
+ - ".github/dependabot.yml"
132
+ - ".github/funding.yml"
133
+ - ".github/workflows/build.yml"
134
+ - ".github/workflows/faraday.yml"
195
135
  - ".gitignore"
196
136
  - ".rubocop.yml"
197
137
  - ".rubocop_todo.yml"
198
138
  - CHANGELOG.md
199
139
  - CODE_OF_CONDUCT.md
200
140
  - CONTRIBUTING.md
141
+ - Dockerfile
201
142
  - Gemfile
202
143
  - Guardfile
203
144
  - LICENSE
204
145
  - README.md
205
146
  - Rakefile
147
+ - UPGRADING.md
148
+ - docker-compose.yml
206
149
  - lib/restforce.rb
207
150
  - lib/restforce/abstract_client.rb
208
151
  - lib/restforce/attachment.rb
@@ -214,6 +157,7 @@ files:
214
157
  - lib/restforce/concerns/batch_api.rb
215
158
  - lib/restforce/concerns/caching.rb
216
159
  - lib/restforce/concerns/canvas.rb
160
+ - lib/restforce/concerns/composite_api.rb
217
161
  - lib/restforce/concerns/connection.rb
218
162
  - lib/restforce/concerns/picklists.rb
219
163
  - lib/restforce/concerns/streaming.rb
@@ -221,6 +165,8 @@ files:
221
165
  - lib/restforce/config.rb
222
166
  - lib/restforce/data/client.rb
223
167
  - lib/restforce/document.rb
168
+ - lib/restforce/error_code.rb
169
+ - lib/restforce/file_part.rb
224
170
  - lib/restforce/mash.rb
225
171
  - lib/restforce/middleware.rb
226
172
  - lib/restforce/middleware/authentication.rb
@@ -232,6 +178,8 @@ files:
232
178
  - lib/restforce/middleware/custom_headers.rb
233
179
  - lib/restforce/middleware/gzip.rb
234
180
  - lib/restforce/middleware/instance_url.rb
181
+ - lib/restforce/middleware/json_request.rb
182
+ - lib/restforce/middleware/json_response.rb
235
183
  - lib/restforce/middleware/logger.rb
236
184
  - lib/restforce/middleware/mashify.rb
237
185
  - lib/restforce/middleware/multipart.rb
@@ -240,7 +188,6 @@ files:
240
188
  - lib/restforce/signed_request.rb
241
189
  - lib/restforce/sobject.rb
242
190
  - lib/restforce/tooling/client.rb
243
- - lib/restforce/upload_io.rb
244
191
  - lib/restforce/version.rb
245
192
  - restforce.gemspec
246
193
  - script/bootstrap
@@ -261,6 +208,7 @@ files:
261
208
  - spec/fixtures/sobject/get_deleted_success_response.json
262
209
  - spec/fixtures/sobject/get_updated_success_response.json
263
210
  - spec/fixtures/sobject/list_sobjects_success_response.json
211
+ - spec/fixtures/sobject/list_view_results_success_response.json
264
212
  - spec/fixtures/sobject/org_query_response.json
265
213
  - spec/fixtures/sobject/query_aggregate_success_response.json
266
214
  - spec/fixtures/sobject/query_empty_response.json
@@ -301,11 +249,13 @@ files:
301
249
  - spec/unit/concerns/batch_api_spec.rb
302
250
  - spec/unit/concerns/caching_spec.rb
303
251
  - spec/unit/concerns/canvas_spec.rb
252
+ - spec/unit/concerns/composite_api_spec.rb
304
253
  - spec/unit/concerns/connection_spec.rb
305
254
  - spec/unit/concerns/streaming_spec.rb
306
255
  - spec/unit/config_spec.rb
307
256
  - spec/unit/data/client_spec.rb
308
257
  - spec/unit/document_spec.rb
258
+ - spec/unit/error_code_spec.rb
309
259
  - spec/unit/mash_spec.rb
310
260
  - spec/unit/middleware/authentication/jwt_bearer_spec.rb
311
261
  - spec/unit/middleware/authentication/password_spec.rb
@@ -321,12 +271,13 @@ files:
321
271
  - spec/unit/signed_request_spec.rb
322
272
  - spec/unit/sobject_spec.rb
323
273
  - spec/unit/tooling/client_spec.rb
324
- homepage: http://restforce.org/
274
+ homepage: https://restforce.github.io/
325
275
  licenses:
326
276
  - MIT
327
277
  metadata:
328
278
  source_code_uri: https://github.com/restforce/restforce
329
279
  changelog_uri: https://github.com/restforce/restforce/blob/master/CHANGELOG.md
280
+ rubygems_mfa_required: 'true'
330
281
  post_install_message:
331
282
  rdoc_options: []
332
283
  require_paths:
@@ -335,89 +286,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
335
286
  requirements:
336
287
  - - ">="
337
288
  - !ruby/object:Gem::Version
338
- version: '2.4'
289
+ version: '2.7'
339
290
  required_rubygems_version: !ruby/object:Gem::Requirement
340
291
  requirements:
341
292
  - - ">="
342
293
  - !ruby/object:Gem::Version
343
294
  version: '0'
344
295
  requirements: []
345
- rubygems_version: 3.0.3
296
+ rubygems_version: 3.1.6
346
297
  signing_key:
347
298
  specification_version: 4
348
- summary: A lightweight ruby client for the Salesforce REST API.
349
- test_files:
350
- - spec/fixtures/auth_error_response.json
351
- - spec/fixtures/auth_success_response.json
352
- - spec/fixtures/blob.jpg
353
- - spec/fixtures/expired_session_response.json
354
- - spec/fixtures/reauth_success_response.json
355
- - spec/fixtures/refresh_error_response.json
356
- - spec/fixtures/refresh_success_response.json
357
- - spec/fixtures/services_data_success_response.json
358
- - spec/fixtures/sobject/create_success_response.json
359
- - spec/fixtures/sobject/delete_error_response.json
360
- - spec/fixtures/sobject/describe_sobjects_success_response.json
361
- - spec/fixtures/sobject/get_deleted_success_response.json
362
- - spec/fixtures/sobject/get_updated_success_response.json
363
- - spec/fixtures/sobject/list_sobjects_success_response.json
364
- - spec/fixtures/sobject/org_query_response.json
365
- - spec/fixtures/sobject/query_aggregate_success_response.json
366
- - spec/fixtures/sobject/query_empty_response.json
367
- - spec/fixtures/sobject/query_error_response.json
368
- - spec/fixtures/sobject/query_paginated_first_page_response.json
369
- - spec/fixtures/sobject/query_paginated_last_page_response.json
370
- - spec/fixtures/sobject/query_success_response.json
371
- - spec/fixtures/sobject/recent_success_response.json
372
- - spec/fixtures/sobject/search_error_response.json
373
- - spec/fixtures/sobject/search_success_response.json
374
- - spec/fixtures/sobject/sobject_describe_error_response.json
375
- - spec/fixtures/sobject/sobject_describe_success_response.json
376
- - spec/fixtures/sobject/sobject_find_error_response.json
377
- - spec/fixtures/sobject/sobject_find_success_response.json
378
- - spec/fixtures/sobject/sobject_select_success_response.json
379
- - spec/fixtures/sobject/upsert_created_success_response.json
380
- - spec/fixtures/sobject/upsert_error_response.json
381
- - spec/fixtures/sobject/upsert_multiple_error_response.json
382
- - spec/fixtures/sobject/upsert_updated_success_response.json
383
- - spec/fixtures/sobject/write_error_response.json
384
- - spec/fixtures/test_private.key
385
- - spec/integration/abstract_client_spec.rb
386
- - spec/integration/data/client_spec.rb
387
- - spec/spec_helper.rb
388
- - spec/support/client_integration.rb
389
- - spec/support/concerns.rb
390
- - spec/support/event_machine.rb
391
- - spec/support/fixture_helpers.rb
392
- - spec/support/matchers.rb
393
- - spec/support/middleware.rb
394
- - spec/support/mock_cache.rb
395
- - spec/unit/abstract_client_spec.rb
396
- - spec/unit/attachment_spec.rb
397
- - spec/unit/collection_spec.rb
398
- - spec/unit/concerns/api_spec.rb
399
- - spec/unit/concerns/authentication_spec.rb
400
- - spec/unit/concerns/base_spec.rb
401
- - spec/unit/concerns/batch_api_spec.rb
402
- - spec/unit/concerns/caching_spec.rb
403
- - spec/unit/concerns/canvas_spec.rb
404
- - spec/unit/concerns/connection_spec.rb
405
- - spec/unit/concerns/streaming_spec.rb
406
- - spec/unit/config_spec.rb
407
- - spec/unit/data/client_spec.rb
408
- - spec/unit/document_spec.rb
409
- - spec/unit/mash_spec.rb
410
- - spec/unit/middleware/authentication/jwt_bearer_spec.rb
411
- - spec/unit/middleware/authentication/password_spec.rb
412
- - spec/unit/middleware/authentication/token_spec.rb
413
- - spec/unit/middleware/authentication_spec.rb
414
- - spec/unit/middleware/authorization_spec.rb
415
- - spec/unit/middleware/custom_headers_spec.rb
416
- - spec/unit/middleware/gzip_spec.rb
417
- - spec/unit/middleware/instance_url_spec.rb
418
- - spec/unit/middleware/logger_spec.rb
419
- - spec/unit/middleware/mashify_spec.rb
420
- - spec/unit/middleware/raise_error_spec.rb
421
- - spec/unit/signed_request_spec.rb
422
- - spec/unit/sobject_spec.rb
423
- - spec/unit/tooling/client_spec.rb
299
+ summary: A lightweight Ruby client for the Salesforce REST API
300
+ test_files: []
data/.circleci/config.yml DELETED
@@ -1,56 +0,0 @@
1
- version: 2
2
-
3
- references:
4
- steps: &steps
5
- - checkout
6
-
7
- - run:
8
- name: Update Bundler
9
- command: gem install bundler
10
-
11
- - run:
12
- name: Install dependencies from .gemspec
13
- command: bundle install --jobs=4 --retry=3 --path vendor/bundle
14
-
15
- - run:
16
- name: Run RSpec tests
17
- command: |
18
- mkdir /tmp/test-results
19
-
20
- bundle exec rspec --format progress \
21
- --format RspecJunitFormatter \
22
- --out /tmp/test-results/rspec.xml \
23
- --format progress \
24
- spec/**/*_spec.rb
25
-
26
- - run:
27
- name: Check code style with Rubocop
28
- command: bundle exec rubocop
29
-
30
- - store_test_results:
31
- path: /tmp/test-results
32
- - store_artifacts:
33
- path: /tmp/test-results
34
- destination: test-results
35
-
36
- jobs:
37
- build-ruby265:
38
- docker:
39
- - image: circleci/ruby:2.6.5
40
- steps: *steps
41
- build-ruby257:
42
- docker:
43
- - image: circleci/ruby:2.5.7
44
- steps: *steps
45
- build-ruby249:
46
- docker:
47
- - image: circleci/ruby:2.4.9
48
- steps: *steps
49
-
50
- workflows:
51
- version: 2
52
- tests:
53
- jobs:
54
- - build-ruby265
55
- - build-ruby257
56
- - build-ruby249
@@ -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