restforce 5.0.6 → 6.2.1

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 (58) hide show
  1. checksums.yaml +4 -4
  2. data/.github/dependabot.yml +4 -13
  3. data/.github/funding.yml +1 -0
  4. data/.github/workflows/build.yml +23 -0
  5. data/.github/workflows/faraday.yml +27 -0
  6. data/.rubocop.yml +2 -2
  7. data/CHANGELOG.md +68 -0
  8. data/Gemfile +15 -6
  9. data/README.md +61 -7
  10. data/UPGRADING.md +29 -0
  11. data/lib/restforce/abstract_client.rb +1 -0
  12. data/lib/restforce/collection.rb +20 -2
  13. data/lib/restforce/concerns/api.rb +2 -1
  14. data/lib/restforce/concerns/base.rb +2 -2
  15. data/lib/restforce/concerns/composite_api.rb +104 -0
  16. data/lib/restforce/concerns/connection.rb +1 -1
  17. data/lib/restforce/concerns/picklists.rb +1 -1
  18. data/lib/restforce/config.rb +12 -10
  19. data/lib/restforce/error_code.rb +30 -9
  20. data/lib/restforce/file_part.rb +12 -4
  21. data/lib/restforce/middleware/authentication.rb +1 -0
  22. data/lib/restforce/middleware/caching.rb +140 -15
  23. data/lib/restforce/middleware/gzip.rb +4 -0
  24. data/lib/restforce/middleware/json_request.rb +90 -0
  25. data/lib/restforce/middleware/json_response.rb +85 -0
  26. data/lib/restforce/middleware/logger.rb +6 -2
  27. data/lib/restforce/middleware/raise_error.rb +10 -1
  28. data/lib/restforce/version.rb +1 -1
  29. data/lib/restforce.rb +11 -7
  30. data/restforce.gemspec +8 -16
  31. data/spec/fixtures/sobject/list_view_results_success_response.json +151 -0
  32. data/spec/integration/abstract_client_spec.rb +42 -30
  33. data/spec/integration/data/client_spec.rb +6 -2
  34. data/spec/spec_helper.rb +10 -0
  35. data/spec/support/client_integration.rb +7 -7
  36. data/spec/support/concerns.rb +1 -1
  37. data/spec/support/middleware.rb +1 -2
  38. data/spec/unit/collection_spec.rb +22 -4
  39. data/spec/unit/concerns/api_spec.rb +22 -15
  40. data/spec/unit/concerns/authentication_spec.rb +6 -6
  41. data/spec/unit/concerns/base_spec.rb +1 -1
  42. data/spec/unit/concerns/composite_api_spec.rb +169 -0
  43. data/spec/unit/concerns/connection_spec.rb +1 -1
  44. data/spec/unit/concerns/streaming_spec.rb +4 -4
  45. data/spec/unit/config_spec.rb +2 -2
  46. data/spec/unit/middleware/authentication/jwt_bearer_spec.rb +24 -8
  47. data/spec/unit/middleware/authentication/password_spec.rb +12 -4
  48. data/spec/unit/middleware/authentication/token_spec.rb +12 -4
  49. data/spec/unit/middleware/authentication_spec.rb +8 -8
  50. data/spec/unit/middleware/authorization_spec.rb +5 -1
  51. data/spec/unit/middleware/custom_headers_spec.rb +6 -2
  52. data/spec/unit/middleware/gzip_spec.rb +60 -16
  53. data/spec/unit/middleware/instance_url_spec.rb +2 -2
  54. data/spec/unit/middleware/logger_spec.rb +1 -1
  55. data/spec/unit/middleware/raise_error_spec.rb +20 -10
  56. data/spec/unit/sobject_spec.rb +9 -5
  57. metadata +55 -172
  58. data/.circleci/config.yml +0 -56
@@ -48,7 +48,11 @@ describe Restforce::SObject do
48
48
  subject(:send_method) { lambda { sobject.send(method) } }
49
49
 
50
50
  context 'when an Id was not queried' do
