easypost 6.4.0 → 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 +9 -15
- data/.github/workflows/release.yml +33 -0
- data/CHANGELOG.md +29 -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 +4 -4
- data/lib/easypost/connection.rb +1 -1
- data/lib/easypost/errors/api/api_error.rb +5 -5
- data/lib/easypost/http_client.rb +13 -4
- 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 +3 -35
- data/lib/easypost/services/webhook.rb +1 -1
- metadata +72 -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,12 +11,10 @@ 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
|
-
-
|
17
|
-
|
18
|
-
- name: Set up Ruby
|
19
|
-
uses: ruby/setup-ruby@v1
|
16
|
+
- uses: actions/checkout@v4
|
17
|
+
- uses: ruby/setup-ruby@v1
|
20
18
|
with:
|
21
19
|
ruby-version: ${{ matrix.rubyversion }}
|
22
20
|
rubygems: '3.3.0'
|
@@ -34,12 +32,10 @@ jobs:
|
|
34
32
|
lint:
|
35
33
|
runs-on: ubuntu-latest
|
36
34
|
steps:
|
37
|
-
-
|
38
|
-
|
39
|
-
- name: Set up Ruby
|
40
|
-
uses: ruby/setup-ruby@v1
|
35
|
+
- uses: actions/checkout@v4
|
36
|
+
- uses: ruby/setup-ruby@v1
|
41
37
|
with:
|
42
|
-
ruby-version: '3.
|
38
|
+
ruby-version: '3.4'
|
43
39
|
rubygems: '3.3.0'
|
44
40
|
bundler-cache: true
|
45
41
|
- name: Install Dependencies
|
@@ -52,12 +48,10 @@ jobs:
|
|
52
48
|
if: github.ref == 'refs/heads/master'
|
53
49
|
runs-on: ubuntu-latest
|
54
50
|
steps:
|
55
|
-
-
|
56
|
-
|
57
|
-
- name: Set up Ruby
|
58
|
-
uses: ruby/setup-ruby@v1
|
51
|
+
- uses: actions/checkout@v4
|
52
|
+
- uses: ruby/setup-ruby@v1
|
59
53
|
with:
|
60
|
-
ruby-version: '3.
|
54
|
+
ruby-version: '3.4'
|
61
55
|
rubygems: '3.3.0'
|
62
56
|
bundler-cache: true
|
63
57
|
- name: Install Dependencies
|
@@ -0,0 +1,33 @@
|
|
1
|
+
name: release
|
2
|
+
|
3
|
+
on:
|
4
|
+
release:
|
5
|
+
types: [published]
|
6
|
+
workflow_dispatch: ~
|
7
|
+
|
8
|
+
jobs:
|
9
|
+
release:
|
10
|
+
runs-on: ubuntu-latest
|
11
|
+
steps:
|
12
|
+
- uses: actions/checkout@v4
|
13
|
+
- uses: ruby/setup-ruby@v1
|
14
|
+
with:
|
15
|
+
ruby-version: '3.4'
|
16
|
+
rubygems: '3.3.0'
|
17
|
+
bundler-cache: true
|
18
|
+
- name: Build Package
|
19
|
+
run: make install build
|
20
|
+
- name: Publish to RubyGems
|
21
|
+
run: |
|
22
|
+
mkdir -p $HOME/.gem
|
23
|
+
touch $HOME/.gem/credentials
|
24
|
+
chmod 0600 $HOME/.gem/credentials
|
25
|
+
printf -- "---\n:rubygems_api_key: ${RUBYGEMS_API_KEY}\n" > $HOME/.gem/credentials
|
26
|
+
gem push dist/*.gem
|
27
|
+
env:
|
28
|
+
RUBYGEMS_API_KEY: '${{secrets.RUBYGEMS_API_KEY}}'
|
29
|
+
- name: Upload assets to release
|
30
|
+
uses: AButler/upload-release-assets@v3.0
|
31
|
+
with:
|
32
|
+
files: 'dist/*'
|
33
|
+
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,32 @@
|
|
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
|
+
|
25
|
+
## v6.4.1 (2024-08-09)
|
26
|
+
|
27
|
+
- Send GET requests as query parameters instead of JSON body parameters
|
28
|
+
- Fix get_next_page_of_children function for User service with correct filter key
|
29
|
+
|
3
30
|
## v6.4.0 (2024-07-24)
|
4
31
|
|
5
32
|
- Adds new `Claim` service for filing claims on EasyPost shipments and insurances
|
@@ -25,6 +52,8 @@
|
|
25
52
|
|
26
53
|
## v6.0.0 (2023-12-06)
|
27
54
|
|
55
|
+
See our [Upgrade Guide](UPGRADE_GUIDE.md#upgrading-from-5x-to-60) for more details.
|
56
|
+
|
28
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
|
29
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
|
30
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
@@ -74,17 +74,17 @@ class EasyPost::Client
|
|
74
74
|
#
|
75
75
|
# @param method [Symbol] the HTTP Verb (get, method, put, post, etc.)
|
76
76
|
# @param endpoint [String] URI path of the resource
|
77
|
-
# @param
|
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,
|
83
83
|
endpoint,
|
84
|
-
|
84
|
+
params = nil,
|
85
85
|
api_version = EasyPost::InternalUtilities::Constants::API_VERSION
|
86
86
|
)
|
87
|
-
response = @http_client.request(method, endpoint, nil,
|
87
|
+
response = @http_client.request(method, endpoint, nil, params, api_version)
|
88
88
|
|
89
89
|
potential_error = EasyPost::Errors::ApiError.handle_api_error(response)
|
90
90
|
raise potential_error unless potential_error.nil?
|
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/http_client.rb
CHANGED
@@ -14,26 +14,35 @@ class EasyPost::HttpClient
|
|
14
14
|
method,
|
15
15
|
path,
|
16
16
|
headers = nil,
|
17
|
-
|
17
|
+
params = nil,
|
18
18
|
api_version = EasyPost::InternalUtilities::Constants::API_VERSION
|
19
19
|
)
|
20
20
|
# Remove leading slash from path.
|
21
21
|
path = path[1..] if path[0] == '/'
|
22
22
|
|
23
|
-
uri = URI.parse("#{@base_url}/#{api_version}/#{path}")
|
24
23
|
headers = @config[:headers].merge(headers || {})
|
25
|
-
serialized_body = JSON.dump(EasyPost::InternalUtilities.objects_to_ids(body)) if body
|
26
24
|
open_timeout = @config[:open_timeout]
|
27
25
|
read_timeout = @config[:read_timeout]
|
28
26
|
request_timestamp = Time.now
|
29
27
|
request_uuid = SecureRandom.uuid
|
30
28
|
|
29
|
+
uri = URI.parse("#{@base_url}/#{api_version}/#{path}")
|
30
|
+
serialized_body = nil
|
31
|
+
|
32
|
+
if params
|
33
|
+
if [:get, :delete].include?(method)
|
34
|
+
uri.query = URI.encode_www_form(params)
|
35
|
+
elsif params
|
36
|
+
serialized_body = JSON.dump(EasyPost::InternalUtilities.objects_to_ids(params))
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
31
40
|
if EasyPost::Hooks.any_subscribers?(:request)
|
32
41
|
request_context = EasyPost::Hooks::RequestContext.new(
|
33
42
|
method: method,
|
34
43
|
path: uri.to_s,
|
35
44
|
headers: headers,
|
36
|
-
request_body:
|
45
|
+
request_body: serialized_body,
|
37
46
|
request_timestamp: request_timestamp,
|
38
47
|
request_uuid: request_uuid,
|
39
48
|
)
|
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
|
@@ -90,7 +58,7 @@ Please use `retrieve_api_keys_for_user` in the `api_key` service instead.'
|
|
90
58
|
def get_next_page_of_children(collection, page_size = nil)
|
91
59
|
raise EasyPost::Errors::EndOfPaginationError.new unless more_pages?(collection)
|
92
60
|
|
93
|
-
params = {
|
61
|
+
params = { after_id: collection.children.last.id }
|
94
62
|
params[:page_size] = page_size unless page_size.nil?
|
95
63
|
|
96
64
|
all_children(params)
|
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:
|
@@ -205,6 +245,7 @@ files:
|
|
205
245
|
- ".github/ISSUE_TEMPLATE/feature_request.yml"
|
206
246
|
- ".github/PULL_REQUEST_TEMPLATE.md"
|
207
247
|
- ".github/workflows/ci.yml"
|
248
|
+
- ".github/workflows/release.yml"
|
208
249
|
- ".gitignore"
|
209
250
|
- ".gitmodules"
|
210
251
|
- CHANGELOG.md
|
@@ -212,10 +253,8 @@ files:
|
|
212
253
|
- LICENSE
|
213
254
|
- Makefile
|
214
255
|
- README.md
|
215
|
-
- Rakefile
|
216
256
|
- UPGRADE_GUIDE.md
|
217
257
|
- VERSION
|
218
|
-
- bin/easypost-irb
|
219
258
|
- easypost.gemspec
|
220
259
|
- lib/easypost.rb
|
221
260
|
- lib/easypost/client.rb
|
@@ -266,7 +305,6 @@ files:
|
|
266
305
|
- lib/easypost/models/customs_info.rb
|
267
306
|
- lib/easypost/models/customs_item.rb
|
268
307
|
- lib/easypost/models/end_shipper.rb
|
269
|
-
- lib/easypost/models/error.rb
|
270
308
|
- lib/easypost/models/event.rb
|
271
309
|
- lib/easypost/models/insurance.rb
|
272
310
|
- lib/easypost/models/order.rb
|
@@ -326,7 +364,6 @@ homepage: https://www.easypost.com/docs
|
|
326
364
|
licenses:
|
327
365
|
- MIT
|
328
366
|
metadata: {}
|
329
|
-
post_install_message:
|
330
367
|
rdoc_options: []
|
331
368
|
require_paths:
|
332
369
|
- lib
|
@@ -334,15 +371,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
334
371
|
requirements:
|
335
372
|
- - ">="
|
336
373
|
- !ruby/object:Gem::Version
|
337
|
-
version: '2.
|
374
|
+
version: '2.7'
|
338
375
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
339
376
|
requirements:
|
340
377
|
- - ">="
|
341
378
|
- !ruby/object:Gem::Version
|
342
379
|
version: '0'
|
343
380
|
requirements: []
|
344
|
-
rubygems_version: 3.
|
345
|
-
signing_key:
|
381
|
+
rubygems_version: 3.6.7
|
346
382
|
specification_version: 4
|
347
383
|
summary: EasyPost Ruby Client Library
|
348
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
|