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.
Files changed (148) hide show
  1. checksums.yaml +4 -4
  2. data/.gitattributes +9 -0
  3. data/.github/CODEOWNERS +2 -0
  4. data/.github/ISSUE_TEMPLATE/bug_report.yml +81 -0
  5. data/.github/ISSUE_TEMPLATE/feature_request.yml +37 -0
  6. data/.github/PULL_REQUEST_TEMPLATE.md +22 -0
  7. data/.github/workflows/ci.yml +71 -0
  8. data/.gitignore +27 -17
  9. data/.gitmodules +3 -0
  10. data/CHANGELOG.md +378 -0
  11. data/Gemfile +2 -0
  12. data/Makefile +70 -0
  13. data/README.md +193 -74
  14. data/Rakefile +2 -1
  15. data/UPGRADE_GUIDE.md +181 -0
  16. data/VERSION +1 -1
  17. data/bin/easypost-irb +5 -3
  18. data/easypost.gemspec +27 -20
  19. data/lib/easypost/client.rb +178 -0
  20. data/lib/easypost/connection.rb +64 -0
  21. data/lib/easypost/constants.rb +15 -0
  22. data/lib/easypost/errors/api/api_error.rb +108 -0
  23. data/lib/easypost/errors/api/bad_request_error.rb +6 -0
  24. data/lib/easypost/errors/api/connection_error.rb +6 -0
  25. data/lib/easypost/errors/api/external_api_error.rb +18 -0
  26. data/lib/easypost/errors/api/forbidden_error.rb +6 -0
  27. data/lib/easypost/errors/api/gateway_timeout_error.rb +6 -0
  28. data/lib/easypost/errors/api/internal_server_error.rb +6 -0
  29. data/lib/easypost/errors/api/invalid_request_error.rb +6 -0
  30. data/lib/easypost/errors/api/method_not_allowed_error.rb +6 -0
  31. data/lib/easypost/errors/api/not_found_error.rb +6 -0
  32. data/lib/easypost/errors/api/payment_error.rb +6 -0
  33. data/lib/easypost/errors/api/proxy_error.rb +6 -0
  34. data/lib/easypost/errors/api/rate_limit_error.rb +6 -0
  35. data/lib/easypost/errors/api/redirect_error.rb +6 -0
  36. data/lib/easypost/errors/api/retry_error.rb +6 -0
  37. data/lib/easypost/errors/api/service_unavailable_error.rb +6 -0
  38. data/lib/easypost/errors/api/ssl_error.rb +6 -0
  39. data/lib/easypost/errors/api/timeout_error.rb +6 -0
  40. data/lib/easypost/errors/api/unauthorized_error.rb +6 -0
  41. data/lib/easypost/errors/api/unknown_api_error.rb +6 -0
  42. data/lib/easypost/errors/easy_post_error.rb +7 -0
  43. data/lib/easypost/errors/end_of_pagination_error.rb +7 -0
  44. data/lib/easypost/errors/filtering_error.rb +4 -0
  45. data/lib/easypost/errors/invalid_object_error.rb +4 -0
  46. data/lib/easypost/errors/invalid_parameter_error.rb +11 -0
  47. data/lib/easypost/errors/missing_parameter_error.rb +9 -0
  48. data/lib/easypost/errors/signature_verification_error.rb +4 -0
  49. data/lib/easypost/errors.rb +32 -0
  50. data/lib/easypost/hooks/request_context.rb +16 -0
  51. data/lib/easypost/hooks/response_context.rb +23 -0
  52. data/lib/easypost/hooks.rb +34 -0
  53. data/lib/easypost/http_client.rb +117 -0
  54. data/lib/easypost/internal_utilities.rb +66 -0
  55. data/lib/easypost/models/address.rb +5 -0
  56. data/lib/easypost/models/api_key.rb +5 -0
  57. data/lib/easypost/models/base.rb +58 -0
  58. data/lib/easypost/models/batch.rb +5 -0
  59. data/lib/easypost/models/brand.rb +5 -0
  60. data/lib/easypost/models/carbon_offset.rb +5 -0
  61. data/lib/easypost/models/carrier_account.rb +5 -0
  62. data/lib/easypost/models/customs_info.rb +5 -0
  63. data/lib/easypost/models/customs_item.rb +5 -0
  64. data/lib/easypost/models/end_shipper.rb +5 -0
  65. data/lib/easypost/models/error.rb +21 -0
  66. data/lib/easypost/models/event.rb +5 -0
  67. data/lib/easypost/models/insurance.rb +6 -0
  68. data/lib/easypost/models/order.rb +9 -0
  69. data/lib/easypost/models/parcel.rb +5 -0
  70. data/lib/easypost/models/payload.rb +5 -0
  71. data/lib/easypost/models/payment_method.rb +5 -0
  72. data/lib/easypost/models/pickup.rb +9 -0
  73. data/lib/easypost/models/pickup_rate.rb +5 -0
  74. data/lib/easypost/models/postage_label.rb +5 -0
  75. data/lib/easypost/models/rate.rb +5 -0
  76. data/lib/easypost/models/referral.rb +5 -0
  77. data/lib/easypost/models/refund.rb +5 -0
  78. data/lib/easypost/models/report.rb +5 -0
  79. data/lib/easypost/models/scan_form.rb +6 -0
  80. data/lib/easypost/models/shipment.rb +10 -0
  81. data/lib/easypost/models/tax_identifier.rb +6 -0
  82. data/lib/easypost/models/tracker.rb +5 -0
  83. data/lib/easypost/models/user.rb +5 -0
  84. data/lib/easypost/models/webhook.rb +6 -0
  85. data/lib/easypost/models.rb +35 -0
  86. data/lib/easypost/services/address.rb +50 -0
  87. data/lib/easypost/services/api_key.rb +8 -0
  88. data/lib/easypost/services/base.rb +27 -0
  89. data/lib/easypost/services/batch.rb +53 -0
  90. data/lib/easypost/services/beta_rate.rb +12 -0
  91. data/lib/easypost/services/beta_referral_customer.rb +40 -0
  92. data/lib/easypost/services/billing.rb +75 -0
  93. data/lib/easypost/services/carrier_account.rb +44 -0
  94. data/lib/easypost/services/carrier_metadata.rb +22 -0
  95. data/lib/easypost/services/customs_info.rb +17 -0
  96. data/lib/easypost/services/customs_item.rb +15 -0
  97. data/lib/easypost/services/end_shipper.rb +31 -0
  98. data/lib/easypost/services/event.rb +32 -0
  99. data/lib/easypost/services/insurance.rb +26 -0
  100. data/lib/easypost/services/order.rb +30 -0
  101. data/lib/easypost/services/parcel.rb +16 -0
  102. data/lib/easypost/services/pickup.rb +40 -0
  103. data/lib/easypost/services/rate.rb +8 -0
  104. data/lib/easypost/services/referral_customer.rb +103 -0
  105. data/lib/easypost/services/refund.rb +26 -0
  106. data/lib/easypost/services/report.rb +42 -0
  107. data/lib/easypost/services/scan_form.rb +25 -0
  108. data/lib/easypost/services/shipment.rb +106 -0
  109. data/lib/easypost/services/tracker.rb +38 -0
  110. data/lib/easypost/services/user.rb +66 -0
  111. data/lib/easypost/services/webhook.rb +34 -0
  112. data/lib/easypost/services.rb +32 -0
  113. data/lib/easypost/util.rb +167 -103
  114. data/lib/easypost/utilities/constants.rb +5 -0
  115. data/lib/easypost/utilities/json.rb +23 -0
  116. data/lib/easypost/utilities/static_mapper.rb +73 -0
  117. data/lib/easypost/utilities/system.rb +36 -0
  118. data/lib/easypost/version.rb +3 -1
  119. data/lib/easypost.rb +21 -137
  120. metadata +253 -49
  121. data/.travis.yml +0 -9
  122. data/CHANGELOG +0 -207
  123. data/lib/easypost/address.rb +0 -60
  124. data/lib/easypost/batch.rb +0 -53
  125. data/lib/easypost/carrier_account.rb +0 -8
  126. data/lib/easypost/customs_info.rb +0 -9
  127. data/lib/easypost/customs_item.rb +0 -9
  128. data/lib/easypost/error.rb +0 -33
  129. data/lib/easypost/event.rb +0 -10
  130. data/lib/easypost/insurance.rb +0 -4
  131. data/lib/easypost/item.rb +0 -10
  132. data/lib/easypost/object.rb +0 -149
  133. data/lib/easypost/order.rb +0 -30
  134. data/lib/easypost/parcel.rb +0 -4
  135. data/lib/easypost/pickup.rb +0 -30
  136. data/lib/easypost/pickup_rate.rb +0 -5
  137. data/lib/easypost/postage_label.rb +0 -4
  138. data/lib/easypost/print_job.rb +0 -6
  139. data/lib/easypost/printer.rb +0 -28
  140. data/lib/easypost/rate.rb +0 -4
  141. data/lib/easypost/refund.rb +0 -4
  142. data/lib/easypost/report.rb +0 -31
  143. data/lib/easypost/resource.rb +0 -77
  144. data/lib/easypost/scan_form.rb +0 -8
  145. data/lib/easypost/shipment.rb +0 -120
  146. data/lib/easypost/tracker.rb +0 -15
  147. data/lib/easypost/user.rb +0 -47
  148. 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').
