easypost 3.1.4 → 5.1.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/.gitattributes +9 -0
- data/.github/CODEOWNERS +2 -0
- data/.github/ISSUE_TEMPLATE/bug_report.yml +81 -0
- data/.github/ISSUE_TEMPLATE/feature_request.yml +37 -0
- data/.github/PULL_REQUEST_TEMPLATE.md +22 -0
- data/.github/workflows/ci.yml +71 -0
- data/.gitignore +27 -17
- data/.gitmodules +3 -0
- data/CHANGELOG.md +378 -0
- data/Gemfile +2 -0
- data/Makefile +70 -0
- data/README.md +193 -74
- data/Rakefile +2 -1
- data/UPGRADE_GUIDE.md +181 -0
- data/VERSION +1 -1
- data/bin/easypost-irb +5 -3
- data/easypost.gemspec +27 -20
- data/lib/easypost/client.rb +178 -0
- data/lib/easypost/connection.rb +64 -0
- data/lib/easypost/constants.rb +15 -0
- data/lib/easypost/errors/api/api_error.rb +108 -0
- data/lib/easypost/errors/api/bad_request_error.rb +6 -0
- data/lib/easypost/errors/api/connection_error.rb +6 -0
- data/lib/easypost/errors/api/external_api_error.rb +18 -0
- data/lib/easypost/errors/api/forbidden_error.rb +6 -0
- data/lib/easypost/errors/api/gateway_timeout_error.rb +6 -0
- data/lib/easypost/errors/api/internal_server_error.rb +6 -0
- data/lib/easypost/errors/api/invalid_request_error.rb +6 -0
- data/lib/easypost/errors/api/method_not_allowed_error.rb +6 -0
- data/lib/easypost/errors/api/not_found_error.rb +6 -0
- data/lib/easypost/errors/api/payment_error.rb +6 -0
- data/lib/easypost/errors/api/proxy_error.rb +6 -0
- data/lib/easypost/errors/api/rate_limit_error.rb +6 -0
- data/lib/easypost/errors/api/redirect_error.rb +6 -0
- data/lib/easypost/errors/api/retry_error.rb +6 -0
- data/lib/easypost/errors/api/service_unavailable_error.rb +6 -0
- data/lib/easypost/errors/api/ssl_error.rb +6 -0
- data/lib/easypost/errors/api/timeout_error.rb +6 -0
- data/lib/easypost/errors/api/unauthorized_error.rb +6 -0
- data/lib/easypost/errors/api/unknown_api_error.rb +6 -0
- data/lib/easypost/errors/easy_post_error.rb +7 -0
- data/lib/easypost/errors/end_of_pagination_error.rb +7 -0
- data/lib/easypost/errors/filtering_error.rb +4 -0
- data/lib/easypost/errors/invalid_object_error.rb +4 -0
- data/lib/easypost/errors/invalid_parameter_error.rb +11 -0
- data/lib/easypost/errors/missing_parameter_error.rb +9 -0
- data/lib/easypost/errors/signature_verification_error.rb +4 -0
- data/lib/easypost/errors.rb +32 -0
- data/lib/easypost/hooks/request_context.rb +16 -0
- data/lib/easypost/hooks/response_context.rb +23 -0
- data/lib/easypost/hooks.rb +34 -0
- data/lib/easypost/http_client.rb +117 -0
- data/lib/easypost/internal_utilities.rb +66 -0
- data/lib/easypost/models/address.rb +5 -0
- data/lib/easypost/models/api_key.rb +5 -0
- data/lib/easypost/models/base.rb +58 -0
- data/lib/easypost/models/batch.rb +5 -0
- data/lib/easypost/models/brand.rb +5 -0
- data/lib/easypost/models/carbon_offset.rb +5 -0
- data/lib/easypost/models/carrier_account.rb +5 -0
- data/lib/easypost/models/customs_info.rb +5 -0
- data/lib/easypost/models/customs_item.rb +5 -0
- data/lib/easypost/models/end_shipper.rb +5 -0
- data/lib/easypost/models/error.rb +21 -0
- data/lib/easypost/models/event.rb +5 -0
- data/lib/easypost/models/insurance.rb +6 -0
- data/lib/easypost/models/order.rb +9 -0
- data/lib/easypost/models/parcel.rb +5 -0
- data/lib/easypost/models/payload.rb +5 -0
- data/lib/easypost/models/payment_method.rb +5 -0
- data/lib/easypost/models/pickup.rb +9 -0
- data/lib/easypost/models/pickup_rate.rb +5 -0
- data/lib/easypost/models/postage_label.rb +5 -0
- data/lib/easypost/models/rate.rb +5 -0
- data/lib/easypost/models/referral.rb +5 -0
- data/lib/easypost/models/refund.rb +5 -0
- data/lib/easypost/models/report.rb +5 -0
- data/lib/easypost/models/scan_form.rb +6 -0
- data/lib/easypost/models/shipment.rb +10 -0
- data/lib/easypost/models/tax_identifier.rb +6 -0
- data/lib/easypost/models/tracker.rb +5 -0
- data/lib/easypost/models/user.rb +5 -0
- data/lib/easypost/models/webhook.rb +6 -0
- data/lib/easypost/models.rb +35 -0
- data/lib/easypost/services/address.rb +50 -0
- data/lib/easypost/services/api_key.rb +8 -0
- data/lib/easypost/services/base.rb +27 -0
- data/lib/easypost/services/batch.rb +53 -0
- data/lib/easypost/services/beta_rate.rb +12 -0
- data/lib/easypost/services/beta_referral_customer.rb +40 -0
- data/lib/easypost/services/billing.rb +75 -0
- data/lib/easypost/services/carrier_account.rb +44 -0
- data/lib/easypost/services/carrier_metadata.rb +22 -0
- data/lib/easypost/services/customs_info.rb +17 -0
- data/lib/easypost/services/customs_item.rb +15 -0
- data/lib/easypost/services/end_shipper.rb +31 -0
- data/lib/easypost/services/event.rb +32 -0
- data/lib/easypost/services/insurance.rb +26 -0
- data/lib/easypost/services/order.rb +30 -0
- data/lib/easypost/services/parcel.rb +16 -0
- data/lib/easypost/services/pickup.rb +40 -0
- data/lib/easypost/services/rate.rb +8 -0
- data/lib/easypost/services/referral_customer.rb +103 -0
- data/lib/easypost/services/refund.rb +26 -0
- data/lib/easypost/services/report.rb +42 -0
- data/lib/easypost/services/scan_form.rb +25 -0
- data/lib/easypost/services/shipment.rb +106 -0
- data/lib/easypost/services/tracker.rb +38 -0
- data/lib/easypost/services/user.rb +66 -0
- data/lib/easypost/services/webhook.rb +34 -0
- data/lib/easypost/services.rb +32 -0
- data/lib/easypost/util.rb +167 -103
- data/lib/easypost/utilities/constants.rb +5 -0
- data/lib/easypost/utilities/json.rb +23 -0
- data/lib/easypost/utilities/static_mapper.rb +73 -0
- data/lib/easypost/utilities/system.rb +36 -0
- data/lib/easypost/version.rb +3 -1
- data/lib/easypost.rb +21 -137
- metadata +253 -49
- data/.travis.yml +0 -9
- data/CHANGELOG +0 -207
- data/lib/easypost/address.rb +0 -60
- data/lib/easypost/batch.rb +0 -53
- data/lib/easypost/carrier_account.rb +0 -8
- data/lib/easypost/customs_info.rb +0 -9
- data/lib/easypost/customs_item.rb +0 -9
- data/lib/easypost/error.rb +0 -33
- data/lib/easypost/event.rb +0 -10
- data/lib/easypost/insurance.rb +0 -4
- data/lib/easypost/item.rb +0 -10
- data/lib/easypost/object.rb +0 -149
- data/lib/easypost/order.rb +0 -30
- data/lib/easypost/parcel.rb +0 -4
- data/lib/easypost/pickup.rb +0 -30
- data/lib/easypost/pickup_rate.rb +0 -5
- data/lib/easypost/postage_label.rb +0 -4
- data/lib/easypost/print_job.rb +0 -6
- data/lib/easypost/printer.rb +0 -28
- data/lib/easypost/rate.rb +0 -4
- data/lib/easypost/refund.rb +0 -4
- data/lib/easypost/report.rb +0 -31
- data/lib/easypost/resource.rb +0 -77
- data/lib/easypost/scan_form.rb +0 -8
- data/lib/easypost/shipment.rb +0 -120
- data/lib/easypost/tracker.rb +0 -15
- data/lib/easypost/user.rb +0 -47
- data/lib/easypost/webhook.rb +0 -31
data/CHANGELOG
DELETED
|
@@ -1,207 +0,0 @@
|
|
|
1
|
-
=== 3.1.4 2020-09-29
|
|
2
|
-
|
|
3
|
-
* Don't modify params passed into Address#create (#78; thanks @TheRusskiy)
|
|
4
|
-
* Don't modify `carriers` and `services` parameters to `Shipment.lowest_rate` (#71 / #103, thanks @vladvinnikov and @jurisgalang)
|
|
5
|
-
* When constructing an easypost object, convert the key to a string (#102; thanks @Geesu)
|
|
6
|
-
* Expose the raw HTTP response as `#http_body` on `EasyPost::Error` objects (#101; thanks @Geesu)
|
|
7
|
-
|
|
8
|
-
=== 3.1.3 2020-06-26
|
|
9
|
-
|
|
10
|
-
* Fix bug causing Authorization header to be included in User-Agent header. All users must upgrade.
|
|
11
|
-
|
|
12
|
-
=== 3.1.2 2020-06-24
|
|
13
|
-
|
|
14
|
-
* Bad gem push. New version required.
|
|
15
|
-
|
|
16
|
-
=== 3.1.1 2020-06-23
|
|
17
|
-
|
|
18
|
-
* Fix bug where EasyPost.http_config was invalid when not explicitly initialized.
|
|
19
|
-
|
|
20
|
-
=== 3.1.0 2020-06-23
|
|
21
|
-
|
|
22
|
-
* Add Shipment Invoice and Refund Report
|
|
23
|
-
* Remove dependencies on `RestClient` and `MultiJson`
|
|
24
|
-
* Remove some deprecated endpoints
|
|
25
|
-
|
|
26
|
-
=== 3.0.1 2018-05-17
|
|
27
|
-
|
|
28
|
-
* Enforce TLS certificate validity by default
|
|
29
|
-
|
|
30
|
-
=== 3.0.0 2018-02-09
|
|
31
|
-
|
|
32
|
-
* Require use of ruby ~> 2.0 and TLSv1.2
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
=== 2.7.3 2017-05-25
|
|
36
|
-
|
|
37
|
-
* Fix bug with introduced around certain JSON objects with IDs (thanks vladvinnikov!)
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
=== 2.7.2 2018-01-31
|
|
41
|
-
|
|
42
|
-
* Removed unused and unsupported code paths for Container model
|
|
43
|
-
* Removed unused and unsupported code path for Stamp and Barcode methods on the Shipment model
|
|
44
|
-
* Fixed a bug with non-model JSON object with an "id" key being treated as models and raising errors
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
=== 2.7.1 2017-05-25
|
|
48
|
-
|
|
49
|
-
* Allow reports to be retrieved without passing a type
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
=== 2.7.0 2017-04-04
|
|
53
|
-
|
|
54
|
-
* Changed Report CRUD signatures. requires report type to be passed
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
=== 2.6.2 2017-02-14
|
|
58
|
-
|
|
59
|
-
* Added get_rates method for Orders
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
=== 2.6.1 2017-01-19
|
|
63
|
-
|
|
64
|
-
* Updated create method for ScanForms
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
=== 2.6.0 2017-01-17
|
|
68
|
-
|
|
69
|
-
* Add basic CRUD methods for Webhooks
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
=== 2.5.0 2016-12-19
|
|
73
|
-
|
|
74
|
-
* Add prefixes to report in utils
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
=== 2.4.0 2016-12-08
|
|
78
|
-
|
|
79
|
-
* Add report resource to ruby client
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
=== 2.3.0 2016-11-25
|
|
83
|
-
|
|
84
|
-
* Updated dependencies to allow rest-client 2.0.0 and above
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
=== 2.2.0 2016-07-26
|
|
88
|
-
|
|
89
|
-
* Added standalone Insurance model
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
=== 2.1.11 2016-02-04
|
|
93
|
-
|
|
94
|
-
* Allowed user creation for top-level users
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
=== 2.1.10 2015-12-23
|
|
98
|
-
|
|
99
|
-
* Added verify and verify_strict params to Address.create
|
|
100
|
-
* Added Tracker.create_list and Tracker.all_updated for working with large
|
|
101
|
-
numbers of Trackers.
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
=== 2.1.9 2015-11-04
|
|
105
|
-
|
|
106
|
-
* Added new tests for Tracker.all
|
|
107
|
-
* Updated some old examples
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
=== 2.1.8 2015-10-21
|
|
111
|
-
|
|
112
|
-
* Added Cancel method for Pickups (thanks Ramie Blatt!)
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
=== 2.1.7 2015-10-05
|
|
116
|
-
|
|
117
|
-
* Fixed Address.create_and_verify and changed how errors are raised (thanks Dimitri Roche!)
|
|
118
|
-
* Require newer version of the multi_json package
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
=== 2.1.6 2015-06-10
|
|
122
|
-
|
|
123
|
-
* Added Address message accessor for backwards compatability
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
=== 2.1.5 2015-06-10
|
|
127
|
-
|
|
128
|
-
* Removed Address.message
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
=== 2.1.4 2015-06-03
|
|
132
|
-
|
|
133
|
-
* Add Printer and PrintJob resources.
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
=== 2.1.3 2015-04-30
|
|
137
|
-
|
|
138
|
-
* Bux fix, EasyPost::Errors no longer break with a nil json body.
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
=== 2.1.2 2015-04-29
|
|
142
|
-
|
|
143
|
-
* EasyPost::Errors now correctly parse field errors and error codes.
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
=== 2.1.1 2015-04-15
|
|
147
|
-
|
|
148
|
-
* CarrierAccount will now correctly save in-place modifications to credentials
|
|
149
|
-
* Nested variables should now be saved correctly across all models
|
|
150
|
-
* Fixed version numbering confusion (the previous version was 2.0.15, not 2.1.0)
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
=== 2.0.15 2015-04-15
|
|
154
|
-
|
|
155
|
-
* Added tracker to shipment buy response
|
|
156
|
-
* Updated tracker tests
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
=== 2.0.14 2015-04-15
|
|
160
|
-
|
|
161
|
-
* Added User and CarrierAccount models with CRUD functionality
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
=== 2.0.13 2014-10-30
|
|
165
|
-
|
|
166
|
-
* Added Pickup, PickupRate resources.
|
|
167
|
-
* Added ability to pass api_key to a few resources that were missing it.
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
=== 2.0.12 2014-07-07
|
|
171
|
-
|
|
172
|
-
* Added Item, Container, and Order resources.
|
|
173
|
-
* Fixed and added a lot of tests.
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
=== 2.0.11 2013-12-16
|
|
177
|
-
|
|
178
|
-
* Added Event.receive method for parsing events sent by webhook.
|
|
179
|
-
* Fixed tests to account for the tracking code returning and array of details instead of a Hash
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
=== 2.0.10 2013-10-03
|
|
183
|
-
|
|
184
|
-
* API Addition: Event resource added for webhook consumption.
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
=== 2.0.9 2013-09-19
|
|
188
|
-
|
|
189
|
-
* Interface Change: Changed batch.scan_form to batch.create_scan_form to support the ability to refer to scan forms associated to batches.
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
=== 2.0.3 2013-07-31
|
|
193
|
-
|
|
194
|
-
* API Addition: Tracker resource added. Trackers can be used to register any tracking code with EasyPost webhooks.
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
=== 2.0.2 2013-07-23
|
|
198
|
-
|
|
199
|
-
* API Addition: Shipment.track_with_code returns tracking details for any tracking code.
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
=== 2.0.1 2013-07-07
|
|
203
|
-
|
|
204
|
-
* API Addition: Address.create_and_verify returns a verified address in one step.
|
|
205
|
-
* API Addition: Shipment.label forces the creation of additional label formats (pdf, epl2, zpl).
|
|
206
|
-
* API Addition: Shipment.insure purchases insurance for a shipment.
|
|
207
|
-
* Library Update: Added the ability to negatively filter carriers and services with Shipment.lowest_rate (e.g. '!usps').
|
data/lib/easypost/address.rb
DELETED
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
module EasyPost
|
|
2
|
-
class Address < Resource
|
|
3
|
-
attr_accessor :message # Backwards compatibility
|
|
4
|
-
|
|
5
|
-
def self.create(params={}, api_key=nil)
|
|
6
|
-
url = self.url
|
|
7
|
-
|
|
8
|
-
address = params.reject { |k,_| k == :verify || k == :verify_strict }
|
|
9
|
-
|
|
10
|
-
if params[:verify] || params[:verify_strict]
|
|
11
|
-
verify = params[:verify] || []
|
|
12
|
-
verify_strict = params[:verify_strict] || []
|
|
13
|
-
|
|
14
|
-
url += "?"
|
|
15
|
-
verify.each do |verification|
|
|
16
|
-
url += "verify[]=#{verification}&"
|
|
17
|
-
end
|
|
18
|
-
verify_strict.each do |verification|
|
|
19
|
-
url += "verify_strict[]=#{verification}&"
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
response = EasyPost.make_request(:post, url, api_key, {address: address})
|
|
24
|
-
return Util.convert_to_easypost_object(response, api_key)
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
def self.create_and_verify(params={}, carrier=nil, api_key=nil)
|
|
28
|
-
wrapped_params = {}
|
|
29
|
-
wrapped_params[self.class_name().to_sym] = params
|
|
30
|
-
wrapped_params[:carrier] = carrier
|
|
31
|
-
response = EasyPost.make_request(:post, url + '/create_and_verify', api_key, wrapped_params)
|
|
32
|
-
|
|
33
|
-
if response.has_key?(:address)
|
|
34
|
-
if response.has_key?(:message)
|
|
35
|
-
response[:address][:message] = response[:message]
|
|
36
|
-
end
|
|
37
|
-
verified_address = EasyPost::Util::convert_to_easypost_object(response[:address], api_key)
|
|
38
|
-
return verified_address
|
|
39
|
-
else
|
|
40
|
-
raise Error.new("Unable to verify address.")
|
|
41
|
-
end
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
def verify(params={}, carrier=nil)
|
|
45
|
-
begin
|
|
46
|
-
response = EasyPost.make_request(:get, url + '/verify?carrier=' + String(carrier), @api_key, params)
|
|
47
|
-
rescue
|
|
48
|
-
raise Error.new("Unable to verify address.")
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
if response.has_key?("address")
|
|
52
|
-
return EasyPost::Util::convert_to_easypost_object(response["address"], api_key)
|
|
53
|
-
else
|
|
54
|
-
raise Error.new("Unable to verify address.")
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
return self
|
|
58
|
-
end
|
|
59
|
-
end
|
|
60
|
-
end
|
data/lib/easypost/batch.rb
DELETED
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
module EasyPost
|
|
2
|
-
class Batch < Resource
|
|
3
|
-
|
|
4
|
-
def self.create_and_buy(params={}, api_key=nil)
|
|
5
|
-
wrapped_params = {}
|
|
6
|
-
wrapped_params[self.class_name().to_sym] = params
|
|
7
|
-
response = EasyPost.make_request(:post, url + '/create_and_buy', api_key, wrapped_params)
|
|
8
|
-
|
|
9
|
-
return Util.convert_to_easypost_object(response, api_key)
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
def buy(params={})
|
|
13
|
-
response = EasyPost.make_request(:post, url + '/buy', @api_key, params)
|
|
14
|
-
self.refresh_from(response, @api_key, true)
|
|
15
|
-
|
|
16
|
-
return self
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
def label(params={})
|
|
20
|
-
response = EasyPost.make_request(:post, url + '/label', @api_key, params)
|
|
21
|
-
self.refresh_from(response, @api_key, true)
|
|
22
|
-
|
|
23
|
-
return self
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
def remove_shipments(params={})
|
|
27
|
-
response = EasyPost.make_request(:post, url + '/remove_shipments', @api_key, params)
|
|
28
|
-
self.refresh_from(response, @api_key, true)
|
|
29
|
-
|
|
30
|
-
return self
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
def add_shipments(params={})
|
|
34
|
-
response = EasyPost.make_request(:post, url + '/add_shipments', @api_key, params)
|
|
35
|
-
self.refresh_from(response, @api_key, true)
|
|
36
|
-
|
|
37
|
-
return self
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
def stamp_and_barcode_by_reference(params={})
|
|
41
|
-
response = EasyPost.make_request(:get, url + '/stamp_and_barcode_by_reference', @api_key, params)
|
|
42
|
-
|
|
43
|
-
return response
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
def create_scan_form(params={})
|
|
47
|
-
response = EasyPost.make_request(:post, url + '/scan_form', @api_key, params)
|
|
48
|
-
|
|
49
|
-
return response
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
end
|
|
53
|
-
end
|
data/lib/easypost/error.rb
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
module EasyPost
|
|
2
|
-
class Error < StandardError
|
|
3
|
-
attr_reader :message
|
|
4
|
-
attr_reader :status
|
|
5
|
-
attr_reader :http_status # deprecated
|
|
6
|
-
attr_reader :http_body
|
|
7
|
-
attr_reader :code
|
|
8
|
-
attr_reader :errors
|
|
9
|
-
|
|
10
|
-
def initialize(message = nil, status = nil, code = nil, errors = nil, http_body = nil)
|
|
11
|
-
@message = message
|
|
12
|
-
@status = status
|
|
13
|
-
@http_status = status # deprecated
|
|
14
|
-
@code = code
|
|
15
|
-
@errors = errors
|
|
16
|
-
@http_body = http_body
|
|
17
|
-
|
|
18
|
-
super(message)
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
def to_s
|
|
22
|
-
"#{code} (#{status}): #{message} #{errors}".strip
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
def ==(other)
|
|
26
|
-
other.is_a?(Error) &&
|
|
27
|
-
message == other.message &&
|
|
28
|
-
status == other.status &&
|
|
29
|
-
code == other.code &&
|
|
30
|
-
errors == other.errors
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
end
|
data/lib/easypost/event.rb
DELETED
data/lib/easypost/insurance.rb
DELETED
data/lib/easypost/item.rb
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
module EasyPost
|
|
2
|
-
class Item < Resource
|
|
3
|
-
|
|
4
|
-
def self.retrieve_reference(params={}, api_key=nil)
|
|
5
|
-
response = EasyPost.make_request(:get, url + '/retrieve_reference', api_key, params)
|
|
6
|
-
return EasyPost::Util::convert_to_easypost_object(response, api_key) if response
|
|
7
|
-
end
|
|
8
|
-
|
|
9
|
-
end
|
|
10
|
-
end
|
data/lib/easypost/object.rb
DELETED
|
@@ -1,149 +0,0 @@
|
|
|
1
|
-
require "set"
|
|
2
|
-
|
|
3
|
-
module EasyPost
|
|
4
|
-
class EasyPostObject
|
|
5
|
-
include Enumerable
|
|
6
|
-
|
|
7
|
-
attr_accessor :parent, :name, :api_key, :unsaved_values
|
|
8
|
-
@@immutable_values = Set.new([:api_key, :id])
|
|
9
|
-
|
|
10
|
-
def initialize(id=nil, api_key=nil, parent=nil, name=nil)
|
|
11
|
-
@api_key = api_key
|
|
12
|
-
@values = {}
|
|
13
|
-
@unsaved_values = Set.new
|
|
14
|
-
@transient_values = Set.new
|
|
15
|
-
@parent = parent
|
|
16
|
-
@name = name
|
|
17
|
-
self.id = id if id
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
def self.construct_from(values, api_key=nil, parent=nil, name=nil)
|
|
21
|
-
obj = self.new(values[:id], api_key, parent, name)
|
|
22
|
-
obj.refresh_from(values, api_key)
|
|
23
|
-
obj
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
def to_s(*args)
|
|
27
|
-
JSON.dump(@values)
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
def inspect
|
|
31
|
-
id_string = (self.respond_to?(:id) && !self.id.nil?) ? " id=#{self.id}" : ""
|
|
32
|
-
"#<#{self.class}:#{id_string}> JSON: " + to_json
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
def refresh_from(values, api_key, partial=false)
|
|
36
|
-
@api_key = api_key
|
|
37
|
-
|
|
38
|
-
added = Set.new(values.keys - @values.keys)
|
|
39
|
-
|
|
40
|
-
instance_eval do
|
|
41
|
-
add_accessors(added)
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
values.each do |k, v|
|
|
45
|
-
@values[k.to_s] = Util.convert_to_easypost_object(v, api_key, self, k)
|
|
46
|
-
@transient_values.delete(k)
|
|
47
|
-
@unsaved_values.delete(k)
|
|
48
|
-
end
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
def [](k)
|
|
52
|
-
@values[k.to_s]
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
def []=(k, v)
|
|
56
|
-
send(:"#{k}=", v)
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
def keys
|
|
60
|
-
@values.keys
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
def values
|
|
64
|
-
@values.values
|
|
65
|
-
end
|
|
66
|
-
|
|
67
|
-
def to_json(options = {})
|
|
68
|
-
JSON.dump(@values)
|
|
69
|
-
end
|
|
70
|
-
|
|
71
|
-
def as_json(options = {})
|
|
72
|
-
@values.as_json
|
|
73
|
-
end
|
|
74
|
-
|
|
75
|
-
def to_hash
|
|
76
|
-
@values
|
|
77
|
-
end
|
|
78
|
-
|
|
79
|
-
def each(&blk)
|
|
80
|
-
@values.each(&blk)
|
|
81
|
-
end
|
|
82
|
-
|
|
83
|
-
def id=(id)
|
|
84
|
-
@values[:id] = id
|
|
85
|
-
end
|
|
86
|
-
|
|
87
|
-
def id
|
|
88
|
-
@values[:id]
|
|
89
|
-
end
|
|
90
|
-
|
|
91
|
-
protected
|
|
92
|
-
|
|
93
|
-
def flatten_unsaved
|
|
94
|
-
values = {}
|
|
95
|
-
for key in @unsaved_values
|
|
96
|
-
value = @values[key]
|
|
97
|
-
|
|
98
|
-
values[key] = value
|
|
99
|
-
|
|
100
|
-
if value.is_a?(EasyPost::EasyPostObject)
|
|
101
|
-
values[key] = flatten_unsaved(value)
|
|
102
|
-
end
|
|
103
|
-
end
|
|
104
|
-
|
|
105
|
-
return values
|
|
106
|
-
end
|
|
107
|
-
|
|
108
|
-
def metaclass
|
|
109
|
-
class << self; self; end
|
|
110
|
-
end
|
|
111
|
-
|
|
112
|
-
def remove_accessors(keys)
|
|
113
|
-
metaclass.instance_eval do
|
|
114
|
-
keys.each do |k|
|
|
115
|
-
next if @@immutable_values.include?(k)
|
|
116
|
-
k_eq = :"#{k}="
|
|
117
|
-
remove_method(k) if method_defined?(k)
|
|
118
|
-
remove_method(k_eq) if method_defined?(k_eq)
|
|
119
|
-
end
|
|
120
|
-
end
|
|
121
|
-
end
|
|
122
|
-
|
|
123
|
-
def add_accessors(keys)
|
|
124
|
-
metaclass.instance_eval do
|
|
125
|
-
keys.each do |k|
|
|
126
|
-
next if @@immutable_values.include?(k)
|
|
127
|
-
k_eq = :"#{k}="
|
|
128
|
-
define_method(k) { @values[k] }
|
|
129
|
-
define_method(k_eq) do |v|
|
|
130
|
-
@values[k] = v
|
|
131
|
-
@unsaved_values.add(k)
|
|
132
|
-
|
|
133
|
-
cur = self
|
|
134
|
-
cur_parent = self.parent
|
|
135
|
-
param = {}
|
|
136
|
-
while cur_parent
|
|
137
|
-
if cur.name
|
|
138
|
-
cur_parent.unsaved_values.add(cur.name)
|
|
139
|
-
end
|
|
140
|
-
|
|
141
|
-
cur = cur_parent
|
|
142
|
-
cur_parent = cur.parent
|
|
143
|
-
end
|
|
144
|
-
end
|
|
145
|
-
end
|
|
146
|
-
end
|
|
147
|
-
end
|
|
148
|
-
end
|
|
149
|
-
end
|
data/lib/easypost/order.rb
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
module EasyPost
|
|
2
|
-
class Order < Resource
|
|
3
|
-
|
|
4
|
-
def get_rates(params={})
|
|
5
|
-
response = EasyPost.make_request(:get, url + '/rates', @api_key, params)
|
|
6
|
-
self.refresh_from(response, @api_key, true)
|
|
7
|
-
|
|
8
|
-
return self
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
def buy(params={})
|
|
12
|
-
if params.instance_of?(EasyPost::Rate)
|
|
13
|
-
temp = params.clone
|
|
14
|
-
params = {}
|
|
15
|
-
params[:carrier] = temp.carrier
|
|
16
|
-
params[:service] = temp.service
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
response = EasyPost.make_request(:post, url + '/buy', @api_key, params)
|
|
20
|
-
self.refresh_from(response, @api_key, true)
|
|
21
|
-
|
|
22
|
-
return self
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
def self.all(filters={}, api_key=nil)
|
|
26
|
-
raise NotImplementedError.new('Order.all not implemented.')
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
end
|
|
30
|
-
end
|
data/lib/easypost/parcel.rb
DELETED
data/lib/easypost/pickup.rb
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
module EasyPost
|
|
2
|
-
class Pickup < Resource
|
|
3
|
-
|
|
4
|
-
def buy(params={})
|
|
5
|
-
if params.instance_of?(EasyPost::PickupRate)
|
|
6
|
-
temp = params.clone
|
|
7
|
-
params = {}
|
|
8
|
-
params[:carrier] = temp.carrier
|
|
9
|
-
params[:service] = temp.service
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
response = EasyPost.make_request(:post, url + '/buy', @api_key, params)
|
|
13
|
-
self.refresh_from(response, @api_key, true)
|
|
14
|
-
|
|
15
|
-
return self
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
def cancel(params={})
|
|
19
|
-
response = EasyPost.make_request(:post, url + '/cancel', @api_key, params)
|
|
20
|
-
self.refresh_from(response, @api_key, true)
|
|
21
|
-
|
|
22
|
-
return self
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
def self.all(filters={}, api_key=nil)
|
|
26
|
-
raise NotImplementedError.new('Pickup.all not implemented.')
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
end
|
|
30
|
-
end
|
data/lib/easypost/pickup_rate.rb
DELETED
data/lib/easypost/print_job.rb
DELETED
data/lib/easypost/printer.rb
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
module EasyPost
|
|
2
|
-
class Printer < Resource
|
|
3
|
-
|
|
4
|
-
def job
|
|
5
|
-
response = EasyPost.make_request(
|
|
6
|
-
:get, url + '/jobs', @api_key
|
|
7
|
-
)
|
|
8
|
-
return EasyPost::Util::convert_to_easypost_object(response, api_key)
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
def print(params={})
|
|
12
|
-
if params.instance_of?(EasyPost::PostageLabel)
|
|
13
|
-
temp = params.clone
|
|
14
|
-
params = {}
|
|
15
|
-
params[:postage_label] = temp
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
response = EasyPost.make_request(
|
|
19
|
-
:post, url + '/print_postage_label', @api_key, params
|
|
20
|
-
)
|
|
21
|
-
return true
|
|
22
|
-
rescue
|
|
23
|
-
return false
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
|
data/lib/easypost/rate.rb
DELETED
data/lib/easypost/refund.rb
DELETED