restforce 4.2.1 → 6.0.0

Sign up to get free protection for your applications and to get access to all the features.
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