51
- it { should raise_error ArgumentError, /need to query the Id for the record/ }
51
+ it {
52
+ expect do
53
+ subject.call
54
+ end.to raise_error ArgumentError, /need to query the Id for the record/
55
+ }
52
56
  end
53
57
 
54
58
  context 'when an Id is present' do
@@ -57,7 +61,7 @@ describe Restforce::SObject do
57
61
  client.should_receive(receiver)
58
62
  end
59
63
 
60
- it { should_not raise_error }
64
+ it { expect { subject.call }.not_to raise_error }
61
65
  end
62
66
  end
63
67
  end
@@ -69,7 +73,7 @@ describe Restforce::SObject do
69
73
  client.should_receive(:describe).with('Whizbang')
70
74
  end
71
75
 
72
- it { should_not raise_error }
76
+ it { expect { subject.call }.not_to raise_error }
73
77
  end
74
78
 
75
79
  describe '.describe_layouts' do
@@ -80,13 +84,13 @@ describe Restforce::SObject do
80
84
  client.should_receive(:describe_layouts).with('Whizbang', layout_id)
81
85
  end
82
86
 
83
- it { should_not raise_error }
87
+ it { expect { subject.call }.not_to raise_error }
84
88
 
85
89
  context 'when a layout Id is specified' do
86
90
  let(:layout_id) { '012E0000000RHEp' }
87
91
  subject { lambda { sobject.describe_layouts(layout_id) } }
88
92
 
89
- it { should_not raise_error }
93
+ it { expect { subject.call }.not_to raise_error }
90
94
  end
91
95
  end
92
96
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: restforce
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.0.6
4
+ version: 6.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tim Rogers
@@ -9,166 +9,116 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2021-06-17 00:00:00.000000000 Z
12
+ date: 2023-01-18 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: '2.0'
20
+ version: 2.8.0
21
21
  - - ">="
22
22
  - !ruby/object:Gem::Version
23
- version: 0.9.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: '2.0'
30
+ version: 2.8.0
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: 0.9.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: '2.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: '2.0'
54
- - !ruby/object:Gem::Dependency
55
- name: jwt
56
- requirement: !ruby/object:Gem::Requirement
57
- requirements:
58
- - - ">="
59
- - !ruby/object:Gem::Version
60
- version: 1.5.6
61
- type: :runtime
62
- prerelease: false
63
- version_requirements: !ruby/object:Gem::Requirement
64
- requirements:
65
- - - ">="
50
+ version: 0.3.0
51
+ - - "<"
66
52
  - !ruby/object:Gem::Version
67
- version: 1.5.6
53
+ version: 1.0.0
68
54
  - !ruby/object:Gem::Dependency
69
- name: hashie
55
+ name: faraday-multipart
70
56
  requirement: !ruby/object:Gem::Requirement
71
57
  requirements:
72
58
  - - ">="
73
59
  - !ruby/object:Gem::Version
74
- version: 1.2.0
60
+ version: 1.0.0
75
61
  - - "<"
76
62
  - !ruby/object:Gem::Version
77
- version: '5.0'
63
+ version: 2.0.0
78
64
  type: :runtime
79
65
  prerelease: false
80
66
  version_requirements: !ruby/object:Gem::Requirement
81
67
  requirements:
82
68
  - - ">="
83
69
  - !ruby/object:Gem::Version
84
- version: 1.2.0
70
+ version: 1.0.0
85
71
  - - "<"
86
72
  - !ruby/object:Gem::Version
87
- version: '5.0'
88
- - !ruby/object:Gem::Dependency
89
- name: faye
90
- requirement: !ruby/object:Gem::Requirement
91
- requirements:
92
- - - ">="
93
- - !ruby/object:Gem::Version
94
- version: '0'
95
- type: :development
96
- prerelease: false
97
- version_requirements: !ruby/object:Gem::Requirement
98
- requirements:
99
- - - ">="
100
- - !ruby/object:Gem::Version
101
- version: '0'
73
+ version: 2.0.0
102
74
  - !ruby/object:Gem::Dependency
