easypost 5.3.0 → 6.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -0
- data/UPGRADE_GUIDE.md +31 -0
- data/VERSION +1 -1
- data/lib/easypost/client.rb +1 -3
- data/lib/easypost/models/base.rb +3 -1
- data/lib/easypost/models.rb +0 -1
- data/lib/easypost/services/address.rb +22 -7
- data/lib/easypost/services/api_key.rb +3 -1
- data/lib/easypost/services/base.rb +10 -13
- data/lib/easypost/services/batch.rb +23 -15
- data/lib/easypost/services/beta_rate.rb +2 -1
- data/lib/easypost/services/beta_referral_customer.rb +9 -5
- data/lib/easypost/services/billing.rb +4 -3
- data/lib/easypost/services/carrier_account.rb +9 -4
- data/lib/easypost/services/carrier_metadata.rb +2 -2
- data/lib/easypost/services/carrier_type.rb +3 -1
- data/lib/easypost/services/customs_info.rb +5 -2
- data/lib/easypost/services/customs_item.rb +6 -2
- data/lib/easypost/services/end_shipper.rb +10 -4
- data/lib/easypost/services/event.rb +18 -5
- data/lib/easypost/services/insurance.rb +15 -4
- data/lib/easypost/services/order.rb +12 -4
- data/lib/easypost/services/parcel.rb +6 -2
- data/lib/easypost/services/pickup.rb +21 -6
- data/lib/easypost/services/rate.rb +3 -1
- data/lib/easypost/services/referral_customer.rb +22 -6
- data/lib/easypost/services/refund.rb +15 -4
- data/lib/easypost/services/report.rb +18 -6
- data/lib/easypost/services/scan_form.rb +15 -4
- data/lib/easypost/services/shipment.rb +41 -26
- data/lib/easypost/services/tracker.rb +21 -9
- data/lib/easypost/services/user.rb +17 -6
- data/lib/easypost/services/webhook.rb +12 -4
- data/lib/easypost/utilities/constants.rb +1 -0
- data/lib/easypost/utilities/json.rb +7 -1
- data/lib/easypost/utilities/static_mapper.rb +0 -1
- metadata +2 -3
- data/lib/easypost/models/carbon_offset.rb +0 -5
@@ -6,17 +6,23 @@ class EasyPost::Services::Pickup < EasyPost::Services::Service
|
|
6
6
|
# Create a Pickup object
|
7
7
|
def create(params = {})
|
8
8
|
wrapped_params = { pickup: params }
|
9
|
-
@client.make_request(:post, 'pickups',
|
9
|
+
response = @client.make_request(:post, 'pickups', wrapped_params)
|
10
|
+
|
11
|
+
EasyPost::InternalUtilities::Json.convert_json_to_object(response, MODEL_CLASS)
|
10
12
|
end
|
11
13
|
|
12
14
|
# Retrieve a Pickup object
|
13
15
|
def retrieve(id)
|
14
|
-
@client.make_request(:get, "pickups/#{id}"
|
16
|
+
response = @client.make_request(:get, "pickups/#{id}")
|
17
|
+
|
18
|
+
EasyPost::InternalUtilities::Json.convert_json_to_object(response, MODEL_CLASS)
|
15
19
|
end
|
16
20
|
|
17
21
|
# Retrieve all Pickup objects
|
18
22
|
def all(params = {})
|
19
|
-
|
23
|
+
filters = { key: 'pickups' }
|
24
|
+
|
25
|
+
get_all_helper('pickups', MODEL_CLASS, params, filters)
|
20
26
|
end
|
21
27
|
|
22
28
|
# Buy a Pickup
|
@@ -25,16 +31,25 @@ class EasyPost::Services::Pickup < EasyPost::Services::Service
|
|
25
31
|
params = { carrier: params[:carrier], service: params[:service] }
|
26
32
|
end
|
27
33
|
|
28
|
-
@client.make_request(:post, "pickups/#{id}/buy",
|
34
|
+
response = @client.make_request(:post, "pickups/#{id}/buy", params)
|
35
|
+
|
36
|
+
EasyPost::InternalUtilities::Json.convert_json_to_object(response, MODEL_CLASS)
|
29
37
|
end
|
30
38
|
|
31
39
|
# Cancel a Pickup
|
32
40
|
def cancel(id, params = {})
|
33
|
-
@client.make_request(:post, "pickups/#{id}/cancel",
|
41
|
+
response = @client.make_request(:post, "pickups/#{id}/cancel", params)
|
42
|
+
|
43
|
+
EasyPost::InternalUtilities::Json.convert_json_to_object(response, MODEL_CLASS)
|
34
44
|
end
|
35
45
|
|
36
46
|
# Get next page of Pickups
|
37
47
|
def get_next_page(collection, page_size = nil)
|
38
|
-
|
48
|
+
raise EasyPost::Errors::EndOfPaginationError.new unless more_pages?(collection)
|
49
|
+
|
50
|
+
params = { before_id: collection.pickups.last.id }
|
51
|
+
params[:page_size] = page_size unless page_size.nil?
|
52
|
+
|
53
|
+
all(params)
|
39
54
|
end
|
40
55
|
end
|
@@ -3,6 +3,8 @@
|
|
3
3
|
class EasyPost::Services::Rate < EasyPost::Services::Service
|
4
4
|
# Retrieve a Rate
|
5
5
|
def retrieve(id)
|
6
|
-
@client.make_request(:get, "rates/#{id}"
|
6
|
+
response = @client.make_request(:get, "rates/#{id}")
|
7
|
+
|
8
|
+
EasyPost::InternalUtilities::Json.convert_json_to_object(response, EasyPost::Models::Rate)
|
7
9
|
end
|
8
10
|
end
|
@@ -5,7 +5,9 @@ class EasyPost::Services::ReferralCustomer < EasyPost::Services::Service
|
|
5
5
|
|
6
6
|
# Create a referral customer. This function requires the Partner User's API key.
|
7
7
|
def create(params = {})
|
8
|
-
@client.make_request(:post, 'referral_customers',
|
8
|
+
response = @client.make_request(:post, 'referral_customers', { user: params })
|
9
|
+
|
10
|
+
EasyPost::InternalUtilities::Json.convert_json_to_object(response, MODEL_CLASS)
|
9
11
|
end
|
10
12
|
|
11
13
|
# Update a referral customer. This function requires the Partner User's API key.
|
@@ -15,7 +17,7 @@ class EasyPost::Services::ReferralCustomer < EasyPost::Services::Service
|
|
15
17
|
email: email,
|
16
18
|
},
|
17
19
|
}
|
18
|
-
@client.make_request(:put, "referral_customers/#{user_id}",
|
20
|
+
@client.make_request(:put, "referral_customers/#{user_id}", wrapped_params)
|
19
21
|
|
20
22
|
# return true if API succeeds, else an error is throw if it fails.
|
21
23
|
true
|
@@ -23,12 +25,19 @@ class EasyPost::Services::ReferralCustomer < EasyPost::Services::Service
|
|
23
25
|
|
24
26
|
# Retrieve a list of referral customers. This function requires the Partner User's API key.
|
25
27
|
def all(params = {})
|
26
|
-
|
28
|
+
filters = { key: 'referral_customers' }
|
29
|
+
|
30
|
+
get_all_helper('referral_customers', MODEL_CLASS, params, filters)
|
27
31
|
end
|
28
32
|
|
29
33
|
# Get the next page of referral customers.
|
30
34
|
def get_next_page(collection, page_size = nil)
|
31
|
-
|
35
|
+
raise EasyPost::Errors::EndOfPaginationError.new unless more_pages?(collection)
|
36
|
+
|
37
|
+
params = { before_id: collection.referral_customers.last.id }
|
38
|
+
params[:page_size] = page_size unless page_size.nil?
|
39
|
+
|
40
|
+
all(params)
|
32
41
|
end
|
33
42
|
|
34
43
|
# Add credit card to a referral customer. This function requires the ReferralCustomer Customer's API key.
|
@@ -54,7 +63,7 @@ class EasyPost::Services::ReferralCustomer < EasyPost::Services::Service
|
|
54
63
|
|
55
64
|
# Retrieve EasyPost's Stripe public API key.
|
56
65
|
def retrieve_easypost_stripe_api_key
|
57
|
-
response = @client.make_request(:get, 'partners/stripe_public_key',
|
66
|
+
response = @client.make_request(:get, 'partners/stripe_public_key', nil, 'beta')
|
58
67
|
response['public_key']
|
59
68
|
end
|
60
69
|
|
@@ -98,6 +107,13 @@ class EasyPost::Services::ReferralCustomer < EasyPost::Services::Service
|
|
98
107
|
},
|
99
108
|
}
|
100
109
|
referral_client = EasyPost::Client.new(api_key: referral_api_key)
|
101
|
-
referral_client.make_request(
|
110
|
+
response = referral_client.make_request(
|
111
|
+
:post,
|
112
|
+
'credit_cards',
|
113
|
+
wrapped_params,
|
114
|
+
'beta',
|
115
|
+
)
|
116
|
+
|
117
|
+
EasyPost::InternalUtilities::Json.convert_json_to_object(response)
|
102
118
|
end
|
103
119
|
end
|
@@ -6,21 +6,32 @@ class EasyPost::Services::Refund < EasyPost::Services::Service
|
|
6
6
|
# Create a Refund object
|
7
7
|
def create(params = {})
|
8
8
|
wrapped_params = { refund: params }
|
9
|
-
@client.make_request(:post, 'refunds',
|
9
|
+
response = @client.make_request(:post, 'refunds', wrapped_params)
|
10
|
+
|
11
|
+
EasyPost::InternalUtilities::Json.convert_json_to_object(response, MODEL_CLASS)
|
10
12
|
end
|
11
13
|
|
12
14
|
# Retrieve a Refund object
|
13
15
|
def retrieve(id)
|
14
|
-
@client.make_request(:get, "refunds/#{id}"
|
16
|
+
response = @client.make_request(:get, "refunds/#{id}")
|
17
|
+
|
18
|
+
EasyPost::InternalUtilities::Json.convert_json_to_object(response, MODEL_CLASS)
|
15
19
|
end
|
16
20
|
|
17
21
|
# Retrieve all Refund objects
|
18
22
|
def all(params = {})
|
19
|
-
|
23
|
+
filters = { key: 'refunds' }
|
24
|
+
|
25
|
+
get_all_helper('refunds', MODEL_CLASS, params, filters)
|
20
26
|
end
|
21
27
|
|
22
28
|
# Get the next page of refunds
|
23
29
|
def get_next_page(collection, page_size = nil)
|
24
|
-
|
30
|
+
raise EasyPost::Errors::EndOfPaginationError.new unless more_pages?(collection)
|
31
|
+
|
32
|
+
params = { before_id: collection.refunds.last.id }
|
33
|
+
params[:page_size] = page_size unless page_size.nil?
|
34
|
+
|
35
|
+
all(params)
|
25
36
|
end
|
26
37
|
end
|
@@ -11,13 +11,16 @@ class EasyPost::Services::Report < EasyPost::Services::Service
|
|
11
11
|
|
12
12
|
type = params.delete(:type)
|
13
13
|
url = "reports/#{type}"
|
14
|
+
response = @client.make_request(:post, url, params)
|
14
15
|
|
15
|
-
|
16
|
+
EasyPost::InternalUtilities::Json.convert_json_to_object(response, MODEL_CLASS)
|
16
17
|
end
|
17
18
|
|
18
19
|
# Retrieve a Report
|
19
20
|
def retrieve(id)
|
20
|
-
@client.make_request(:get, "reports/#{id}"
|
21
|
+
response = @client.make_request(:get, "reports/#{id}")
|
22
|
+
|
23
|
+
EasyPost::InternalUtilities::Json.convert_json_to_object(response, MODEL_CLASS)
|
21
24
|
end
|
22
25
|
|
23
26
|
# Retrieve all Report objects
|
@@ -27,16 +30,25 @@ class EasyPost::Services::Report < EasyPost::Services::Service
|
|
27
30
|
end
|
28
31
|
|
29
32
|
type = params.delete(:type)
|
33
|
+
filters = {
|
34
|
+
key: 'reports',
|
35
|
+
type: type,
|
36
|
+
}
|
30
37
|
url = "reports/#{type}"
|
31
|
-
|
32
|
-
response = @client.make_request(:get, url, MODEL_CLASS, params)
|
38
|
+
response = get_all_helper(url, MODEL_CLASS, params, filters)
|
33
39
|
response.define_singleton_method(:type) { type }
|
40
|
+
|
34
41
|
response
|
35
42
|
end
|
36
43
|
|
37
44
|
# Get next page of Report objects
|
38
45
|
def get_next_page(collection, page_size = nil)
|
39
|
-
|
40
|
-
|
46
|
+
raise EasyPost::Errors::EndOfPaginationError.new unless more_pages?(collection)
|
47
|
+
|
48
|
+
params = { before_id: collection.reports.last.id }
|
49
|
+
params[:page_size] = page_size unless page_size.nil?
|
50
|
+
params.merge!(collection[EasyPost::InternalUtilities::Constants::FILTERS_KEY]).delete(:key)
|
51
|
+
|
52
|
+
all(params)
|
41
53
|
end
|
42
54
|
end
|
@@ -5,21 +5,32 @@ class EasyPost::Services::ScanForm < EasyPost::Services::Service
|
|
5
5
|
|
6
6
|
# Create a ScanForm.
|
7
7
|
def create(params = {})
|
8
|
-
@client.make_request(:post, 'scan_forms',
|
8
|
+
response = @client.make_request(:post, 'scan_forms', params)
|
9
|
+
|
10
|
+
EasyPost::InternalUtilities::Json.convert_json_to_object(response, MODEL_CLASS)
|
9
11
|
end
|
10
12
|
|
11
13
|
# Retrieve a ScanForm.
|
12
14
|
def retrieve(id)
|
13
|
-
@client.make_request(:get, "scan_forms/#{id}"
|
15
|
+
response = @client.make_request(:get, "scan_forms/#{id}")
|
16
|
+
|
17
|
+
EasyPost::InternalUtilities::Json.convert_json_to_object(response, MODEL_CLASS)
|
14
18
|
end
|
15
19
|
|
16
20
|
# Retrieve a list of ScanForms
|
17
21
|
def all(params = {})
|
18
|
-
|
22
|
+
filters = { key: 'scan_forms' }
|
23
|
+
|
24
|
+
get_all_helper('scan_forms', MODEL_CLASS, params, filters)
|
19
25
|
end
|
20
26
|
|
21
27
|
# Get the next page of ScanForms.
|
22
28
|
def get_next_page(collection, page_size = nil)
|
23
|
-
|
29
|
+
raise EasyPost::Errors::EndOfPaginationError.new unless more_pages?(collection)
|
30
|
+
|
31
|
+
params = { before_id: collection.scan_forms.last.id }
|
32
|
+
params[:page_size] = page_size unless page_size.nil?
|
33
|
+
|
34
|
+
all(params)
|
24
35
|
end
|
25
36
|
end
|
@@ -6,76 +6,89 @@ class EasyPost::Services::Shipment < EasyPost::Services::Service
|
|
6
6
|
MODEL_CLASS = EasyPost::Models::Shipment
|
7
7
|
|
8
8
|
# Create a Shipment.
|
9
|
-
def create(params = {}
|
10
|
-
wrapped_params = {
|
11
|
-
|
12
|
-
carbon_offset: with_carbon_offset,
|
13
|
-
}
|
9
|
+
def create(params = {})
|
10
|
+
wrapped_params = { shipment: params }
|
11
|
+
response = @client.make_request(:post, 'shipments', wrapped_params)
|
14
12
|
|
15
|
-
|
13
|
+
EasyPost::InternalUtilities::Json.convert_json_to_object(response, MODEL_CLASS)
|
16
14
|
end
|
17
15
|
|
18
16
|
# Retrieve a Shipment.
|
19
17
|
def retrieve(id)
|
20
|
-
@client.make_request(:get, "shipments/#{id}"
|
18
|
+
response = @client.make_request(:get, "shipments/#{id}")
|
19
|
+
|
20
|
+
EasyPost::InternalUtilities::Json.convert_json_to_object(response, MODEL_CLASS)
|
21
21
|
end
|
22
22
|
|
23
23
|
# Retrieve a list of Shipments
|
24
24
|
def all(params = {})
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
25
|
+
filters = {
|
26
|
+
key: 'shipments',
|
27
|
+
purchased: params[:purchased],
|
28
|
+
include_children: params[:include_children],
|
29
|
+
}
|
30
|
+
|
31
|
+
get_all_helper('shipments', MODEL_CLASS, params, filters)
|
29
32
|
end
|
30
33
|
|
31
34
|
# Get the next page of shipments.
|
32
35
|
def get_next_page(collection, page_size = nil)
|
33
|
-
|
36
|
+
raise EasyPost::Errors::EndOfPaginationError.new unless more_pages?(collection)
|
37
|
+
|
38
|
+
params = { before_id: collection.shipments.last.id }
|
39
|
+
params[:page_size] = page_size unless page_size.nil?
|
40
|
+
params.merge!(collection[EasyPost::InternalUtilities::Constants::FILTERS_KEY]).delete(:key)
|
41
|
+
|
42
|
+
all(params)
|
34
43
|
end
|
35
44
|
|
36
45
|
# Regenerate the rates of a Shipment.
|
37
|
-
def regenerate_rates(id
|
38
|
-
|
46
|
+
def regenerate_rates(id)
|
47
|
+
response = @client.make_request(:post, "shipments/#{id}/rerate")
|
39
48
|
|
40
|
-
|
49
|
+
EasyPost::InternalUtilities::Json.convert_json_to_object(response, MODEL_CLASS)
|
41
50
|
end
|
42
51
|
|
43
52
|
# Get the SmartRates of a Shipment.
|
44
53
|
def get_smart_rates(id)
|
45
|
-
@client.make_request(:get, "shipments/#{id}/smartrate"
|
54
|
+
response = @client.make_request(:get, "shipments/#{id}/smartrate")
|
55
|
+
|
56
|
+
EasyPost::InternalUtilities::Json.convert_json_to_object(response, MODEL_CLASS).result || []
|
46
57
|
end
|
47
58
|
|
48
59
|
# Buy a Shipment.
|
49
|
-
def buy(id, params = {},
|
60
|
+
def buy(id, params = {}, end_shipper_id = nil)
|
50
61
|
if params.instance_of?(EasyPost::Models::Rate)
|
51
62
|
params = { rate: params.clone }
|
52
63
|
end
|
53
64
|
|
54
|
-
params[:carbon_offset] = params[:with_carbon_offset] || with_carbon_offset
|
55
|
-
params.delete(:with_carbon_offset)
|
56
|
-
|
57
65
|
params[:end_shipper_id] = end_shipper_id if end_shipper_id
|
66
|
+
response = @client.make_request(:post, "shipments/#{id}/buy", params)
|
58
67
|
|
59
|
-
|
68
|
+
EasyPost::InternalUtilities::Json.convert_json_to_object(response, MODEL_CLASS)
|
60
69
|
end
|
61
70
|
|
62
71
|
# Insure a Shipment.
|
63
72
|
def insure(id, params = {})
|
64
73
|
params = { amount: params } if params.is_a?(Integer) || params.is_a?(Float)
|
74
|
+
response = @client.make_request(:post, "shipments/#{id}/insure", params)
|
65
75
|
|
66
|
-
|
76
|
+
EasyPost::InternalUtilities::Json.convert_json_to_object(response, MODEL_CLASS)
|
67
77
|
end
|
68
78
|
|
69
79
|
# Refund a Shipment.
|
70
80
|
def refund(id, params = {})
|
71
|
-
@client.make_request(:post, "shipments/#{id}/refund",
|
81
|
+
response = @client.make_request(:post, "shipments/#{id}/refund", params)
|
82
|
+
|
83
|
+
EasyPost::InternalUtilities::Json.convert_json_to_object(response, MODEL_CLASS)
|
72
84
|
end
|
73
85
|
|
74
86
|
# Convert the label format of a Shipment.
|
75
87
|
def label(id, params = {})
|
76
88
|
params = { file_format: params } if params.is_a?(String)
|
89
|
+
response = @client.make_request(:get, "shipments/#{id}/label", params)
|
77
90
|
|
78
|
-
|
91
|
+
EasyPost::InternalUtilities::Json.convert_json_to_object(response, MODEL_CLASS)
|
79
92
|
end
|
80
93
|
|
81
94
|
# Get the lowest SmartRate of a Shipment.
|
@@ -92,15 +105,17 @@ class EasyPost::Services::Shipment < EasyPost::Services::Service
|
|
92
105
|
wrapped_params = {
|
93
106
|
form: merged_params,
|
94
107
|
}
|
108
|
+
response = @client.make_request(:post, "shipments/#{id}/forms", wrapped_params)
|
95
109
|
|
96
|
-
|
110
|
+
EasyPost::InternalUtilities::Json.convert_json_to_object(response, MODEL_CLASS)
|
97
111
|
end
|
98
112
|
|
99
113
|
# Retrieves the estimated delivery date of each Rate via SmartRate.
|
100
114
|
def retrieve_estimated_delivery_date(id, planned_ship_date)
|
101
115
|
url = "shipments/#{id}/smartrate/delivery_date"
|
102
116
|
params = { planned_ship_date: planned_ship_date }
|
117
|
+
response = @client.make_request(:get, url, params)
|
103
118
|
|
104
|
-
|
119
|
+
EasyPost::InternalUtilities::Json.convert_json_to_object(response, MODEL_CLASS).rates
|
105
120
|
end
|
106
121
|
end
|
@@ -6,33 +6,45 @@ class EasyPost::Services::Tracker < EasyPost::Services::Service
|
|
6
6
|
# Create a Tracker
|
7
7
|
def create(params = {})
|
8
8
|
wrapped_params = { tracker: params }
|
9
|
+
response = @client.make_request(:post, 'trackers', wrapped_params)
|
9
10
|
|
10
|
-
|
11
|
+
EasyPost::InternalUtilities::Json.convert_json_to_object(response, MODEL_CLASS)
|
11
12
|
end
|
12
13
|
|
13
14
|
# Retrieve a Tracker
|
14
15
|
def retrieve(id)
|
15
|
-
@client.make_request(:get, "trackers/#{id}"
|
16
|
+
response = @client.make_request(:get, "trackers/#{id}")
|
17
|
+
|
18
|
+
EasyPost::InternalUtilities::Json.convert_json_to_object(response, MODEL_CLASS)
|
16
19
|
end
|
17
20
|
|
18
21
|
# Retrieve a list of Trackers
|
19
|
-
def all(params)
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
22
|
+
def all(params = {})
|
23
|
+
filters = {
|
24
|
+
key: 'trackers',
|
25
|
+
tracking_code: params[:tracking_code],
|
26
|
+
carrier: params[:carrier],
|
27
|
+
}
|
28
|
+
|
29
|
+
get_all_helper('trackers', MODEL_CLASS, params, filters)
|
24
30
|
end
|
25
31
|
|
26
32
|
# Create multiple Tracker objects in bulk.
|
27
33
|
def create_list(params = {})
|
28
34
|
wrapped_params = { 'trackers' => params }
|
29
35
|
|
30
|
-
@client.make_request(:post, 'trackers/create_list',
|
36
|
+
@client.make_request(:post, 'trackers/create_list', wrapped_params)
|
31
37
|
true # This endpoint does not return a response so we return true here instead
|
32
38
|
end
|
33
39
|
|
34
40
|
# Get the next page of trackers.
|
35
41
|
def get_next_page(collection, page_size = nil)
|
36
|
-
|
42
|
+
raise EasyPost::Errors::EndOfPaginationError.new unless more_pages?(collection)
|
43
|
+
|
44
|
+
params = { before_id: collection.trackers.last.id }
|
45
|
+
params[:page_size] = page_size unless page_size.nil?
|
46
|
+
params.merge!(collection[EasyPost::InternalUtilities::Constants::FILTERS_KEY]).delete(:key)
|
47
|
+
|
48
|
+
all(params)
|
37
49
|
end
|
38
50
|
end
|
@@ -5,22 +5,30 @@ class EasyPost::Services::User < EasyPost::Services::Service
|
|
5
5
|
|
6
6
|
# Create a child User.
|
7
7
|
def create(params = {})
|
8
|
-
@client.make_request(:post, 'users',
|
8
|
+
response = @client.make_request(:post, 'users', params)
|
9
|
+
|
10
|
+
EasyPost::InternalUtilities::Json.convert_json_to_object(response, MODEL_CLASS)
|
9
11
|
end
|
10
12
|
|
11
13
|
# Retrieve a user
|
12
14
|
def retrieve(id)
|
13
|
-
@client.make_request(:get, "users/#{id}"
|
15
|
+
response = @client.make_request(:get, "users/#{id}")
|
16
|
+
|
17
|
+
EasyPost::InternalUtilities::Json.convert_json_to_object(response, MODEL_CLASS)
|
14
18
|
end
|
15
19
|
|
16
20
|
# Retrieve the authenticated User.
|
17
21
|
def retrieve_me
|
18
|
-
@client.make_request(:get, 'users'
|
22
|
+
response = @client.make_request(:get, 'users')
|
23
|
+
|
24
|
+
EasyPost::InternalUtilities::Json.convert_json_to_object(response, MODEL_CLASS)
|
19
25
|
end
|
20
26
|
|
21
27
|
# Update a User
|
22
28
|
def update(id, params = {})
|
23
|
-
@client.make_request(:put, "users/#{id}",
|
29
|
+
response = @client.make_request(:put, "users/#{id}", params)
|
30
|
+
|
31
|
+
EasyPost::InternalUtilities::Json.convert_json_to_object(response, MODEL_CLASS)
|
24
32
|
end
|
25
33
|
|
26
34
|
# Delete a User
|
@@ -34,7 +42,9 @@ class EasyPost::Services::User < EasyPost::Services::Service
|
|
34
42
|
# Retrieve a list of all ApiKey objects.
|
35
43
|
def all_api_keys
|
36
44
|
warn '[DEPRECATION] `all_api_keys` is deprecated. Please use `all` in the `api_key` service instead.'
|
37
|
-
@client.make_request(:get, 'api_keys'
|
45
|
+
response = @client.make_request(:get, 'api_keys')
|
46
|
+
|
47
|
+
EasyPost::InternalUtilities::Json.convert_json_to_object(response, EasyPost::Models::ApiKey)
|
38
48
|
end
|
39
49
|
|
40
50
|
# Retrieve a list of ApiKey objects (works for the authenticated user or a child user).
|
@@ -64,7 +74,8 @@ Please use `retrieve_api_keys_for_user` in the `api_key` service instead.'
|
|
64
74
|
# Update the Brand of a User.
|
65
75
|
def update_brand(id, params = {})
|
66
76
|
wrapped_params = { brand: params }
|
77
|
+
response = @client.make_request(:get, "users/#{id}/brand", wrapped_params)
|
67
78
|
|
68
|
-
|
79
|
+
EasyPost::InternalUtilities::Json.convert_json_to_object(response, EasyPost::Models::Brand)
|
69
80
|
end
|
70
81
|
end
|
@@ -6,22 +6,30 @@ class EasyPost::Services::Webhook < EasyPost::Services::Service
|
|
6
6
|
# Create a Webhook.
|
7
7
|
def create(params = {})
|
8
8
|
wrapped_params = { webhook: params }
|
9
|
-
@client.make_request(:post, 'webhooks',
|
9
|
+
response = @client.make_request(:post, 'webhooks', wrapped_params)
|
10
|
+
|
11
|
+
EasyPost::InternalUtilities::Json.convert_json_to_object(response, MODEL_CLASS)
|
10
12
|
end
|
11
13
|
|
12
14
|
# Retrieve a Webhook
|
13
15
|
def retrieve(id)
|
14
|
-
@client.make_request(:get, "webhooks/#{id}"
|
16
|
+
response = @client.make_request(:get, "webhooks/#{id}")
|
17
|
+
|
18
|
+
EasyPost::InternalUtilities::Json.convert_json_to_object(response, MODEL_CLASS)
|
15
19
|
end
|
16
20
|
|
17
21
|
# Retrieve a list of Webhooks
|
18
22
|
def all(params = {})
|
19
|
-
|
23
|
+
filters = { 'key' => 'webhooks' }
|
24
|
+
|
25
|
+
get_all_helper('webhooks', MODEL_CLASS, params, filters)
|
20
26
|
end
|
21
27
|
|
22
28
|
# Update a Webhook.
|
23
29
|
def update(id, params = {})
|
24
|
-
@client.make_request(:patch, "webhooks/#{id}",
|
30
|
+
response = @client.make_request(:patch, "webhooks/#{id}", params)
|
31
|
+
|
32
|
+
EasyPost::InternalUtilities::Json.convert_json_to_object(response, MODEL_CLASS)
|
25
33
|
end
|
26
34
|
|
27
35
|
# Delete a Webhook.
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
module EasyPost::InternalUtilities::Json
|
4
4
|
def self.convert_json_to_object(data, cls = EasyPost::Models::EasyPostObject)
|
5
|
-
data =
|
5
|
+
data = parse_json(data) if data.is_a?(String) # Parse JSON to a Hash or Array if it's a string
|
6
6
|
if data.is_a?(Array)
|
7
7
|
# Deserialize array data into an array of objects
|
8
8
|
data.map { |i| convert_json_to_object(i, cls) }
|
@@ -13,6 +13,12 @@ module EasyPost::InternalUtilities::Json
|
|
13
13
|
# data is neither a Hash nor Array (but somehow was parsed as JSON? This should never happen)
|
14
14
|
data
|
15
15
|
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.parse_json(data)
|
19
|
+
return if data.nil?
|
20
|
+
|
21
|
+
JSON.parse(data)
|
16
22
|
rescue JSON::ParserError
|
17
23
|
data # Not JSON, return the original data (used mostly when dealing with final values like strings, booleans, etc.)
|
18
24
|
end
|
@@ -42,7 +42,6 @@ module EasyPost::InternalUtilities::StaticMapper
|
|
42
42
|
'BankAccount' => EasyPost::Models::PaymentMethod,
|
43
43
|
'Batch' => EasyPost::Models::Batch,
|
44
44
|
'Brand' => EasyPost::Models::Brand,
|
45
|
-
'CarbonOffset' => EasyPost::Models::CarbonOffset,
|
46
45
|
'CarrierAccount' => EasyPost::Models::CarrierAccount,
|
47
46
|
'CreditCard' => EasyPost::Models::PaymentMethod,
|
48
47
|
'CustomsInfo' => EasyPost::Models::CustomsInfo,
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: easypost
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 6.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- EasyPost Developers
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-12-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: brakeman
|
@@ -274,7 +274,6 @@ files:
|
|
274
274
|
- lib/easypost/models/base.rb
|
275
275
|
- lib/easypost/models/batch.rb
|
276
276
|
- lib/easypost/models/brand.rb
|
277
|
-
- lib/easypost/models/carbon_offset.rb
|
278
277
|
- lib/easypost/models/carrier_account.rb
|
279
278
|
- lib/easypost/models/carrier_type.rb
|
280
279
|
- lib/easypost/models/customs_info.rb
|