restforce 6.2.1 → 6.2.3

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5b88661434383f16571c2b240a9c2482035058a34adadfe39a86b4fecb7382ca
4
- data.tar.gz: bb4ac026f9b7fbd43f7b5237760e341d9d351c5433ca19009daa24794be251f0
3
+ metadata.gz: fb14e30b8ad47c0d7fd1090e75181ebf8c47a01ae5d59ec574cb4d00842288ad
4
+ data.tar.gz: 69e1bbb2a318dd71b20c38a23aef43f94e29285a6a9d979aca97b16a30c85afb
5
5
  SHA512:
6
- metadata.gz: da66afd00a69c078e3883f76ae0039d2742911de7b0ca8cb6b14b15801695973a25deec7e71fede838d9193a60224510eee625b72b06c827d6f0467111757023
7
- data.tar.gz: 86cad2e9fecc5610dae221bdec91a8a1868b9333d7aa552b5fb21af928352c73cad50ea64f63f26cd61ea50048784f5c3dad20b04d798c70aee2f0295c1721bd
6
+ metadata.gz: a15b13f4cb356c77aa571e9421bad05cb8056ed807df0ae746f81fa58c310869dd61c439b20808214e52500c4fa0be2ba754103a3d16fda710de3497995c51ac
7
+ data.tar.gz: 46ffc1a1e53a30c578c28895f401b6dcdc3c2b9846293c452c2d4c7f5a8aee838ca04d6d7bd9b159a69f399ef4c8cc9e75988e5ea39d9926f5ef5f0b92f1991a
@@ -10,7 +10,7 @@ jobs:
10
10
  # For v2.0.x, we test v2.0.0 and v2.0.1 because v2.0.0 has a special behaviour where
11
11
  # the Net::HTTP adapter is not included. See
12
12
  # https://github.com/lostisland/faraday/blob/main/UPGRADING.md#faraday-20.
13
- faraday_version: ['1.1.0', '1.2.0', '1.3.1', '1.4.1', '1.5.1', '1.6.0', '1.7.2', '1.8.0', '1.9.3', '1.10.0', '2.0.0', '2.0.1', '2.1.0', '2.2.0', '2.3.0', '2.4.0', '2.5.0', '2.6.0', '2.7.0']
13
+ faraday_version: ['1.1.0', '1.2.0', '1.3.1', '1.4.3', '1.5.1', '1.6.0', '1.7.2', '1.8.0', '1.9.3', '1.10.3', '2.0.0', '2.0.1', '2.1.0', '2.2.0', '2.3.0', '2.4.0', '2.5.2', '2.6.0', '2.7.4']
14
14
  env:
15
15
  FARADAY_VERSION: ~> ${{ matrix.faraday_version }}
16
16
  steps:
@@ -24,4 +24,4 @@ jobs:
24
24
  - name: Install dependencies
25
25
  run: bundle install
26
26
  - name: Run RSpec tests
27
- run: bundle exec rspec
27
+ run: bundle exec rspec
data/.gitignore CHANGED
@@ -19,3 +19,6 @@ tmp
19
19
  .rspec
20
20
  .ruby-version
21
21
  *.swp
22
+ .idea
23
+ Vagrantfile
24
+ .vagrant/
data/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
+ # 6.2.3 (Jun 18 2023)
2
+
3
+ * Handle the `CANNOT_DELETE_OWNER`, `CANNOT_POST_TO_ARCHIVED_GROUP`, `INVALID_INPUT`, `INVALID_MARKUP` and `INVALID_SEARCH` errors returned by the Salesforce API (@spurton)
4
+
5
+ # 6.2.2 (Mar 24 2023)
6
+
7
+ * Handle the `INSUFFICIENT_ACCESS` error returned by the Salesforce API (@timrogers, @nstuart-at-salesforce)
8
+
1
9
  # 6.2.1 (Jan 18 2023)
2
10
 
3
11
  * When a response claims to be gzipped but isn't, return the body as it is and don't explode (@timrogers)
@@ -5,7 +13,7 @@
5
13
  # 6.2.0 (Jan 18 2023)
6
14
 
7
15
  * Add support for `faraday` v2.7.x (@timrogers)