103
- name: rspec
75
+ name: faraday-net_http
104
76
  requirement: !ruby/object:Gem::Requirement
105
77
  requirements:
106
- - - "~>"
78
+ - - "<"
107
79
  - !ruby/object:Gem::Version
108
- version: 2.14.0
109
- type: :development
80
+ version: 4.0.0
81
+ type: :runtime
110
82
  prerelease: false
111
83
  version_requirements: !ruby/object:Gem::Requirement
112
84
  requirements:
113
- - - "~>"
85
+ - - "<"
114
86
  - !ruby/object:Gem::Version
115
- version: 2.14.0
87
+ version: 4.0.0
116
88
  - !ruby/object:Gem::Dependency
117
- name: rspec_junit_formatter
89
+ name: hashie
118
90
  requirement: !ruby/object:Gem::Requirement
119
91
  requirements:
120
- - - "~>"
121
- - !ruby/object:Gem::Version
122
- version: 0.4.1
123
- type: :development
124
- prerelease: false
125
- version_requirements: !ruby/object:Gem::Requirement
126
- requirements:
127
- - - "~>"
92
+ - - ">="
128
93
  - !ruby/object:Gem::Version
129
- version: 0.4.1
130
- - !ruby/object:Gem::Dependency
131
- name: rubocop
132
- requirement: !ruby/object:Gem::Requirement
133
- requirements:
134
- - - "~>"
94
+ version: 1.2.0
95
+ - - "<"
135
96
  - !ruby/object:Gem::Version
136
- version: 1.17.0
137
- type: :development
97
+ version: '6.0'
98
+ type: :runtime
138
99
  prerelease: false
139
100
  version_requirements: !ruby/object:Gem::Requirement
140
101
  requirements:
141
- - - "~>"
142
- - !ruby/object:Gem::Version
143
- version: 1.17.0
144
- - !ruby/object:Gem::Dependency
145
- name: simplecov
146
- requirement: !ruby/object:Gem::Requirement
147
- requirements:
148
- - - "~>"
102
+ - - ">="
149
103
  - !ruby/object:Gem::Version
150
- version: 0.21.2
151
- type: :development
152
- prerelease: false
153
- version_requirements: !ruby/object:Gem::Requirement
154
- requirements:
155
- - - "~>"
104
+ version: 1.2.0
105
+ - - "<"
156
106
  - !ruby/object:Gem::Version
157
- version: 0.21.2
107
+ version: '6.0'
158
108
  - !ruby/object:Gem::Dependency
159
- name: webmock
109
+ name: jwt
160
110
  requirement: !ruby/object:Gem::Requirement
161
111
  requirements:
162
- - - "~>"
112
+ - - ">="
163
113
  - !ruby/object:Gem::Version
164
- version: 3.13.0
165
- type: :development
114
+ version: 1.5.6
115
+ type: :runtime
166
116
  prerelease: false
167
117
  version_requirements: !ruby/object:Gem::Requirement
168
118
  requirements:
169
- - - "~>"
119
+ - - ">="
170
120
  - !ruby/object:Gem::Version
171
- version: 3.13.0
121
+ version: 1.5.6
172
122
  description: A lightweight Ruby client for the Salesforce REST API
173
123
  email:
174
124
  - me@timrogers.co.uk
@@ -177,9 +127,11 @@ executables: []
177
127
  extensions: []
178
128
  extra_rdoc_files: []
179
129
  files:
180
- - ".circleci/config.yml"
181
130
  - ".github/ISSUE_TEMPLATE/unhandled-salesforce-error.md"
182
131
  - ".github/dependabot.yml"
132
+ - ".github/funding.yml"
133
+ - ".github/workflows/build.yml"
134
+ - ".github/workflows/faraday.yml"
183
135
  - ".gitignore"
184
136
  - ".rubocop.yml"
185
137
  - ".rubocop_todo.yml"
@@ -205,6 +157,7 @@ files:
205
157
  - lib/restforce/concerns/batch_api.rb
