easypost 5.3.0 → 6.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/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
|