8
- * Expose the Faraday `Response` on `CompositeAPIError`s (@shravan097)
16
+ * Expose the Faraday `Response` on` `CompositeAPIError`s (@shravan097)
9
17
 
10
18
  # 6.1.0 (Nov 18 2022)
11
19
 
data/Gemfile CHANGED
@@ -7,7 +7,7 @@ faraday_version = ENV.fetch('FARADAY_VERSION', '~> 2.7.3')
7
7
 
8
8
  # Enable us to explicitly pick a Faraday version when running tests
9
9
  gem 'faraday', faraday_version
10
- gem 'faraday-typhoeus', '~> 0.2.1' unless faraday_version.start_with?("~> 1")
10
+ gem 'faraday-typhoeus', '~> 1.0.0' unless faraday_version.start_with?("~> 1")
11
11
  gem 'faye' unless RUBY_PLATFORM == 'java'
12
12
  gem 'guard-rspec'
13
13
  gem 'guard-rubocop'
@@ -17,6 +17,6 @@ gem 'rspec', '~> 3.12.0'
17
17
  gem 'rspec-collection_matchers', '~> 1.2.0'
18
18
  gem 'rspec-its', '~> 1.3.0'
19
19
  gem 'rspec_junit_formatter', '~> 0.6.0'
20
- gem 'rubocop', '~> 1.43.0'
20
+ gem 'rubocop', '~> 1.52.1'
21
21
  gem 'simplecov', '~> 0.22.0'
22
22
  gem 'webmock', '~> 3.18.1'
data/README.md CHANGED
@@ -27,7 +27,7 @@ Features include:
27
27
 
28
28
  Add this line to your application's Gemfile:
29
29
 
30
- gem 'restforce', '~> 6.2.1'
30
+ gem 'restforce', '~> 6.2.3'
31
31
 
32
32
  And then execute:
33
33
 
@@ -112,12 +112,13 @@ The `id` field can be used to [uniquely identify](https://developer.salesforce.c
112
112
  If you prefer to use a username and password to authenticate:
113
113
 
114
114
  ```ruby