@@ -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
@@ -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
@@ -1,8 +0,0 @@
1
- module EasyPost
2
- class CarrierAccount < Resource
3
- def self.types
4
- response = EasyPost.make_request(:get, "/carrier_types", @api_key)
5
- return Util.convert_to_easypost_object(response, api_key)
6
- end
7
- end
8
- end
@@ -1,9 +0,0 @@
1
- module EasyPost
2
- class CustomsInfo < Resource
3
-
4
- def self.all(filters={}, api_key=nil)
5
- raise NotImplementedError.new('CustomsInfo.all not implemented.')
6
- end
7
-
8
- end
9
- end
@@ -1,9 +0,0 @@
1
- module EasyPost
2
- class CustomsItem < Resource
3
-
4
- def self.all(filters={}, api_key=nil)
5
- raise NotImplementedError.new('CustomsItem.all not implemented.')
6
- end
7
-
8
- end
9
- end
@@ -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
@@ -1,10 +0,0 @@
1
- require 'json'
2
-
3
- module EasyPost
4
- class Event < Resource
5
-
6
- def self.receive(values)
7
- return EasyPost::Util::convert_to_easypost_object(JSON.parse(values), nil)
8
- end
9
- end
10
- end
@@ -1,4 +0,0 @@
1
- module EasyPost
2
- class Insurance < Resource
3
- end
4
- end
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
@@ -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
@@ -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
@@ -1,4 +0,0 @@
1
- module EasyPost
2
- class Parcel < Resource
3
- end
4
- end
@@ -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
@@ -1,5 +0,0 @@
1
- module EasyPost
2
- class PickupRate < Resource
3
-
4
- end
5
- end
@@ -1,4 +0,0 @@
1
- module EasyPost
2
- class PostageLabel < Resource
3
- end
4
- end
@@ -1,6 +0,0 @@
1
- module EasyPost
2
- class PrintJob < Resource
3
- end
4
- end
5
-
6
-
@@ -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
@@ -1,4 +0,0 @@
1
- module EasyPost
2
- class Rate < Resource
3
- end
4
- end
@@ -1,4 +0,0 @@
1
- module EasyPost
2
- class Refund < Resource
3
- end
4
- end