easypost 6.4.1 → 7.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.
- checksums.yaml +4 -4
- data/.github/CODEOWNERS +2 -2
- data/.github/workflows/ci.yml +3 -3
- data/.github/workflows/release.yml +1 -1
- data/CHANGELOG.md +24 -0
- data/Makefile +2 -3
- data/UPGRADE_GUIDE.md +41 -6
- data/VERSION +1 -1
- data/easypost.gemspec +15 -13
- data/lib/easypost/client.rb +1 -1
- data/lib/easypost/connection.rb +1 -1
- data/lib/easypost/errors/api/api_error.rb +5 -5
- data/lib/easypost/models.rb +0 -1
- data/lib/easypost/services/address.rb +1 -1
- data/lib/easypost/services/batch.rb +1 -1
- data/lib/easypost/services/beta_referral_customer.rb +15 -0
- data/lib/easypost/services/carrier_account.rb +6 -1
- data/lib/easypost/services/carrier_type.rb +1 -1
- data/lib/easypost/services/claim.rb +1 -1
- data/lib/easypost/services/customs_info.rb +1 -1
- data/lib/easypost/services/customs_item.rb +1 -1
- data/lib/easypost/services/end_shipper.rb +1 -1
- data/lib/easypost/services/event.rb +1 -1
- data/lib/easypost/services/insurance.rb +1 -1
- data/lib/easypost/services/order.rb +1 -1
- data/lib/easypost/services/parcel.rb +1 -1
- data/lib/easypost/services/pickup.rb +1 -1
- data/lib/easypost/services/referral_customer.rb +37 -2
- data/lib/easypost/services/refund.rb +1 -1
- data/lib/easypost/services/report.rb +3 -3
- data/lib/easypost/services/scan_form.rb +1 -1
- data/lib/easypost/services/shipment.rb +1 -1
- data/lib/easypost/services/tracker.rb +1 -10
- data/lib/easypost/services/user.rb +2 -34
- data/lib/easypost/services/webhook.rb +1 -1
- metadata +71 -36
- data/Rakefile +0 -3
- data/bin/easypost-irb +0 -9
- data/lib/easypost/models/error.rb +0 -21
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a490b659ed5817624823ce658ac7557662d362a79d3fdcd299fda513e4d70a6d
|
4
|
+
data.tar.gz: bd49a9afc7da9416fcbe7f3bc6d6088a83863256a32457fb2fa0701721adca3e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: baaaeaed6a61e88644c96a7cf4f25627cd4eb5be33f77717814836afaefd3e56915dec5adae1033772ac2fd388dc9ba84a3c27e8392a75942d9c63a3c9ff3573
|
7
|
+
data.tar.gz: 8ae9c41a8b377ea0de2ad14272e54247437a6c8716baba87709be6b87ebfe1fabd5729666549f1ddd1968a86ee3ad5521c8b2a9c9f8dd2cf54ecbff4d85dc06f
|
data/.github/CODEOWNERS
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
# Ping the
|
2
|
-
* @EasyPost/
|
1
|
+
# Ping the Shippers team for reviews on every PR
|
2
|
+
* @EasyPost/team-shippers
|
data/.github/workflows/ci.yml
CHANGED
@@ -11,7 +11,7 @@ jobs:
|
|
11
11
|
runs-on: ubuntu-latest
|
12
12
|
strategy:
|
13
13
|
matrix:
|
14
|
-
rubyversion: ['2.
|
14
|
+
rubyversion: ['2.7', '3.0', '3.1', '3.2', '3.3', '3.4']
|
15
15
|
steps:
|
16
16
|
- uses: actions/checkout@v4
|
17
17
|
- uses: ruby/setup-ruby@v1
|
@@ -35,7 +35,7 @@ jobs:
|
|
35
35
|
- uses: actions/checkout@v4
|
36
36
|
- uses: ruby/setup-ruby@v1
|
37
37
|
with:
|
38
|
-
ruby-version: '3.
|
38
|
+
ruby-version: '3.4'
|
39
39
|
rubygems: '3.3.0'
|
40
40
|
bundler-cache: true
|
41
41
|
- name: Install Dependencies
|
@@ -51,7 +51,7 @@ jobs:
|
|
51
51
|
- uses: actions/checkout@v4
|
52
52
|
- uses: ruby/setup-ruby@v1
|
53
53
|
with:
|
54
|
-
ruby-version: '3.
|
54
|
+
ruby-version: '3.4'
|
55
55
|
rubygems: '3.3.0'
|
56
56
|
bundler-cache: true
|
57
57
|
- name: Install Dependencies
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,27 @@
|
|
1
1
|
# CHANGELOG
|
2
2
|
|
3
|
+
## v7.0.0 (2025-04-28)
|
4
|
+
|
5
|
+
See our [Upgrade Guide](UPGRADE_GUIDE.md#upgrading-from-6x-to-70) for more details.
|
6
|
+
|
7
|
+
- Adds Ruby 3.4 support
|
8
|
+
- Adds the following functions to assist ReferralCustomers add credit cards and bank accounts:
|
9
|
+
- `beta_referral_customer.create_credit_card_client_secret`
|
10
|
+
- `beta_referral_customer.create_bank_account_client_secret`
|
11
|
+
- `referral_customer.add_credit_card_from_stripe`
|
12
|
+
- `referral_customer.add_bank_account_from_stripe`
|
13
|
+
- Routes `AmazonShippingAccount` to the proper create endpoint
|
14
|
+
- Fixes error parsing
|
15
|
+
- Allows for alternative format of `errors` field
|
16
|
+
- Corrects available properties of an `EasyPostError` and `ApiError` (`code` and `field` removed from `EasyPostError`, `message` unfurled and explicitly added to `ApiError`)
|
17
|
+
- Removes unused `Error` model
|
18
|
+
- Corrects the HTTP verb for updating a brand from `GET` to `PATCH`
|
19
|
+
- Removes deprecated `create_list` tracker endpoint function as it is no longer available via API
|
20
|
+
- Removes deprecated `user.all_api_keys` and `user.api_keys`, use `api_key.all` and `api_key.retrieve_api_keys_for_user` respectively
|
21
|
+
- Removes unmaintained and undocumented `irb`
|
22
|
+
- Removes unused `Rakefile`
|
23
|
+
- Bumps all dev dependencies
|
24
|
+
|
3
25
|
## v6.4.1 (2024-08-09)
|
4
26
|
|
5
27
|
- Send GET requests as query parameters instead of JSON body parameters
|
@@ -30,6 +52,8 @@
|
|
30
52
|
|
31
53
|
## v6.0.0 (2023-12-06)
|
32
54
|
|
55
|
+
See our [Upgrade Guide](UPGRADE_GUIDE.md#upgrading-from-5x-to-60) for more details.
|
56
|
+
|
33
57
|
- Removes `with_carbon_offset` parameter from `create`, `buy` and `regenerate_rates` methods in the shipment service since now EasyPost offers carbon neutral shipments by default for free
|
34
58
|
- Fixes a bug where the original filtering criteria of `all` calls wasn't passed along to `get_next_page` calls. Now, these are persisted via `_params` key on response objects
|
35
59
|
- Removes the undocumented `create_and_buy` function from the Batch service. The proper usage is to create a batch first and buy it separately
|
data/Makefile
CHANGED
@@ -13,15 +13,14 @@ clean:
|
|
13
13
|
rm -rf coverage doc *.gem dist
|
14
14
|
|
15
15
|
## coverage - Generate a test coverage report
|
16
|
-
coverage:
|
17
|
-
make test
|
16
|
+
coverage: test
|
18
17
|
|
19
18
|
## docs - Generate documentation for the library
|
20
19
|
docs:
|
21
20
|
bundle exec rdoc lib -o docs --title "EasyPost Ruby Docs"
|
22
21
|
|
23
22
|
## install-styleguide - Import the style guides (Unix only)
|
24
|
-
install-styleguide: |
|
23
|
+
install-styleguide: | init-examples-submodule
|
25
24
|
sh examples/symlink_directory_files.sh examples/style_guides/ruby .
|
26
25
|
|
27
26
|
## init-examples-submodule - Initialize the examples submodule
|
data/UPGRADE_GUIDE.md
CHANGED
@@ -2,12 +2,47 @@
|
|
2
2
|
|
3
3
|
Use the following guide to assist in the upgrade process of the `easypost-ruby` library between major versions.
|
4
4
|
|
5
|
+
- [Upgrading from 6.x to 7.0](#upgrading-from-6x-to-70)
|
5
6
|
- [Upgrading from 5.x to 6.0](#upgrading-from-5x-to-60)
|
6
7
|
- [Upgrading from 4.x to 5.0](#upgrading-from-4x-to-50)
|
7
8
|
- [Upgrading from 3.x to 4.0](#upgrading-from-3x-to-40)
|
8
9
|
|
10
|
+
## Upgrading from 6.x to 7.0
|
11
|
+
|
12
|
+
### 7.0 High Impact Changes
|
13
|
+
|
14
|
+
- [Error Parsing](#70-error-parsing)
|
15
|
+
|
16
|
+
### 7.0 Medium Impact Changes
|
17
|
+
|
18
|
+
- [Deprecations](#70-deprecations)
|
19
|
+
|
20
|
+
## 7.0 Error Parsing
|
21
|
+
|
22
|
+
*Likelihood of Impact: **High***
|
23
|
+
|
24
|
+
The `errors` key of an error response can return either a list of `FieldError` objects or a list of strings. The error parsing has been expanded to include both formats. As such, you will now need to check for the format of the `errors` field and handle the errors appropriately for the type that is returned.
|
25
|
+
|
26
|
+
The `Error` model has been removed since it is unused and we directly assign properties of an error response to the `ApiError` type.
|
27
|
+
|
28
|
+
The `code` and `field` properties of an `EasyPostError` have been removed as they only belong to the `ApiError` type.
|
29
|
+
|
30
|
+
## 7.0 Deprecations
|
31
|
+
|
32
|
+
*Likelihood of Impact: **Medium***
|
33
|
+
|
34
|
+
The following deprecated functions have been removed:
|
35
|
+
|
36
|
+
- `tracker.create_list` (trackers must be created individually moving forward)
|
37
|
+
- `user.all_api_keys` (use `api_key.all`)
|
38
|
+
- `user.api_keys` (use `api_key.retrieve_api_keys_for_user`)
|
39
|
+
|
40
|
+
The `irb` has been removed from this library.
|
41
|
+
|
9
42
|
## Upgrading from 5.x to 6.0
|
10
43
|
|
44
|
+
**NOTICE:** v6 is deprecated.
|
45
|
+
|
11
46
|
### 6.0 High Impact Changes
|
12
47
|
|
13
48
|
- [Carbon Offset Removed](#60-carbon-offset-removed)
|
@@ -156,18 +191,18 @@ Empty API response functions for `delete` return `true` instead of empty object
|
|
156
191
|
|
157
192
|
### 4.0 High Impact Changes
|
158
193
|
|
159
|
-
|
194
|
+
- [Updating Dependencies](#40-updating-dependencies)
|
160
195
|
|
161
196
|
### 4.0 Medium Impact Changes
|
162
197
|
|
163
|
-
|
198
|
+
- [Removal of `get_rates` Shipment Method](#40-removal-of-getrates-shipment-method)
|
164
199
|
|
165
200
|
### 4.0 Low Impact Changes
|
166
201
|
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
202
|
+
- [Removal of `Print` and `PrintJob` Objects](#40-removal-of-print-and-printjob-objects)
|
203
|
+
- [Removal of `stamp_and_barcode_by_reference` Batch Method](#40-removal-of-stampandbarcodebyreference-batch-method)
|
204
|
+
- [Removal of `Address.verify` Parameters](#40-removal-of-addressverify-parameters)
|
205
|
+
- [Removal of the `http_status` Property on EasyPost::Error](#40-removal-of-httpstatus-property-on-easyposterror)
|
171
206
|
|
172
207
|
## 4.0 Updating Dependencies
|
173
208
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
7.0.0
|
data/easypost.gemspec
CHANGED
@@ -17,21 +17,23 @@ Gem::Specification.new do |spec|
|
|
17
17
|
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
18
18
|
f.match(%r{^(docs|examples|spec)/})
|
19
19
|
end
|
20
|
-
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
21
20
|
spec.require_paths = ['lib']
|
22
|
-
spec.required_ruby_version = '>= 2.
|
21
|
+
spec.required_ruby_version = '>= 2.7'
|
23
22
|
|
24
|
-
spec.add_development_dependency '
|
25
|
-
spec.add_development_dependency '
|
26
|
-
spec.add_development_dependency '
|
27
|
-
spec.add_development_dependency '
|
28
|
-
spec.add_development_dependency '
|
29
|
-
spec.add_development_dependency '
|
30
|
-
spec.add_development_dependency '
|
31
|
-
spec.add_development_dependency '
|
23
|
+
spec.add_development_dependency 'abbrev', '~> 0.1'
|
24
|
+
spec.add_development_dependency 'benchmark', '~> 0.4'
|
25
|
+
spec.add_development_dependency 'bigdecimal', '~> 3'
|
26
|
+
spec.add_development_dependency 'brakeman', '~> 5.4' # can't upgrade to 6.x, requires Ruby 3.0
|
27
|
+
spec.add_development_dependency 'faraday', '~> 2.8' # can't upgrade to 2.9, requires Ruby 3.0
|
28
|
+
spec.add_development_dependency 'logger', '~> 1'
|
29
|
+
spec.add_development_dependency 'ostruct', '~> 0.6'
|
30
|
+
spec.add_development_dependency 'rdoc', '~> 6.12'
|
31
|
+
spec.add_development_dependency 'rspec', '~> 3.13'
|
32
|
+
spec.add_development_dependency 'rubocop', '= 1.72' # TODO: v1.73 no longer packages certain plugins and will require changes
|
33
|
+
spec.add_development_dependency 'rubocop-rspec', '= 2.31' # can't upgrade to 3.0, requires easycop config changes
|
32
34
|
spec.add_development_dependency 'simplecov', '~> 0.22'
|
33
35
|
spec.add_development_dependency 'simplecov-lcov', '~> 0.8'
|
34
|
-
spec.add_development_dependency 'typhoeus', '~> 1.4
|
35
|
-
spec.add_development_dependency 'vcr', '~> 6.
|
36
|
-
spec.add_development_dependency 'webmock', '~> 3.
|
36
|
+
spec.add_development_dependency 'typhoeus', '~> 1.4'
|
37
|
+
spec.add_development_dependency 'vcr', '~> 6.3'
|
38
|
+
spec.add_development_dependency 'webmock', '~> 3.25'
|
37
39
|
end
|
data/lib/easypost/client.rb
CHANGED
@@ -76,7 +76,7 @@ class EasyPost::Client
|
|
76
76
|
# @param endpoint [String] URI path of the resource
|
77
77
|
# @param params [Object] (nil) object to be used as the request parameters
|
78
78
|
# @param api_version [String] the version of API to hit
|
79
|
-
# @raise [EasyPost::
|
79
|
+
# @raise [EasyPost::Errors::EasyPostError] if the response has a non-2xx status code
|
80
80
|
# @return [Hash] JSON object parsed from the response body
|
81
81
|
def make_request(
|
82
82
|
method,
|
data/lib/easypost/connection.rb
CHANGED
@@ -7,7 +7,7 @@ EasyPost::Connection = Struct.new(:uri, :config, keyword_init: true) do
|
|
7
7
|
# @param path [String] URI path of the resource
|
8
8
|
# @param requested_api_key [String] ({EasyPost.api_key}) key set Authorization header.
|
9
9
|
# @param body [String] (nil) body of the request
|
10
|
-
# @raise [EasyPost::
|
10
|
+
# @raise [EasyPost::Errors::EasyPostError] if the response has a non-2xx status code
|
11
11
|
# @return [Hash] JSON object parsed from the response body
|
12
12
|
def call(method, path, api_key = nil, body = nil)
|
13
13
|
raise EasyPost::Errors::MissingParameterError.new('api_key') if api_key.nil?
|
@@ -4,10 +4,13 @@ require_relative '../easy_post_error'
|
|
4
4
|
require 'easypost/constants'
|
5
5
|
|
6
6
|
class EasyPost::Errors::ApiError < EasyPost::Errors::EasyPostError
|
7
|
-
attr_reader :status_code, :code, :errors
|
7
|
+
attr_reader :message, :status_code, :code, :errors
|
8
8
|
|
9
9
|
def initialize(message, status_code = nil, error_code = nil, sub_errors = nil)
|
10
10
|
super message
|
11
|
+
message_list = []
|
12
|
+
EasyPost::Errors::ApiError.collect_error_messages(message, message_list)
|
13
|
+
@message = message_list.join(', ')
|
11
14
|
@status_code = status_code
|
12
15
|
@code = error_code
|
13
16
|
@errors = sub_errors
|
@@ -46,12 +49,9 @@ class EasyPost::Errors::ApiError < EasyPost::Errors::EasyPostError
|
|
46
49
|
# Try to parse the response body as JSON
|
47
50
|
begin
|
48
51
|
error_data = JSON.parse(response.body)['error']
|
49
|
-
|
50
52
|
error_message = error_data['message']
|
51
53
|
error_type = error_data['code']
|
52
|
-
errors = error_data['errors']
|
53
|
-
EasyPost::Models::Error.from_api_error_response(error)
|
54
|
-
end
|
54
|
+
errors = error_data['errors']
|
55
55
|
rescue StandardError
|
56
56
|
error_message = response.code.to_s
|
57
57
|
error_type = EasyPost::Constants::API_ERROR_DETAILS_PARSING_ERROR
|
data/lib/easypost/models.rb
CHANGED
@@ -14,7 +14,6 @@ require_relative 'models/claim'
|
|
14
14
|
require_relative 'models/customs_info'
|
15
15
|
require_relative 'models/customs_item'
|
16
16
|
require_relative 'models/end_shipper'
|
17
|
-
require_relative 'models/error'
|
18
17
|
require_relative 'models/event'
|
19
18
|
require_relative 'models/insurance'
|
20
19
|
require_relative 'models/order'
|
@@ -41,4 +41,19 @@ class EasyPost::Services::BetaReferralCustomer < EasyPost::Services::Service
|
|
41
41
|
|
42
42
|
EasyPost::InternalUtilities::Json.convert_json_to_object(response)
|
43
43
|
end
|
44
|
+
|
45
|
+
# Creates a client secret to use with Stripe when adding a credit card.
|
46
|
+
def create_credit_card_client_secret
|
47
|
+
response = @client.make_request(:post, 'setup_intents', nil, 'beta')
|
48
|
+
|
49
|
+
EasyPost::InternalUtilities::Json.convert_json_to_object(response)
|
50
|
+
end
|
51
|
+
|
52
|
+
# Creates a client secret to use with Stripe when adding a bank account.
|
53
|
+
def create_bank_account_client_secret(return_url = nil)
|
54
|
+
params = return_url ? { return_url: return_url } : nil
|
55
|
+
response = @client.make_request(:post, 'financial_connections_sessions', params, 'beta')
|
56
|
+
|
57
|
+
EasyPost::InternalUtilities::Json.convert_json_to_object(response)
|
58
|
+
end
|
44
59
|
end
|
@@ -3,7 +3,8 @@
|
|
3
3
|
class EasyPost::Services::CarrierAccount < EasyPost::Services::Service
|
4
4
|
CUSTOM_WORKFLOW_CARRIER_TYPES = %w[FedexAccount FedexSmartpostAccount].freeze
|
5
5
|
UPS_OAUTH_CARRIER_ACCOUNT_TYPES = %w[UpsAccount UpsMailInnovationsAccount UpsSurepostAccount].freeze
|
6
|
-
|
6
|
+
CARRIER_ACCOUNT_TYPES_WITH_CUSTOM_OAUTH = %w[AmazonShippingAccount].freeze
|
7
|
+
MODEL_CLASS = EasyPost::Models::CarrierAccount # :nodoc:
|
7
8
|
|
8
9
|
# Create a carrier account
|
9
10
|
def create(params = {})
|
@@ -15,6 +16,8 @@ class EasyPost::Services::CarrierAccount < EasyPost::Services::Service
|
|
15
16
|
'carrier_accounts/register'
|
16
17
|
elsif UPS_OAUTH_CARRIER_ACCOUNT_TYPES.include?(carrier_account_type)
|
17
18
|
'ups_oauth_registrations'
|
19
|
+
elsif CARRIER_ACCOUNT_TYPES_WITH_CUSTOM_OAUTH.include?(carrier_account_type)
|
20
|
+
'carrier_accounts/register_oauth'
|
18
21
|
else
|
19
22
|
'carrier_accounts'
|
20
23
|
end
|
@@ -63,6 +66,8 @@ class EasyPost::Services::CarrierAccount < EasyPost::Services::Service
|
|
63
66
|
def select_top_layer_key(carrier_account_type)
|
64
67
|
if UPS_OAUTH_CARRIER_ACCOUNT_TYPES.include?(carrier_account_type)
|
65
68
|
'ups_oauth_registrations'
|
69
|
+
elsif CARRIER_ACCOUNT_TYPES_WITH_CUSTOM_OAUTH.include?(carrier_account_type)
|
70
|
+
'carrier_account_oauth_registrations'
|
66
71
|
else
|
67
72
|
'carrier_account'
|
68
73
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
class EasyPost::Services::ReferralCustomer < EasyPost::Services::Service
|
4
|
-
MODEL_CLASS = EasyPost::Models::User
|
4
|
+
MODEL_CLASS = EasyPost::Models::User # :nodoc:
|
5
5
|
|
6
6
|
# Create a referral customer. This function requires the Partner User's API key.
|
7
7
|
def create(params = {})
|
@@ -40,7 +40,7 @@ class EasyPost::Services::ReferralCustomer < EasyPost::Services::Service
|
|
40
40
|
all(params)
|
41
41
|
end
|
42
42
|
|
43
|
-
# Add credit card to a
|
43
|
+
# Add a credit card to EasyPost for a ReferralCustomer without needing a Stripe account. This function requires the ReferralCustomer User's API key.
|
44
44
|
def add_credit_card(referral_api_key, number, expiration_month, expiration_year, cvc, priority = 'primary')
|
45
45
|
easypost_stripe_api_key = retrieve_easypost_stripe_api_key
|
46
46
|
|
@@ -59,6 +59,41 @@ class EasyPost::Services::ReferralCustomer < EasyPost::Services::Service
|
|
59
59
|
create_easypost_credit_card(referral_api_key, stripe_credit_card_token, priority)
|
60
60
|
end
|
61
61
|
|
62
|
+
# Add a credit card to EasyPost for a ReferralCustomer with a payment method ID from Stripe. This function requires the ReferralCustomer User's API key.
|
63
|
+
def add_credit_card_from_stripe(referral_api_key, payment_method_id, priority = 'primary')
|
64
|
+
params = {
|
65
|
+
credit_card: {
|
66
|
+
payment_method_id: payment_method_id,
|
67
|
+
priority: priority,
|
68
|
+
},
|
69
|
+
}
|
70
|
+
referral_client = EasyPost::Client.new(api_key: referral_api_key)
|
71
|
+
response = referral_client.make_request(
|
72
|
+
:post,
|
73
|
+
'credit_cards',
|
74
|
+
params,
|
75
|
+
)
|
76
|
+
|
77
|
+
EasyPost::InternalUtilities::Json.convert_json_to_object(response)
|
78
|
+
end
|
79
|
+
|
80
|
+
# Add a bank account to EasyPost for a ReferralCustomer. This function requires the ReferralCustomer User's API key.
|
81
|
+
def add_bank_account_from_stripe(referral_api_key, financial_connections_id, mandate_data, priority = 'primary')
|
82
|
+
params = {
|
83
|
+
financial_connections_id: financial_connections_id,
|
84
|
+
mandate_data: mandate_data,
|
85
|
+
priority: priority,
|
86
|
+
}
|
87
|
+
referral_client = EasyPost::Client.new(api_key: referral_api_key)
|
88
|
+
response = referral_client.make_request(
|
89
|
+
:post,
|
90
|
+
'bank_accounts',
|
91
|
+
params,
|
92
|
+
)
|
93
|
+
|
94
|
+
EasyPost::InternalUtilities::Json.convert_json_to_object(response)
|
95
|
+
end
|
96
|
+
|
62
97
|
private
|
63
98
|
|
64
99
|
# Retrieve EasyPost's Stripe public API key.
|
@@ -1,12 +1,12 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
class EasyPost::Services::Report < EasyPost::Services::Service
|
4
|
-
MODEL_CLASS = EasyPost::Models::Report
|
4
|
+
MODEL_CLASS = EasyPost::Models::Report # :nodoc:
|
5
5
|
|
6
6
|
# Create a Report
|
7
7
|
def create(params = {})
|
8
8
|
unless params[:type]
|
9
|
-
raise
|
9
|
+
raise EasyPost::Errors::MISSING_REQUIRED_PARAMETER.new('type')
|
10
10
|
end
|
11
11
|
|
12
12
|
type = params.delete(:type)
|
@@ -26,7 +26,7 @@ class EasyPost::Services::Report < EasyPost::Services::Service
|
|
26
26
|
# Retrieve all Report objects
|
27
27
|
def all(params = {})
|
28
28
|
unless params[:type]
|
29
|
-
raise
|
29
|
+
raise EasyPost::Errors::MISSING_REQUIRED_PARAMETER.new('type')
|
30
30
|
end
|
31
31
|
|
32
32
|
type = params.delete(:type)
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
class EasyPost::Services::Tracker < EasyPost::Services::Service
|
4
|
-
MODEL_CLASS = EasyPost::Models::Tracker
|
4
|
+
MODEL_CLASS = EasyPost::Models::Tracker # :nodoc:
|
5
5
|
|
6
6
|
# Create a Tracker
|
7
7
|
def create(params = {})
|
@@ -29,15 +29,6 @@ class EasyPost::Services::Tracker < EasyPost::Services::Service
|
|
29
29
|
get_all_helper('trackers', MODEL_CLASS, params, filters)
|
30
30
|
end
|
31
31
|
|
32
|
-
# Create multiple Tracker objects in bulk.
|
33
|
-
# <b>DEPRECATED:</b> Please use <tt>create</tt> instead. This function will be removed in a future release.
|
34
|
-
def create_list(params = {})
|
35
|
-
wrapped_params = { 'trackers' => params }
|
36
|
-
|
37
|
-
@client.make_request(:post, 'trackers/create_list', wrapped_params)
|
38
|
-
true # This endpoint does not return a response so we return true here instead
|
39
|
-
end
|
40
|
-
|
41
32
|
# Get the next page of trackers.
|
42
33
|
def get_next_page(collection, page_size = nil)
|
43
34
|
raise EasyPost::Errors::EndOfPaginationError.new unless more_pages?(collection)
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
class EasyPost::Services::User < EasyPost::Services::Service
|
4
|
-
MODEL_CLASS = EasyPost::Models::User
|
4
|
+
MODEL_CLASS = EasyPost::Models::User # :nodoc:
|
5
5
|
|
6
6
|
# Create a child User.
|
7
7
|
def create(params = {})
|
@@ -39,42 +39,10 @@ class EasyPost::Services::User < EasyPost::Services::Service
|
|
39
39
|
true
|
40
40
|
end
|
41
41
|
|
42
|
-
# Retrieve a list of all ApiKey objects.
|
43
|
-
def all_api_keys
|
44
|
-
warn '[DEPRECATION] `all_api_keys` is deprecated. Please use `all` in the `api_key` service instead.'
|
45
|
-
response = @client.make_request(:get, 'api_keys')
|
46
|
-
|
47
|
-
EasyPost::InternalUtilities::Json.convert_json_to_object(response, EasyPost::Models::ApiKey)
|
48
|
-
end
|
49
|
-
|
50
|
-
# Retrieve a list of ApiKey objects (works for the authenticated user or a child user).
|
51
|
-
def api_keys(id)
|
52
|
-
warn '[DEPRECATION] `api_keys` is deprecated.
|
53
|
-
Please use `retrieve_api_keys_for_user` in the `api_key` service instead.'
|
54
|
-
|
55
|
-
api_keys = all_api_keys
|
56
|
-
|
57
|
-
if api_keys.id == id
|
58
|
-
# This function was called on the authenticated user
|
59
|
-
my_api_keys = api_keys.keys
|
60
|
-
else
|
61
|
-
# This function was called on a child user (authenticated as parent, only return this child user's details).
|
62
|
-
my_api_keys = []
|
63
|
-
api_keys.children.each do |child|
|
64
|
-
if child.id == id
|
65
|
-
my_api_keys = child.keys
|
66
|
-
break
|
67
|
-
end
|
68
|
-
end
|
69
|
-
end
|
70
|
-
|
71
|
-
my_api_keys
|
72
|
-
end
|
73
|
-
|
74
42
|
# Update the Brand of a User.
|
75
43
|
def update_brand(id, params = {})
|
76
44
|
wrapped_params = { brand: params }
|
77
|
-
response = @client.make_request(:
|
45
|
+
response = @client.make_request(:patch, "users/#{id}/brand", wrapped_params)
|
78
46
|
|
79
47
|
EasyPost::InternalUtilities::Json.convert_json_to_object(response, EasyPost::Models::Brand)
|
80
48
|
end
|
metadata
CHANGED
@@ -1,15 +1,56 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: easypost
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 7.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- EasyPost Developers
|
8
|
-
autorequire:
|
9
8
|
bindir: bin
|
10
9
|
cert_chain: []
|
11
|
-
date:
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
12
11
|
dependencies:
|
12
|
+
- !ruby/object:Gem::Dependency
|
13
|
+
name: abbrev
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
15
|
+
requirements:
|
16
|
+
- - "~>"
|
17
|
+
- !ruby/object:Gem::Version
|
18
|
+
version: '0.1'
|
19
|
+
type: :development
|
20
|
+
prerelease: false
|
21
|
+
version_requirements: !ruby/object:Gem::Requirement
|
22
|
+
requirements:
|
23
|
+
- - "~>"
|
24
|
+
- !ruby/object:Gem::Version
|
25
|
+
version: '0.1'
|
26
|
+
- !ruby/object:Gem::Dependency
|
27
|
+
name: benchmark
|
28
|
+
requirement: !ruby/object:Gem::Requirement
|
29
|
+
requirements:
|
30
|
+
- - "~>"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0.4'
|
33
|
+
type: :development
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - "~>"
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '0.4'
|
40
|
+
- !ruby/object:Gem::Dependency
|
41
|
+
name: bigdecimal
|
42
|
+
requirement: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - "~>"
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '3'
|
47
|
+
type: :development
|
48
|
+
prerelease: false
|
49
|
+
version_requirements: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - "~>"
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '3'
|
13
54
|
- !ruby/object:Gem::Dependency
|
14
55
|
name: brakeman
|
15
56
|
requirement: !ruby/object:Gem::Requirement
|
@@ -30,98 +71,98 @@ dependencies:
|
|
30
71
|
requirements:
|
31
72
|
- - "~>"
|
32
73
|
- !ruby/object:Gem::Version
|
33
|
-
version: 2.
|
74
|
+
version: '2.8'
|
34
75
|
type: :development
|
35
76
|
prerelease: false
|
36
77
|
version_requirements: !ruby/object:Gem::Requirement
|
37
78
|
requirements:
|
38
79
|
- - "~>"
|
39
80
|
- !ruby/object:Gem::Version
|
40
|
-
version: 2.
|
81
|
+
version: '2.8'
|
41
82
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
83
|
+
name: logger
|
43
84
|
requirement: !ruby/object:Gem::Requirement
|
44
85
|
requirements:
|
45
86
|
- - "~>"
|
46
87
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
88
|
+
version: '1'
|
48
89
|
type: :development
|
49
90
|
prerelease: false
|
50
91
|
version_requirements: !ruby/object:Gem::Requirement
|
51
92
|
requirements:
|
52
93
|
- - "~>"
|
53
94
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
95
|
+
version: '1'
|
55
96
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
97
|
+
name: ostruct
|
57
98
|
requirement: !ruby/object:Gem::Requirement
|
58
99
|
requirements:
|
59
100
|
- - "~>"
|
60
101
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
102
|
+
version: '0.6'
|
62
103
|
type: :development
|
63
104
|
prerelease: false
|
64
105
|
version_requirements: !ruby/object:Gem::Requirement
|
65
106
|
requirements:
|
66
107
|
- - "~>"
|
67
108
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
109
|
+
version: '0.6'
|
69
110
|
- !ruby/object:Gem::Dependency
|
70
111
|
name: rdoc
|
71
112
|
requirement: !ruby/object:Gem::Requirement
|
72
113
|
requirements:
|
73
114
|
- - "~>"
|
74
115
|
- !ruby/object:Gem::Version
|
75
|
-
version: '6.
|
116
|
+
version: '6.12'
|
76
117
|
type: :development
|
77
118
|
prerelease: false
|
78
119
|
version_requirements: !ruby/object:Gem::Requirement
|
79
120
|
requirements:
|
80
121
|
- - "~>"
|
81
122
|
- !ruby/object:Gem::Version
|
82
|
-
version: '6.
|
123
|
+
version: '6.12'
|
83
124
|
- !ruby/object:Gem::Dependency
|
84
125
|
name: rspec
|
85
126
|
requirement: !ruby/object:Gem::Requirement
|
86
127
|
requirements:
|
87
128
|
- - "~>"
|
88
129
|
- !ruby/object:Gem::Version
|
89
|
-
version: '3.
|
130
|
+
version: '3.13'
|
90
131
|
type: :development
|
91
132
|
prerelease: false
|
92
133
|
version_requirements: !ruby/object:Gem::Requirement
|
93
134
|
requirements:
|
94
135
|
- - "~>"
|
95
136
|
- !ruby/object:Gem::Version
|
96
|
-
version: '3.
|
137
|
+
version: '3.13'
|
97
138
|
- !ruby/object:Gem::Dependency
|
98
139
|
name: rubocop
|
99
140
|
requirement: !ruby/object:Gem::Requirement
|
100
141
|
requirements:
|
101
|
-
- -
|
142
|
+
- - '='
|
102
143
|
- !ruby/object:Gem::Version
|
103
|
-
version: '1.
|
144
|
+
version: '1.72'
|
104
145
|
type: :development
|
105
146
|
prerelease: false
|
106
147
|
version_requirements: !ruby/object:Gem::Requirement
|
107
148
|
requirements:
|
108
|
-
- -
|
149
|
+
- - '='
|
109
150
|
- !ruby/object:Gem::Version
|
110
|
-
version: '1.
|
151
|
+
version: '1.72'
|
111
152
|
- !ruby/object:Gem::Dependency
|
112
153
|
name: rubocop-rspec
|
113
154
|
requirement: !ruby/object:Gem::Requirement
|
114
155
|
requirements:
|
115
156
|
- - '='
|
116
157
|
- !ruby/object:Gem::Version
|
117
|
-
version: '2.
|
158
|
+
version: '2.31'
|
118
159
|
type: :development
|
119
160
|
prerelease: false
|
120
161
|
version_requirements: !ruby/object:Gem::Requirement
|
121
162
|
requirements:
|
122
163
|
- - '='
|
123
164
|
- !ruby/object:Gem::Version
|
124
|
-
version: '2.
|
165
|
+
version: '2.31'
|
125
166
|
- !ruby/object:Gem::Dependency
|
126
167
|
name: simplecov
|
127
168
|
requirement: !ruby/object:Gem::Requirement
|
@@ -156,46 +197,45 @@ dependencies:
|
|
156
197
|
requirements:
|
157
198
|
- - "~>"
|
158
199
|
- !ruby/object:Gem::Version
|
159
|
-
version: 1.4
|
200
|
+
version: '1.4'
|
160
201
|
type: :development
|
161
202
|
prerelease: false
|
162
203
|
version_requirements: !ruby/object:Gem::Requirement
|
163
204
|
requirements:
|
164
205
|
- - "~>"
|
165
206
|
- !ruby/object:Gem::Version
|
166
|
-
version: 1.4
|
207
|
+
version: '1.4'
|
167
208
|
- !ruby/object:Gem::Dependency
|
168
209
|
name: vcr
|
169
210
|
requirement: !ruby/object:Gem::Requirement
|
170
211
|
requirements:
|
171
212
|
- - "~>"
|
172
213
|
- !ruby/object:Gem::Version
|
173
|
-
version: '6.
|
214
|
+
version: '6.3'
|
174
215
|
type: :development
|
175
216
|
prerelease: false
|
176
217
|
version_requirements: !ruby/object:Gem::Requirement
|
177
218
|
requirements:
|
178
219
|
- - "~>"
|
179
220
|
- !ruby/object:Gem::Version
|
180
|
-
version: '6.
|
221
|
+
version: '6.3'
|
181
222
|
- !ruby/object:Gem::Dependency
|
182
223
|
name: webmock
|
183
224
|
requirement: !ruby/object:Gem::Requirement
|
184
225
|
requirements:
|
185
226
|
- - "~>"
|
186
227
|
- !ruby/object:Gem::Version
|
187
|
-
version: '3.
|
228
|
+
version: '3.25'
|
188
229
|
type: :development
|
189
230
|
prerelease: false
|
190
231
|
version_requirements: !ruby/object:Gem::Requirement
|
191
232
|
requirements:
|
192
233
|
- - "~>"
|
193
234
|
- !ruby/object:Gem::Version
|
194
|
-
version: '3.
|
235
|
+
version: '3.25'
|
195
236
|
description: Client library for accessing the EasyPost shipping API via Ruby.
|
196
237
|
email: oss@easypost.com
|
197
|
-
executables:
|
198
|
-
- easypost-irb
|
238
|
+
executables: []
|
199
239
|
extensions: []
|
200
240
|
extra_rdoc_files: []
|
201
241
|
files:
|
@@ -213,10 +253,8 @@ files:
|
|
213
253
|
- LICENSE
|
214
254
|
- Makefile
|
215
255
|
- README.md
|
216
|
-
- Rakefile
|
217
256
|
- UPGRADE_GUIDE.md
|
218
257
|
- VERSION
|
219
|
-
- bin/easypost-irb
|
220
258
|
- easypost.gemspec
|
221
259
|
- lib/easypost.rb
|
222
260
|
- lib/easypost/client.rb
|
@@ -267,7 +305,6 @@ files:
|
|
267
305
|
- lib/easypost/models/customs_info.rb
|
268
306
|
- lib/easypost/models/customs_item.rb
|
269
307
|
- lib/easypost/models/end_shipper.rb
|
270
|
-
- lib/easypost/models/error.rb
|
271
308
|
- lib/easypost/models/event.rb
|
272
309
|
- lib/easypost/models/insurance.rb
|
273
310
|
- lib/easypost/models/order.rb
|
@@ -327,7 +364,6 @@ homepage: https://www.easypost.com/docs
|
|
327
364
|
licenses:
|
328
365
|
- MIT
|
329
366
|
metadata: {}
|
330
|
-
post_install_message:
|
331
367
|
rdoc_options: []
|
332
368
|
require_paths:
|
333
369
|
- lib
|
@@ -335,15 +371,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
335
371
|
requirements:
|
336
372
|
- - ">="
|
337
373
|
- !ruby/object:Gem::Version
|
338
|
-
version: '2.
|
374
|
+
version: '2.7'
|
339
375
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
340
376
|
requirements:
|
341
377
|
- - ">="
|
342
378
|
- !ruby/object:Gem::Version
|
343
379
|
version: '0'
|
344
380
|
requirements: []
|
345
|
-
rubygems_version: 3.
|
346
|
-
signing_key:
|
381
|
+
rubygems_version: 3.6.7
|
347
382
|
specification_version: 4
|
348
383
|
summary: EasyPost Ruby Client Library
|
349
384
|
test_files: []
|
data/Rakefile
DELETED
data/bin/easypost-irb
DELETED
@@ -1,9 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
# frozen_string_literal: true
|
3
|
-
|
4
|
-
irb = RUBY_PLATFORM =~ /(:?mswin|mingw)/ ? 'irb.bat' : 'irb'
|
5
|
-
|
6
|
-
libs = ' -r irb/completion'
|
7
|
-
libs << " -r #{"#{File.dirname(__FILE__)}/../lib/easypost"}"
|
8
|
-
puts 'Initializing EasyPost...'
|
9
|
-
exec "#{irb} #{libs} --simple-prompt"
|
@@ -1,21 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
# EasyPost Error object.
|
4
|
-
class EasyPost::Models::Error
|
5
|
-
attr_reader :code, :field, :message
|
6
|
-
|
7
|
-
# Initialize a new EasyPost Error
|
8
|
-
def initialize(code, field = nil, message = nil)
|
9
|
-
@code = code
|
10
|
-
@field = field
|
11
|
-
@message = message
|
12
|
-
end
|
13
|
-
|
14
|
-
# Create an EasyPost Error from an API error response.
|
15
|
-
def self.from_api_error_response(data)
|
16
|
-
code = data['code']
|
17
|
-
field = data['field'] || nil
|
18
|
-
message = data['message'] || nil
|
19
|
-
EasyPost::Models::Error.new(code, field, message)
|
20
|
-
end
|
21
|
-
end
|