Skip to content

Commit 20cdc02

Browse files
authored
Merge pull request #332 from EasyPost/SHPE-484_verify_carrier
feat: add verify_carrier address param
2 parents 7d6e53c + 3b21d2a commit 20cdc02

6 files changed

+184
-5
lines changed

CHANGELOG.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
# CHANGELOG
22

3-
## v7.1.0 (2025-06-18)
3+
## v7.2.0 (2025-11-10)
44

55
- Adds support for `UspsShipAccount`
66
- Adds `tracker.retrieve_batch` function
7+
- Adds `verify_carrier` address param
78

89
## v7.1.0 (2025-06-18)
910

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
7.1.0
1+
7.2.0

lib/easypost/services/address.rb

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ class EasyPost::Services::Address < EasyPost::Services::Service
55

66
# Create an address.
77
def create(params = {})
8-
address = params.reject { |k, _| [:verify, :verify_strict].include?(k) }
8+
address = params.reject { |k, _| [:verify, :verify_strict, :verify_carrier].include?(k) }
99

1010
wrapped_params = { address: address }
1111

@@ -17,15 +17,24 @@ def create(params = {})
1717
wrapped_params[:verify_strict] = params[:verify_strict]
1818
end
1919

20+
if params[:verify_carrier]
21+
wrapped_params[:verify_carrier] = params[:verify_carrier]
22+
end
23+
2024
response = @client.make_request(:post, 'addresses', params)
2125

2226
EasyPost::InternalUtilities::Json.convert_json_to_object(response, MODEL_CLASS)
2327
end
2428

2529
# Create and verify an Address in one call.
2630
def create_and_verify(params = {})
27-
wrapped_params = {}
28-
wrapped_params[:address] = params
31+
address = params.reject { |k, _| [:verify_carrier].include?(k) }
32+
33+
wrapped_params = { address: address }
34+
35+
if params[:verify_carrier]
36+
wrapped_params[:verify_carrier] = params[:verify_carrier]
37+
end
2938

3039
response = @client.make_request(:post, 'addresses/create_and_verify', wrapped_params)
3140

spec/address_spec.rb

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,19 @@
7373
expect(address).to be_an_instance_of(EasyPost::Models::Address)
7474
expect(address.verifications.delivery.success).to be false
7575
end
76+
77+
it 'creates an address with verify_carrier param' do
78+
address_data = Fixture.incorrect_address
79+
80+
address_data[:verify] = true
81+
address_data[:verify_carrier] = 'UPS'
82+
address = client.address.create(address_data)
83+
84+
expect(address).to be_an_instance_of(EasyPost::Models::Address)
85+
86+
expect(address.verifications.delivery.errors[0].message).to eq('Address not found')
87+
expect(address.verifications.zip4.errors[0].message).to eq('Address not found')
88+
end
7689
end
7790

7891
describe '.retrieve' do
@@ -143,6 +156,18 @@
143156
rescue EasyPost::Errors::InvalidRequestError => e
144157
expect(e.message).to eq('Unable to verify address.')
145158
end
159+
160+
it 'creates and verifies an address with verify_carrier param' do
161+
address_data = Fixture.incorrect_address
162+
163+
address_data[:verify_carrier] = 'UPS'
164+
address = client.address.create_and_verify(address_data)
165+
166+
expect(address).to be_an_instance_of(EasyPost::Models::Address)
167+
168+
expect(address.verifications.delivery.errors[0].message).to eq('Address not found')
169+
expect(address.verifications.zip4.errors[0].message).to eq('Address not found')
170+
end
146171
end
147172

148173
describe '.verify' do

spec/cassettes/address/EasyPost_Services_Address_address_service_creates_an_address_with_verify_carrier_param.yml

Lines changed: 72 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

spec/cassettes/address/EasyPost_Services_Address_create_and_verify_creates_and_verifies_an_address_with_verify_carrier_param.yml

Lines changed: 72 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)