115
- client = Restforce.new(username: 'foo',
116
- password: 'bar',
117
- security_token: 'security token',
118
- client_id: 'client_id',
119
- client_secret: 'client_secret',
120
- api_version: '41.0')
115
+ client = Restforce.new(username: config['username'],
116
+ password: config['password'],
117
+ instance_url: config['instance_url'],
118
+ host: config['host'], # https://test.salesforce.com for sandbox (optional)
119
+ client_id: config['client_key'], # Salesforce Client Key
120
+ client_secret: config['client_secret'], # Salesforce Client Secret
121
+ api_version: '55.0')
121
122
  ```
122
123
 
123
124
  #### JWT Bearer Token
@@ -57,6 +57,11 @@ module Restforce
57
57
  #
58
58
  # :request_headers - A hash containing custom headers that will be
59
59
  # appended to each request
60
+ #
61
+ # :clear_authorization_header - A boolean that when set to true will cause
62
+ # the Faraday::FollowRedirects middleware to
63
+ # omit the auth header when following
64
+ # redirects (default: false)
60
65
 
61
66
  def initialize(opts = {})
62
67
  raise ArgumentError, 'Please specify a hash of options' unless opts.is_a?(Hash)
@@ -20,6 +20,8 @@ module Restforce
20
20
  private
21
21
 
22
22
  # Internal: Internal faraday connection where all requests go through
23
+ # rubocop:disable Metrics/AbcSize
24
+ # rubocop:disable Metrics/BlockLength
23
25
  def connection
24
26
  @connection ||= Faraday.new(options[:instance_url],
25
27
  connection_options) do |builder|
@@ -43,7 +45,10 @@ module Restforce
43
45
  # Caches GET requests.
44
46
  builder.use Restforce::Middleware::Caching, cache, options if cache
45
47
  # Follows 30x redirects.
46
- builder.use Faraday::FollowRedirects::Middleware
48
+ builder.use Faraday::FollowRedirects::Middleware, {
49
+ # Pass the option to clear or send the auth header on redirects through
50
+ clear_authorization_header: options[:clear_authorization_header]
51
+ }
47
52
  # Raises errors for 40x responses.
48
53
  builder.use Restforce::Middleware::RaiseError
49
54
  # Parses returned JSON response into a hash.
@@ -64,6 +69,8 @@ module Restforce
64
69
  builder.adapter adapter
65
70
  end
66
71
  end
72
+ # rubocop:enable Metrics/BlockLength
73
+ # rubocop:enable Metrics/AbcSize
67
74
 
68
75
  def adapter
69
76
  options[:adapter]
@@ -161,6 +161,10 @@ module Restforce
161
161
  # Set use_cache to false to opt in to caching with client.with_caching
162
162
  option :use_cache, default: true
163
163
 
164
+ # Set to true to have Faraday::FollowRedirects middleware omit the auth header
165
+ # when following redirects
166
+ option :clear_authorization_header, default: false
167
+
164
168
  def options
165
169
  self.class.options
166
170
  end
@@ -43,6 +43,8 @@ module Restforce
43
43
 
44
44
  class CannotDeleteLastDatedConversionRate < ResponseError; end
45
45
 
46
+ class CannotDeleteOwner < ResponseError; end
47
+
46
48
  class CannotDeleteManagedObject < ResponseError; end
47
49
 
48
50
  class CannotDisableLastAdmin < ResponseError; end
@@ -55,6 +57,8 @@ module Restforce
55
57
 
56
58
  class CannotModifyManagedObject < ResponseError; end
57
59
 
60
+ class CannotPostToArchivedGroup < ResponseError; end
61
+
58
62
  class CannotRenameApexReferencedField < ResponseError; end
59
63
 
60
64
  class CannotRenameApexReferencedObject < ResponseError; end
@@ -171,6 +175,8 @@ module Restforce
171
175
 
172
176
  class InsertUpdateDeleteNotAllowedDuringMaintenance < ResponseError; end
173
177
 
178
+ class InsufficientAccess < ResponseError; end
179
+
174
180
  class InsufficientAccessOnCrossReferenceEntity < ResponseError; end
175
181
 
176
182
  class InsufficientAccessOrReadonly < ResponseError; end
@@ -217,8 +223,12 @@ module Restforce
217
223
 
218
224
  class InvalidInetAddress < ResponseError; end
219
225
 
226
+ class InvalidInput < ResponseError; end
227
+
220
228
  class InvalidLineitemCloneState < ResponseError; end
221
229
 
230
+ class InvalidMarkup < ResponseError; end
231
+
222
232
  class InvalidMasterOrTranslatedSolution < ResponseError; end
223
233
 
224
234
  class InvalidMessageIdReference < ResponseError; end
@@ -245,6 +255,8 @@ module Restforce
245
255
 
246
256
  class InvalidSaveAsActivityFlag < ResponseError; end
247
257
 
258
+ class InvalidSearch < ResponseError; end
259
+
248
260
  class InvalidSessionId < ResponseError; end
249
261
 
250
262
  class InvalidSignupCountry < ResponseError; end
@@ -434,11 +446,13 @@ module Restforce
434
446
  "CANNOT_DELETE_LAST_DATED_CONVERSION_RATE" =>
435
447
  CannotDeleteLastDatedConversionRate,
436
448
  "CANNOT_DELETE_MANAGED_OBJECT" => CannotDeleteManagedObject,
449
+ "CANNOT_DELETE_OWNER" => CannotDeleteOwner,
437
450
  "CANNOT_DISABLE_LAST_ADMIN" => CannotDisableLastAdmin,
438
451
  "CANNOT_ENABLE_IP_RESTRICT_REQUESTS" => CannotEnableIpRestrictRequests,
439
452
  "CANNOT_EXECUTE_FLOW_TRIGGER" => CannotExecuteFlowTrigger,
440
453
  "CANNOT_INSERT_UPDATE_ACTIVATE_ENTITY" => CannotInsertUpdateActivateEntity,
441
454
  "CANNOT_MODIFY_MANAGED_OBJECT" => CannotModifyManagedObject,
455
+ "CANNOT_POST_TO_ARCHIVED_GROUP" => CannotPostToArchivedGroup,
442
456
  "CANNOT_RENAME_APEX_REFERENCED_FIELD" => CannotRenameApexReferencedField,
443
457
  "CANNOT_RENAME_APEX_REFERENCED_OBJECT" => CannotRenameApexReferencedObject,
444
458
  "CANNOT_REPARENT_RECORD" => CannotReparentRecord,
@@ -500,6 +514,8 @@ module Restforce
500
514
  "INACTIVE_OWNER_OR_USER" => InactiveOwnerOrUser,
501
515
  "INSERT_UPDATE_DELETE_NOT_ALLOWED_DURING_MAINTENANCE" =>
502
516
  InsertUpdateDeleteNotAllowedDuringMaintenance,
517
+ "INSUFFICIENT_ACCESS" =>
518
+ InsufficientAccess,
503
519
  "INSUFFICIENT_ACCESS_ON_CROSS_REFERENCE_ENTITY" =>
504
520
  InsufficientAccessOnCrossReferenceEntity,
505
521
  "INSUFFICIENT_ACCESS_OR_READONLY" => InsufficientAccessOrReadonly,
@@ -524,7 +540,9 @@ module Restforce
524
540
  "INVALID_FILTER_ACTION" => InvalidFilterAction,
525
541
  "INVALID_ID_FIELD" => InvalidIdField,
526
542
  "INVALID_INET_ADDRESS" => InvalidInetAddress,
543
+ "INVALID_INPUT" => InvalidInput,
527
544
  "INVALID_LINEITEM_CLONE_STATE" => InvalidLineitemCloneState,
545
+ "INVALID_MARKUP" => InvalidMarkup,
528
546
  "INVALID_MASTER_OR_TRANSLATED_SOLUTION" => InvalidMasterOrTranslatedSolution,
529
547
  "INVALID_MESSAGE_ID_REFERENCE" => InvalidMessageIdReference,
530
548
  "INVALID_OPERATION" => InvalidOperation,
@@ -539,6 +557,7 @@ module Restforce
539
557
  "INVALID_READ_ONLY_USER_DML" => InvalidReadOnlyUserDml,
540
558
  "INVALID_REPLICATION_DATE" => InvalidReplicationDate,
541
559
  "INVALID_SAVE_AS_ACTIVITY_FLAG" => InvalidSaveAsActivityFlag,
560
+ "INVALID_SEARCH" => InvalidSearch,
542
561
  "INVALID_SESSION_ID" => InvalidSessionId,
543
562
  "INVALID_SIGNUP_COUNTRY" => InvalidSignupCountry,
544
563
  "INVALID_STATUS" => InvalidStatus,
@@ -29,4 +29,6 @@ end
29
29
 
30
30
  # This patch is only needed with multipart-post < 2.0.0
31
31
  # 2.0.0 was released in 2013.
32
- require 'restforce/patches/parts' unless Parts::Part.method(:new).arity.abs == 4
32
+ if defined?(Parts) && Parts::Part.method(:new).arity.abs != 4
33
+ require 'restforce/patches/parts'
34
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Restforce
4
- VERSION = '6.2.1'
4
+ VERSION = '6.2.3'
5
5
  end
@@ -62,7 +62,7 @@ describe Restforce do
62
62
  %i[username password security_token client_id client_secret compress
63
63
  timeout oauth_token refresh_token instance_url api_version host mashify
64
64
  authentication_retries proxy_uri authentication_callback ssl
65
- request_headers log_level logger].each do |attr|
65
+ request_headers log_level logger clear_authorization_header].each do |attr|
66
66
  it "allows #{attr} to be set" do
67
67
  Restforce.configure do |config|
68
68
  config.send("#{attr}=", 'foobar')
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: 6.2.1
4
+ version: 6.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tim Rogers
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2023-01-18 00:00:00.000000000 Z
12
+ date: 2023-06-18 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: faraday
@@ -293,7 +293,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
293
293
  - !ruby/object:Gem::Version
294
294
  version: '0'
295
295
  requirements: []
296
- rubygems_version: 3.4.1
296
+ rubygems_version: 3.4.7
297
297
  signing_key:
298
298
  specification_version: 4
299
299
  summary: A lightweight Ruby client for the Salesforce REST API