206
158
  - lib/restforce/concerns/caching.rb
207
159
  - lib/restforce/concerns/canvas.rb
160
+ - lib/restforce/concerns/composite_api.rb
208
161
  - lib/restforce/concerns/connection.rb
209
162
  - lib/restforce/concerns/picklists.rb
210
163
  - lib/restforce/concerns/streaming.rb
@@ -225,6 +178,8 @@ files:
225
178
  - lib/restforce/middleware/custom_headers.rb
226
179
  - lib/restforce/middleware/gzip.rb
227
180
  - lib/restforce/middleware/instance_url.rb
181
+ - lib/restforce/middleware/json_request.rb
182
+ - lib/restforce/middleware/json_response.rb
228
183
  - lib/restforce/middleware/logger.rb
229
184
  - lib/restforce/middleware/mashify.rb
230
185
  - lib/restforce/middleware/multipart.rb
@@ -253,6 +208,7 @@ files:
253
208
  - spec/fixtures/sobject/get_deleted_success_response.json
254
209
  - spec/fixtures/sobject/get_updated_success_response.json
255
210
  - spec/fixtures/sobject/list_sobjects_success_response.json
211
+ - spec/fixtures/sobject/list_view_results_success_response.json
256
212
  - spec/fixtures/sobject/org_query_response.json
257
213
  - spec/fixtures/sobject/query_aggregate_success_response.json
258
214
  - spec/fixtures/sobject/query_empty_response.json
@@ -293,6 +249,7 @@ files:
293
249
  - spec/unit/concerns/batch_api_spec.rb
294
250
  - spec/unit/concerns/caching_spec.rb
295
251
  - spec/unit/concerns/canvas_spec.rb
252
+ - spec/unit/concerns/composite_api_spec.rb
296
253
  - spec/unit/concerns/connection_spec.rb
297
254
  - spec/unit/concerns/streaming_spec.rb
298
255
  - spec/unit/config_spec.rb
@@ -320,6 +277,7 @@ licenses:
320
277
  metadata:
321
278
  source_code_uri: https://github.com/restforce/restforce
322
279
  changelog_uri: https://github.com/restforce/restforce/blob/master/CHANGELOG.md
280
+ rubygems_mfa_required: 'true'
323
281
  post_install_message:
324
282
  rdoc_options: []
325
283
  require_paths:
@@ -328,90 +286,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
328
286
  requirements:
329
287
  - - ">="
330
288
  - !ruby/object:Gem::Version
331
- version: '2.5'
289
+ version: '2.7'
332
290
  required_rubygems_version: !ruby/object:Gem::Requirement
333
291
  requirements:
334
292
  - - ">="
335
293
  - !ruby/object:Gem::Version
336
294
  version: '0'
337
295
  requirements: []
338
- rubygems_version: 3.2.5
296
+ rubygems_version: 3.4.1
339
297
  signing_key:
340
298
  specification_version: 4
341
299
  summary: A lightweight Ruby client for the Salesforce REST API
