easypost 3.3.0 → 3.5.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: db8276b780ceb6bde1e8b72185385da6458cb152babd4bccf3b1f75e5da4af93
4
- data.tar.gz: 103f3173ab91f5521204aee15694a31a7bb61875a955967049342ca250f04813
3
+ metadata.gz: c893399d43b9432c0b6812c5649ab48ad2ad1c04b6373e7999cc8c1fdf22d82b
4
+ data.tar.gz: f98230c21010af6117011b0ddee1a1bda574a821fc5ae470a85e4961e72954ef
5
5
  SHA512:
6
- metadata.gz: 3b4bff8f08265b7821605dec9ea8ee2b8de3261975dbe860ee33aa0746bfb2238c615d527a8db9b51716886845229437f535e8d41e541285e04cf97102120f20
7
- data.tar.gz: e0828a81e8c006ba589fe899cff31d3fe67bbf6e77577c44224224bf818d4650ebe8c76fe6f014fd3d00330c4f9974d8f9dda5fe79ee90dadc45ceefb3cd6a10
6
+ metadata.gz: 1822930673f844b99cc6f53ea4c5564b54342590383433ee359f4c3420d56ddbd3cc166d4d2e1975b52a848c95d6854b1b0e79245e3a9b9660ee309a795f5b99
7
+ data.tar.gz: b7fa805a9b6cc8a65b3076828f9bd5740709475b4d63824d34dc4981c9ea779af1c9eff273d546e59c7e79d0b7002f9dbbd3353d5faad2911e6615495cbec6cc
@@ -1,221 +1,208 @@
1
- === 3.3.0 2021-06-10
1
+ # CHANGELOG
2
+
3
+ ## 3.5.1 2022-07-01
4
+
5
+ * Backports newer user-agent header
6
+
7
+ ## 3.5.0 2021-12-06
8
+
9
+ * Adds the `update_brand` method to the user object (closes #122)
10
+
11
+ ## 3.4.0 2021-07-13
12
+
13
+ * Removed deprecated `Item` object
14
+ * Sorted EasyPost Resources list
15
+ * Remove 2015-vintage experimental `all_updated` method on Tracker
16
+ * Fixes API key retrieval (#120, thanks @andychongyz)
17
+ * Adds `regenerate_rates` method for new rerate API
18
+ * Adds `deconstruct_keys` method to allow for pattern matching on EasyPost objects
19
+
20
+ ## 3.3.0 2021-06-10
2
21
 
3
22
  * Adds `SmartRate` functionality to the `Shipments` object (available by calling `get_smartrates` on a shipment)
4
23
  * Fix bug where `EasyPost::CarrierAccount.types` was hitting the wrong endpoint
5
24
 
6
- === 3.2.0 2021-01-14
25
+ ## 3.2.0 2021-01-14
7
26
 
8
27
  * Replace Travis CI with Github Actions
9
28
  * Add Ruby 3.0 to supported platforms (#110; thanks @maxwell)
10
29
 
11
- === 3.1.5 2020-12-16
30
+ ## 3.1.5 2020-12-16
12
31
 
13
32
  * Fix attribute lookup when manually constructing objects (#105; thanks @drewtempelmeyer)
14
33
  * Flatten class names and clean up some other style issues
15
34
  * Fix `EasyPost::Address.create_and_verify`, broken since 3.1.0 (#108; thanks @rajbirverma)
16
35
 
17
- === 3.1.4 2020-09-29
36
+ ## 3.1.4 2020-09-29
18
37
 
19
38
  * Don't modify params passed into Address#create (#78; thanks @TheRusskiy)
20
39
  * Don't modify `carriers` and `services` parameters to `Shipment.lowest_rate` (#71 / #103, thanks @vladvinnikov and @jurisgalang)
21
40
  * When constructing an easypost object, convert the key to a string (#102; thanks @Geesu)
22
41
  * Expose the raw HTTP response as `#http_body` on `EasyPost::Error` objects (#101; thanks @Geesu)
23
42
 
24
- === 3.1.3 2020-06-26
43
+ ## 3.1.3 2020-06-26
25
44
 
26
45
  * Fix bug causing Authorization header to be included in User-Agent header. All users must upgrade.
27
46
 
28
- === 3.1.2 2020-06-24
47
+ ## 3.1.2 2020-06-24
29
48
 
30
49
  * Bad gem push. New version required.
31
50
 
32
- === 3.1.1 2020-06-23
51
+ ## 3.1.1 2020-06-23
33
52
 
34
53
  * Fix bug where EasyPost.http_config was invalid when not explicitly initialized.
35
54
 
36
- === 3.1.0 2020-06-23
55
+ ## 3.1.0 2020-06-23
37
56
 
38
57
  * Add Shipment Invoice and Refund Report
39
58
  * Remove dependencies on `RestClient` and `MultiJson`
40
59
  * Remove some deprecated endpoints
41
60
 
42
- === 3.0.1 2018-05-17
61
+ ## 3.0.1 2018-05-17
43
62
 
44
63
  * Enforce TLS certificate validity by default
45
64
 
46
- === 3.0.0 2018-02-15
65
+ ## 3.0.0 2018-02-15
47
66
 
48
67
  * Require use of ruby ~> 2.0 and TLSv1.2
49
68
 
50
-
51
- === 2.7.3 2018-02-05
69
+ ## 2.7.3 2018-02-05
52
70
 
53
71
  * Fix bug with introduced around certain JSON objects with IDs (thanks vladvinnikov!)
54
72
 
55
-
56
- === 2.7.2 2018-02-01
73
+ ## 2.7.2 2018-02-01
57
74
 
58
75
  * Removed unused and unsupported code paths for Container model
59
76
  * Removed unused and unsupported code path for Stamp and Barcode methods on the Shipment model
60
77
  * Fixed a bug with non-model JSON object with an "id" key being treated as models and raising errors
61
78
 
62
-
63
- === 2.7.1 2017-05-25
79
+ ## 2.7.1 2017-05-25
64
80
 
65
81
  * Allow reports to be retrieved without passing a type
66
82
 
67
-
68
- === 2.7.0 2017-04-04
83
+ ## 2.7.0 2017-04-04
69
84
 
70
85
  * Changed Report CRUD signatures. requires report type to be passed
71
86
 
72
-
73
- === 2.6.2 2017-02-14
87
+ ## 2.6.2 2017-02-14
74
88
 
75
89
  * Added get_rates method for Orders
76
90
 
77
-
78
- === 2.6.1 2017-01-19
91
+ ## 2.6.1 2017-01-19
79
92
 
80
93
  * Updated create method for ScanForms
81
94
 
82
-
83
- === 2.6.0 2017-01-17
95
+ ## 2.6.0 2017-01-17
84
96
 
85
97
  * Add basic CRUD methods for Webhooks
86
98
 
87
-
88
- === 2.5.0 2016-12-19
99
+ ## 2.5.0 2016-12-19
89
100
 
90
101
  * Add prefixes to report in utils
91
102
 
92
-
93
- === 2.4.0 2016-12-08
103
+ ## 2.4.0 2016-12-08
94
104
 
95
105
  * Add report resource to ruby client
96
106
 
97
-
98
- === 2.3.0 2016-11-25
107
+ ## 2.3.0 2016-11-25
99
108
 
100
109
  * Updated dependencies to allow rest-client 2.0.0 and above
101
110
 
102
-
103
- === 2.2.0 2016-07-26
111
+ ## 2.2.0 2016-07-26
104
112
 
105
113
  * Added standalone Insurance model
106
114
 
107
-
108
- === 2.1.11 2016-02-04
115
+ ## 2.1.11 2016-02-04
109
116
 
110
117
  * Allowed user creation for top-level users
111
118
 
112
-
113
- === 2.1.10 2015-12-23
119
+ ## 2.1.10 2015-12-23
114
120
 
115
121
  * Added verify and verify_strict params to Address.create
116
122
  * Added Tracker.create_list and Tracker.all_updated for working with large
117
123
  numbers of Trackers.
118
124
 
119
-
120
- === 2.1.9 2015-11-04
125
+ ## 2.1.9 2015-11-04
121
126
 
122
127
  * Added new tests for Tracker.all
123
128
  * Updated some old examples
124
129
 
125
-
126
- === 2.1.8 2015-10-21
130
+ ## 2.1.8 2015-10-21
127
131
 
128
132
  * Added Cancel method for Pickups (thanks Ramie Blatt!)
129
133
 
130
-
131
- === 2.1.7 2015-10-05
134
+ ## 2.1.7 2015-10-05
132
135
 
133
136
  * Fixed Address.create_and_verify and changed how errors are raised (thanks Dimitri Roche!)
134
137
  * Require newer version of the multi_json package
135
138
 
136
-
137
- === 2.1.6 2015-06-10
139
+ ## 2.1.6 2015-06-10
138
140
 
139
141
  * Added Address message accessor for backwards compatability
140
142
 
141
-
142
- === 2.1.5 2015-06-10
143
+ ## 2.1.5 2015-06-10
143
144
 
144
145
  * Removed Address.message
145
146
 
146
-
147
- === 2.1.4 2015-06-03
147
+ ## 2.1.4 2015-06-03
148
148
 
149
149
  * Add Printer and PrintJob resources.
150
150
 
151
-
152
- === 2.1.3 2015-04-30
151
+ ## 2.1.3 2015-04-30
153
152
 
154
153
  * Bux fix, EasyPost::Errors no longer break with a nil json body.
155
154
 
156
-
157
- === 2.1.2 2015-04-29
155
+ ## 2.1.2 2015-04-29
158
156
 
159
157
  * EasyPost::Errors now correctly parse field errors and error codes.
160
158
 
161
-
162
- === 2.1.1 2015-04-15
159
+ ## 2.1.1 2015-04-15
163
160
 
164
161
  * CarrierAccount will now correctly save in-place modifications to credentials
165
162
  * Nested variables should now be saved correctly across all models
166
163
  * Fixed version numbering confusion (the previous version was 2.0.15, not 2.1.0)
167
164
 
168
-
169
- === 2.0.15 2015-04-15
165
+ ## 2.0.15 2015-04-15
170
166
 
171
167
  * Added tracker to shipment buy response
172
168
  * Updated tracker tests
173
169
 
174
-
175
- === 2.0.14 2015-04-15
170
+ ## 2.0.14 2015-04-15
176
171
 
177
172
  * Added User and CarrierAccount models with CRUD functionality
178
173
 
179
-
180
- === 2.0.13 2014-10-30
174
+ ## 2.0.13 2014-10-30
181
175
 
182
176
  * Added Pickup, PickupRate resources.
183
177
  * Added ability to pass api_key to a few resources that were missing it.
184
178
 
185
-
186
- === 2.0.12 2014-07-07
179
+ ## 2.0.12 2014-07-07
187
180
 
188
181
  * Added Item, Container, and Order resources.
189
182
  * Fixed and added a lot of tests.
190
183
 
191
-
192
- === 2.0.11 2013-12-16
184
+ ## 2.0.11 2013-12-16
193
185
 
194
186
  * Added Event.receive method for parsing events sent by webhook.
195
187
  * Fixed tests to account for the tracking code returning and array of details instead of a Hash
196
188
 
197
-
198
- === 2.0.10 2013-10-03
189
+ ## 2.0.10 2013-10-03
199
190
 
200
191
  * API Addition: Event resource added for webhook consumption.
201
192
 
202
-
203
- === 2.0.9 2013-09-19
193
+ ## 2.0.9 2013-09-19
204
194
 
205
195
  * Interface Change: Changed batch.scan_form to batch.create_scan_form to support the ability to refer to scan forms associated to batches.
206
196
 
207
-
208
- === 2.0.3 2013-07-31
197
+ ## 2.0.3 2013-07-31
209
198
 
210
199
  * API Addition: Tracker resource added. Trackers can be used to register any tracking code with EasyPost webhooks.
211
200
 
212
-
213
- === 2.0.2 2013-07-23
201
+ ## 2.0.2 2013-07-23
214
202
 
215
203
  * API Addition: Shipment.track_with_code returns tracking details for any tracking code.
216
204
 
217
-
218
- === 2.0.1 2013-07-07
205
+ ## 2.0.1 2013-07-07
219
206
 
220
207
  * API Addition: Address.create_and_verify returns a verified address in one step.
221
208
  * API Addition: Shipment.label forces the creation of additional label formats (pdf, epl2, zpl).
data/README.md CHANGED
@@ -4,29 +4,27 @@
4
4
  [![Gem Version](https://badge.fury.io/rb/easypost.svg)](https://badge.fury.io/rb/easypost)
5
5
 
6
6
 
7
- EasyPost is a simple shipping API. You can sign up for an account at https://easypost.com
7
+ EasyPost is a simple shipping API. You can sign up for an account at https://easypost.com.
8
8
 
9
- Installation
10
- ---------------
9
+ ## Installation
11
10
 
12
11
  Install the gem:
13
12
 
14
- ```
13
+ ```bash
15
14
  gem install easypost
16
15
  ```
17
16
 
18
17
  Import the EasyPost client in your application:
19
18
 
20
- ```
19
+ ```ruby
21
20
  require 'easypost'
22
21
  ```
23
22
 
24
- Example
25
- ------------------
23
+ ## Example
26
24
 
27
25
  ```ruby
28
26
  require 'easypost'
29
- EasyPost.api_key = 'cueqNZUb3ldeWTNX7MU3Mel8UXtaAMUi'
27
+ EasyPost.api_key = 'API_KEY'
30
28
 
31
29
  to_address = EasyPost::Address.create(
32
30
  :name => 'Dr. Steve Brule',
@@ -37,6 +35,7 @@ to_address = EasyPost::Address.create(
37
35
  :country => 'US',
38
36
  :phone => '310-808-5243'
39
37
  )
38
+
40
39
  from_address = EasyPost::Address.create(
41
40
  :company => 'EasyPost',
42
41
  :street1 => '118 2nd Street',
@@ -62,6 +61,7 @@ customs_item = EasyPost::CustomsItem.create(
62
61
  :origin_country => 'us',
63
62
  :hs_tariff_number => 123456
64
63
  )
64
+
65
65
  customs_info = EasyPost::CustomsInfo.create(
66
66
  :integrated_form_type => 'form_2976',
67
67
  :customs_certify => true,
@@ -91,17 +91,23 @@ shipment.insure(amount: 100)
91
91
  puts shipment.insurance
92
92
 
93
93
  puts shipment.postage_label.label_url
94
-
95
94
  ```
96
95
 
97
- Documentation
98
- --------------------
96
+ ## Documentation
99
97
 
100
98
  Up-to-date documentation at: https://easypost.com/docs
101
99
 
102
- Tests
103
- --------------------
100
+ ## Development
104
101
 
102
+ ```bash
103
+ # Run tests
104
+ API_KEY=123... bundle exec rspec
105
105
  ```
106
- rspec spec
107
- ```
106
+
107
+ ## Releasing
108
+
109
+ 1. Update the version in `VERSION`
110
+ 1. Update the `CHANGELOG`
111
+ 1. Tag a release on GitHub
112
+ 1. Build the Gem `gem build easypost.gemspec`
113
+ 1. Publish the Gem `gem push easypost-X.X.X.gem` (replace `X.X.X` with the version being released)
data/VERSION CHANGED
@@ -1 +1 @@
1
- 3.3.0
1
+ 3.5.1
@@ -0,0 +1,2 @@
1
+ class EasyPost::ApiKey < EasyPost::Resource
2
+ end
@@ -0,0 +1,9 @@
1
+ class EasyPost::Brand < EasyPost::Resource
2
+ def url
3
+ if user_id.nil? || user_id.empty?
4
+ raise EasyPost::Error, "Missing user_id: #{self.class} instance is missing user_id"
5
+ end
6
+
7
+ "#{::EasyPost::User.url}/#{CGI.escape(user_id)}/brand"
8
+ end
9
+ end
@@ -75,6 +75,10 @@ class EasyPost::EasyPostObject
75
75
  @values
76
76
  end
77
77
 
78
+ def deconstruct_keys(_keys)
79
+ @values.transform_keys(&:to_sym)
80
+ end
81
+
78
82
  def each(&blk)
79
83
  @values.each(&blk)
80
84
  end
@@ -6,6 +6,13 @@ class EasyPost::Shipment < EasyPost::Resource
6
6
  return self
7
7
  end
8
8
 
9
+ def regenerate_rates(params={})
10
+ response = EasyPost.make_request(:post, url + '/rerate', @api_key, params)
11
+ self.refresh_from(response, @api_key, true)
12
+
13
+ return self
14
+ end
15
+
9
16
  def get_smartrates
10
17
  response = EasyPost.make_request(:get, url + '/smartrate', @api_key)
11
18
 
@@ -0,0 +1,2 @@
1
+ class EasyPost::TaxIdentifier < EasyPost::Resource
2
+ end
@@ -4,10 +4,4 @@ class EasyPost::Tracker < EasyPost::Resource
4
4
  response = EasyPost.make_request(:post, url, api_key, params)
5
5
  return true
6
6
  end
7
-
8
- def self.all_updated(params={}, api_key=nil)
9
- url = self.url + '/all_updated'
10
- response = EasyPost.make_request(:get, url, api_key, params)
11
- return EasyPost::Util.convert_to_easypost_object(response, api_key)
12
- end
13
7
  end
data/lib/easypost/user.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  class EasyPost::User < EasyPost::Resource
2
- def self.create(params={}, api_key=nil)
3
- response = EasyPost.make_request(:post, self.url, api_key, {self.class_name.to_sym => params})
4
- return EasyPost::Util.convert_to_easypost_object(response, api_key)
2
+ def self.create(params = {}, api_key = nil)
3
+ response = EasyPost.make_request(:post, url, api_key, {class_name.to_sym => params})
4
+ EasyPost::Util.convert_to_easypost_object(response, api_key)
5
5
  end
6
6
 
7
7
  def save
@@ -14,26 +14,25 @@ class EasyPost::User < EasyPost::Resource
14
14
  response = EasyPost.make_request(:put, url, @api_key, wrapped_params)
15
15
  refresh_from(response, api_key)
16
16
  end
17
- return self
17
+ self
18
18
  end
19
19
 
20
20
  def self.retrieve_me
21
- self.all
21
+ all
22
22
  end
23
23
 
24
24
  def self.all_api_keys
25
- response = EasyPost.make_request(:get, "/api_keys", @api_key)
26
- return EasyPost::Util.convert_to_easypost_object(response, api_key)
25
+ EasyPost::ApiKey.all
27
26
  end
28
27
 
29
28
  def api_keys
30
29
  api_keys = EasyPost::User.all_api_keys
31
30
 
32
- if api_keys.id == self.id
31
+ if api_keys.id == id
33
32
  my_api_keys = api_keys.keys
34
33
  else
35
- for child in api_keys.children
36
- if child.id == self.id
34
+ api_keys.children.each do |child|
35
+ if child.id == id
37
36
  my_api_keys = child.keys
38
37
  break
39
38
  end
@@ -42,4 +41,16 @@ class EasyPost::User < EasyPost::Resource
42
41
 
43
42
  my_api_keys
44
43
  end
44
+
45
+ def update_brand(**attrs)
46
+ brand = EasyPost::Brand.new
47
+ data = {object: "Brand", user_id: id, **attrs}
48
+ # Add accessors manually because there's no API to retrieve a brand
49
+ brand.add_accessors(data.keys)
50
+ # Assigning values with accessors defined above
51
+ data.each do |key, val|
52
+ brand.send("#{key}=", val)
53
+ end
54
+ brand.save
55
+ end
45
56
  end
data/lib/easypost/util.rb CHANGED
@@ -1,4 +1,27 @@
1
1
  module EasyPost::Util
2
+ attr_accessor :os_name, :os_version, :os_arch
3
+
4
+ def self.os_name
5
+ case RUBY_PLATFORM
6
+ when /linux/i
7
+ 'Linux'
8
+ when /darwin/i
9
+ 'Darwin'
10
+ when /cygwin|mswin|mingw|bccwin|wince|emx/i
11
+ 'Windows'
12
+ else
13
+ 'Unknown'
14
+ end
15
+ end
16
+
17
+ def self.os_version
18
+ Gem::Platform.local.version
19
+ end
20
+
21
+ def self.os_arch
22
+ Gem::Platform.local.cpu
23
+ end
24
+
2
25
  def self.objects_to_ids(obj)
3
26
  case obj
4
27
  when EasyPost::Resource
@@ -22,63 +45,62 @@ module EasyPost::Util
22
45
  def self.convert_to_easypost_object(response, api_key, parent=nil, name=nil)
23
46
  types = {
24
47
  'Address' => EasyPost::Address,
25
- 'ScanForm' => EasyPost::ScanForm,
26
- 'CustomsItem' => EasyPost::CustomsItem,
48
+ 'Batch' => EasyPost::Batch,
49
+ 'CarrierAccount' => EasyPost::CarrierAccount,
27
50
  'CustomsInfo' => EasyPost::CustomsInfo,
28
- 'Parcel' => EasyPost::Parcel,
29
- 'Shipment' => EasyPost::Shipment,
30
- 'Rate' => EasyPost::Rate,
31
- 'Refund' => EasyPost::Refund,
51
+ 'CustomsItem' => EasyPost::CustomsItem,
32
52
  'Event' => EasyPost::Event,
33
- 'Batch' => EasyPost::Batch,
34
- 'Tracker' => EasyPost::Tracker,
35
- 'Item' => EasyPost::Item,
36
53
  'Insurance' => EasyPost::Insurance,
37
54
  'Order' => EasyPost::Order,
55
+ 'Parcel' => EasyPost::Parcel,
56
+ 'PaymentLogReport' => EasyPost::Report,
38
57
  'Pickup' => EasyPost::Pickup,
39
58
  'PickupRate' => EasyPost::PickupRate,
40
59
  'PostageLabel' => EasyPost::PostageLabel,
41
60
  'Printer' => EasyPost::Printer,
42
61
  'PrintJob' => EasyPost::PrintJob,
43
- 'CarrierAccount' => EasyPost::CarrierAccount,
44
- 'User' => EasyPost::User,
62
+ 'Rate' => EasyPost::Rate,
63
+ 'Refund' => EasyPost::Refund,
64
+ 'RefundReport' => EasyPost::Report,
45
65
  'Report' => EasyPost::Report,
66
+ 'ScanForm' => EasyPost::ScanForm,
67
+ 'Shipment' => EasyPost::Shipment,
68
+ 'TaxIdentifier' => EasyPost::TaxIdentifier,
69
+ 'ShipmentInvoiceReport' => EasyPost::Report,
46
70
  'ShipmentReport' => EasyPost::Report,
47
- 'PaymentLogReport' => EasyPost::Report,
71
+ 'Tracker' => EasyPost::Tracker,
48
72
  'TrackerReport' => EasyPost::Report,
49
- 'RefundReport' => EasyPost::Report,
50
- 'ShipmentInvoiceReport' => EasyPost::Report,
73
+ 'User' => EasyPost::User,
51
74
  'Webhook' => EasyPost::Webhook
52
75
  }
53
76
 
54
77
  prefixes = {
55
78
  'adr' => EasyPost::Address,
56
- 'sf' => EasyPost::ScanForm,
57
- 'cstitem' => EasyPost::CustomsItem,
79
+ 'batch' => EasyPost::Batch,
80
+ 'ca' => EasyPost::CarrierAccount,
58
81
  'cstinfo' => EasyPost::CustomsInfo,
59
- 'prcl' => EasyPost::Parcel,
60
- 'shp' => EasyPost::Shipment,
61
- 'rate' => EasyPost::Rate,
62
- 'rfnd' => EasyPost::Refund,
82
+ 'cstitem' => EasyPost::CustomsItem,
63
83
  'evt' => EasyPost::Event,
64
- 'batch' => EasyPost::Batch,
65
- 'trk' => EasyPost::Tracker,
66
- 'item' => EasyPost::Item,
84
+ 'hook' => EasyPost::Webhook,
67
85
  'ins' => EasyPost::Insurance,
68
86
  'order' => EasyPost::Order,
69
87
  'pickup' => EasyPost::Pickup,
70
88
  'pickuprate' => EasyPost::PickupRate,
71
89
  'pl' => EasyPost::PostageLabel,
90
+ 'plrep' => EasyPost::Report,
91
+ 'prcl' => EasyPost::Parcel,
72
92
  'printer' => EasyPost::Printer,
73
93
  'printjob' => EasyPost::PrintJob,
74
- 'ca' => EasyPost::CarrierAccount,
75
- 'user' => EasyPost::User,
76
- 'shprep' => EasyPost::Report,
77
- 'plrep' => EasyPost::Report,
78
- 'trkrep' => EasyPost::Report,
94
+ 'rate' => EasyPost::Rate,
79
95
  'refrep' => EasyPost::Report,
96
+ 'rfnd' => EasyPost::Refund,
97
+ 'sf' => EasyPost::ScanForm,
98
+ 'shp' => EasyPost::Shipment,
80
99
  'shpinvrep' => EasyPost::Report,
81
- 'hook' => EasyPost::Webhook
100
+ 'shprep' => EasyPost::Report,
101
+ 'trk' => EasyPost::Tracker,
102
+ 'trkrep' => EasyPost::Report,
103
+ 'user' => EasyPost::User
82
104
  }
83
105
 
84
106
  case response
data/lib/easypost.rb CHANGED
@@ -2,37 +2,41 @@ require "base64"
2
2
  require "cgi"
3
3
  require "net/http"
4
4
 
5
- # Resources
6
5
  require "easypost/version"
7
6
  require "easypost/util"
8
7
  require "easypost/object"
9
8
  require "easypost/resource"
9
+ require "easypost/error"
10
+
11
+ # Resources
10
12
  require "easypost/address"
11
- require "easypost/parcel"
12
- require "easypost/customs_item"
13
+ require "easypost/api_key"
14
+ require "easypost/batch"
15
+ require "easypost/brand"
16
+ require "easypost/carrier_account"
17
+ require "easypost/carrier_type"
13
18
  require "easypost/customs_info"
14
- require "easypost/shipment"
15
- require "easypost/rate"
16
- require "easypost/postage_label"
17
- require "easypost/scan_form"
18
- require "easypost/refund"
19
- require "easypost/insurance"
19
+ require "easypost/customs_item"
20
20
  require "easypost/event"
21
- require "easypost/batch"
22
- require "easypost/tracker"
23
- require "easypost/item"
21
+ require "easypost/insurance"
24
22
  require "easypost/order"
25
- require "easypost/pickup"
23
+ require "easypost/parcel"
26
24
  require "easypost/pickup_rate"
27
- require "easypost/printer"
25
+ require "easypost/pickup"
26
+ require "easypost/postage_label"
28
27
  require "easypost/print_job"
29
- require "easypost/carrier_type"
30
- require "easypost/carrier_account"
31
- require "easypost/user"
28
+ require "easypost/printer"
29
+ require "easypost/rate"
30
+ require "easypost/refund"
32
31
  require "easypost/report"
32
+ require "easypost/scan_form"
33
+ require "easypost/shipment"
34
+ require "easypost/tax_identifier"
35
+ require "easypost/tracker"
36
+ require "easypost/user"
33
37
  require "easypost/webhook"
34
38
 
35
- require "easypost/error"
39
+ require 'easypost/util'
36
40
 
37
41
  module EasyPost
38
42
  @api_key = nil
@@ -123,7 +127,9 @@ module EasyPost
123
127
  end
124
128
 
125
129
  request["Content-Type"] = "application/json"
126
- request["User-Agent"] = "EasyPost/v2 RubyClient/#{VERSION} Ruby/#{RUBY_VERSION}-p#{RUBY_PATCHLEVEL}"
130
+ request["User-Agent"] = "EasyPost/v2 RubyClient/#{EasyPost::VERSION} Ruby/#{RUBY_VERSION}-p#{RUBY_PATCHLEVEL} " \
131
+ "OS/#{EasyPost::Util.os_name} OSVersion/#{EasyPost::Util.os_version} " \
132
+ "OSArch/#{EasyPost::Util.os_arch}"
127
133
  if api_key = api_key || @api_key
128
134
  request["Authorization"] = "Basic #{Base64.strict_encode64("#{api_key}:")}"
129
135
  end
metadata CHANGED
@@ -1,16 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: easypost
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.3.0
4
+ version: 3.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jake Epstein
8
8
  - Andrew Tribone
9
9
  - James Brown
10
- autorequire:
10
+ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2021-06-10 00:00:00.000000000 Z
13
+ date: 2022-07-01 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: pry
@@ -91,7 +91,7 @@ extra_rdoc_files: []
91
91
  files:
92
92
  - ".github/workflows/ci.yml"
93
93
  - ".gitignore"
94
- - CHANGELOG
94
+ - CHANGELOG.md
95
95
  - Gemfile
96
96
  - LICENSE
97
97
  - README.md
@@ -101,7 +101,9 @@ files:
101
101
  - easypost.gemspec
102
102
  - lib/easypost.rb
103
103
  - lib/easypost/address.rb
104
+ - lib/easypost/api_key.rb
104
105
  - lib/easypost/batch.rb
106
+ - lib/easypost/brand.rb
105
107
  - lib/easypost/carrier_account.rb
106
108
  - lib/easypost/carrier_type.rb
107
109
  - lib/easypost/customs_info.rb
@@ -109,7 +111,6 @@ files:
109
111
  - lib/easypost/error.rb
110
112
  - lib/easypost/event.rb
111
113
  - lib/easypost/insurance.rb
112
- - lib/easypost/item.rb
113
114
  - lib/easypost/object.rb
114
115
  - lib/easypost/order.rb
115
116
  - lib/easypost/parcel.rb
@@ -124,6 +125,7 @@ files:
124
125
  - lib/easypost/resource.rb
125
126
  - lib/easypost/scan_form.rb
126
127
  - lib/easypost/shipment.rb
128
+ - lib/easypost/tax_identifier.rb
127
129
  - lib/easypost/tracker.rb
128
130
  - lib/easypost/user.rb
129
131
  - lib/easypost/util.rb
@@ -133,7 +135,7 @@ homepage: https://www.easypost.com/docs
133
135
  licenses:
134
136
  - MIT
135
137
  metadata: {}
136
- post_install_message:
138
+ post_install_message:
137
139
  rdoc_options: []
138
140
  require_paths:
139
141
  - lib
@@ -148,8 +150,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
148
150
  - !ruby/object:Gem::Version
149
151
  version: '0'
150
152
  requirements: []
151
- rubygems_version: 3.0.3
152
- signing_key:
153
+ rubygems_version: 3.3.11
154
+ signing_key:
153
155
  specification_version: 4
154
156
  summary: EasyPost Ruby Client Library
155
157
  test_files: []
data/lib/easypost/item.rb DELETED
@@ -1,6 +0,0 @@
1
- class EasyPost::Item < EasyPost::Resource
2
- def self.retrieve_reference(params={}, api_key=nil)
3
- response = EasyPost.make_request(:get, url + '/retrieve_reference', api_key, params)
4
- return EasyPost::Util::convert_to_easypost_object(response, api_key) if response
5
- end
6
- end