342
- test_files:
343
- - spec/fixtures/auth_error_response.json
344
- - spec/fixtures/auth_success_response.json
345
- - spec/fixtures/blob.jpg
346
- - spec/fixtures/expired_session_response.json
347
- - spec/fixtures/reauth_success_response.json
348
- - spec/fixtures/refresh_error_response.json
349
- - spec/fixtures/refresh_success_response.json
350
- - spec/fixtures/services_data_success_response.json
351
- - spec/fixtures/sobject/create_success_response.json
352
- - spec/fixtures/sobject/delete_error_response.json
353
- - spec/fixtures/sobject/describe_sobjects_success_response.json
354
- - spec/fixtures/sobject/get_deleted_success_response.json
355
- - spec/fixtures/sobject/get_updated_success_response.json
356
- - spec/fixtures/sobject/list_sobjects_success_response.json
357
- - spec/fixtures/sobject/org_query_response.json
358
- - spec/fixtures/sobject/query_aggregate_success_response.json
359
- - spec/fixtures/sobject/query_empty_response.json
360
- - spec/fixtures/sobject/query_error_response.json
361
- - spec/fixtures/sobject/query_paginated_first_page_response.json
362
- - spec/fixtures/sobject/query_paginated_last_page_response.json
363
- - spec/fixtures/sobject/query_success_response.json
364
- - spec/fixtures/sobject/recent_success_response.json
365
- - spec/fixtures/sobject/search_error_response.json
366
- - spec/fixtures/sobject/search_success_response.json
367
- - spec/fixtures/sobject/sobject_describe_error_response.json
368
- - spec/fixtures/sobject/sobject_describe_success_response.json
369
- - spec/fixtures/sobject/sobject_find_error_response.json
370
- - spec/fixtures/sobject/sobject_find_success_response.json
371
- - spec/fixtures/sobject/sobject_select_success_response.json
372
- - spec/fixtures/sobject/upsert_created_success_response.json
373
- - spec/fixtures/sobject/upsert_error_response.json
374
- - spec/fixtures/sobject/upsert_multiple_error_response.json
375
- - spec/fixtures/sobject/upsert_updated_success_response.json
376
- - spec/fixtures/sobject/write_error_response.json
377
- - spec/fixtures/test_private.key
378
- - spec/integration/abstract_client_spec.rb
379
- - spec/integration/data/client_spec.rb
380
- - spec/spec_helper.rb
381
- - spec/support/client_integration.rb
382
- - spec/support/concerns.rb
383
- - spec/support/event_machine.rb
384
- - spec/support/fixture_helpers.rb
385
- - spec/support/matchers.rb
386
- - spec/support/middleware.rb
387
- - spec/support/mock_cache.rb
388
- - spec/unit/abstract_client_spec.rb
389
- - spec/unit/attachment_spec.rb
390
- - spec/unit/collection_spec.rb
391
- - spec/unit/concerns/api_spec.rb
392
- - spec/unit/concerns/authentication_spec.rb
393
- - spec/unit/concerns/base_spec.rb
394
- - spec/unit/concerns/batch_api_spec.rb
395
- - spec/unit/concerns/caching_spec.rb
396
- - spec/unit/concerns/canvas_spec.rb
397
- - spec/unit/concerns/connection_spec.rb
398
- - spec/unit/concerns/streaming_spec.rb
399
- - spec/unit/config_spec.rb
400
- - spec/unit/data/client_spec.rb
401
- - spec/unit/document_spec.rb
402
- - spec/unit/error_code_spec.rb
403
- - spec/unit/mash_spec.rb
404
- - spec/unit/middleware/authentication/jwt_bearer_spec.rb
405
- - spec/unit/middleware/authentication/password_spec.rb
406
- - spec/unit/middleware/authentication/token_spec.rb
407
- - spec/unit/middleware/authentication_spec.rb
408
- - spec/unit/middleware/authorization_spec.rb
409
- - spec/unit/middleware/custom_headers_spec.rb
410
- - spec/unit/middleware/gzip_spec.rb
411
- - spec/unit/middleware/instance_url_spec.rb
412
- - spec/unit/middleware/logger_spec.rb
413
- - spec/unit/middleware/mashify_spec.rb
414
- - spec/unit/middleware/raise_error_spec.rb
415
- - spec/unit/signed_request_spec.rb
416
- - spec/unit/sobject_spec.rb
417
- - spec/unit/tooling/client_spec.rb
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-ruby271:
38
- docker:
39
- - image: circleci/ruby:2.7.1
40
- steps: *steps
41
- build-ruby266:
42
- docker:
43
- - image: circleci/ruby:2.6.6
44
- steps: *steps
45
- build-ruby258:
46
- docker:
47
- - image: circleci/ruby:2.5.8
48
- steps: *steps
49
-
50
- workflows:
51
- version: 2
52
- tests:
53
- jobs:
54
- - build-ruby271
55
- - build-ruby266
56
- - build-ruby258