easypost 3.0.1 → 3.1.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,7 +1,7 @@
1
1
  module EasyPost
2
2
  class CarrierAccount < Resource
3
3
  def self.types
4
- response, api_key = EasyPost.request(:get, "/carrier_types", @api_key)
4
+ response = EasyPost.make_request(:get, "/carrier_types", @api_key)
5
5
  return Util.convert_to_easypost_object(response, api_key)
6
6
  end
7
7
  end
@@ -1,4 +1,9 @@
1
1
  module EasyPost
2
2
  class CustomsInfo < Resource
3
+
4
+ def self.all(filters={}, api_key=nil)
5
+ raise NotImplementedError.new('CustomsInfo.all not implemented.')
6
+ end
7
+
3
8
  end
4
9
  end
@@ -1,4 +1,9 @@
1
1
  module EasyPost
2
2
  class CustomsItem < Resource
3
+
4
+ def self.all(filters={}, api_key=nil)
5
+ raise NotImplementedError.new('CustomsItem.all not implemented.')
6
+ end
7
+
3
8
  end
4
9
  end
@@ -1,38 +1,31 @@
1
1
  module EasyPost
2
2
  class Error < StandardError
3
3
  attr_reader :message
4
- attr_reader :http_status
5
- attr_reader :http_body
6
- attr_reader :json_body
7
- attr_reader :param
4
+ attr_reader :status
5
+ attr_reader :http_status # deprecated
8
6
  attr_reader :code
9
7
  attr_reader :errors
10
8
 
11
- def initialize(message=nil, http_status=nil, http_body=nil, json_body={})
9
+ def initialize(message = nil, status = nil, code = nil, errors = nil)
12
10
  @message = message
13
- @http_status = http_status
14
- @http_body = http_body
15
- @json_body = json_body
16
-
17
- @param = @json_body.fetch(:error, {}).fetch(:param, nil)
18
- @code = @json_body.fetch(:error, {}).fetch(:code, nil)
19
- @errors = @json_body.fetch(:error, {}).fetch(:errors, nil)
11
+ @status = status
12
+ @http_status = status # deprecated
13
+ @code = code
14
+ @errors = errors
20
15
 
21
16
  super(message)
22
17
  end
23
18
 
24
19
  def to_s
25
- s = "#{@code} (#{@http_status}): #{@message}";
26
- if @errors
27
- s += "\nField errors:\n"
28
- @errors.each do |field_error|
29
- field_error.each do |k, v|
30
- s += " #{k}: #{v}\n"
31
- end
32
- s += "\n"
33
- end
34
- end
35
- s
20
+ "#{code} (#{status}): #{message} #{errors}".strip
21
+ end
22
+
23
+ def ==(other)
24
+ other.is_a?(Error) &&
25
+ message == other.message &&
26
+ status == other.status &&
27
+ code == other.code &&
28
+ errors == other.errors
36
29
  end
37
30
  end
38
31
  end
@@ -2,7 +2,7 @@ module EasyPost
2
2
  class Item < Resource
3
3
 
4
4
  def self.retrieve_reference(params={}, api_key=nil)
5
- response, api_key = EasyPost.request(:get, url + '/retrieve_reference', api_key, params)
5
+ response = EasyPost.make_request(:get, url + '/retrieve_reference', api_key, params)
6
6
  return EasyPost::Util::convert_to_easypost_object(response, api_key) if response
7
7
  end
8
8
 
@@ -1,3 +1,5 @@
1
+ require "set"
2
+
1
3
  module EasyPost
2
4
  class EasyPostObject
3
5
  include Enumerable
@@ -22,12 +24,12 @@ module EasyPost
22
24
  end
23
25
 
24
26
  def to_s(*args)
25
- MultiJson.dump(@values, :pretty => true)
27
+ JSON.dump(@values)
26
28
  end
27
29
 
28
- def inspect()
30
+ def inspect
29
31
  id_string = (self.respond_to?(:id) && !self.id.nil?) ? " id=#{self.id}" : ""
30
- "#<#{self.class}:#{id_string}> JSON: " + MultiJson.dump(@values, :pretty => true)
32
+ "#<#{self.class}:#{id_string}> JSON: " + to_json
31
33
  end
32
34
 
33
35
  def refresh_from(values, api_key, partial=false)
@@ -47,8 +49,7 @@ module EasyPost
47
49
  end
48
50
 
49
51
  def [](k)
50
- k = k.to_sym if k.is_a?(String)
51
- @values[k]
52
+ @values[k.to_s]
52
53
  end
53
54
 
54
55
  def []=(k, v)
@@ -64,7 +65,7 @@ module EasyPost
64
65
  end
65
66
 
66
67
  def to_json(options = {})
67
- MultiJson.dump(@values)
68
+ JSON.dump(@values)
68
69
  end
69
70
 
70
71
  def as_json(options = {})
@@ -144,6 +145,5 @@ module EasyPost
144
145
  end
145
146
  end
146
147
  end
147
-
148
148
  end
149
149
  end
@@ -2,7 +2,7 @@ module EasyPost
2
2
  class Order < Resource
3
3
 
4
4
  def get_rates(params={})
5
- response, api_key = EasyPost.request(:get, url + '/rates', @api_key, params)
5
+ response = EasyPost.make_request(:get, url + '/rates', @api_key, params)
6
6
  self.refresh_from(response, @api_key, true)
7
7
 
8
8
  return self
@@ -16,11 +16,15 @@ module EasyPost
16
16
  params[:service] = temp.service
17
17
  end
18
18
 
19
- response, api_key = EasyPost.request(:post, url + '/buy', @api_key, params)
19
+ response = EasyPost.make_request(:post, url + '/buy', @api_key, params)
20
20
  self.refresh_from(response, @api_key, true)
21
21
 
22
22
  return self
23
23
  end
24
24
 
25
+ def self.all(filters={}, api_key=nil)
26
+ raise NotImplementedError.new('Order.all not implemented.')
27
+ end
28
+
25
29
  end
26
30
  end
@@ -9,17 +9,22 @@ module EasyPost
9
9
  params[:service] = temp.service
10
10
  end
11
11
 
12
- response, api_key = EasyPost.request(:post, url + '/buy', @api_key, params)
12
+ response = EasyPost.make_request(:post, url + '/buy', @api_key, params)
13
13
  self.refresh_from(response, @api_key, true)
14
14
 
15
15
  return self
16
16
  end
17
17
 
18
18
  def cancel(params={})
19
- response, api_key = EasyPost.request(:post, url + '/cancel', @api_key, params)
19
+ response = EasyPost.make_request(:post, url + '/cancel', @api_key, params)
20
20
  self.refresh_from(response, @api_key, true)
21
21
 
22
22
  return self
23
23
  end
24
+
25
+ def self.all(filters={}, api_key=nil)
26
+ raise NotImplementedError.new('Pickup.all not implemented.')
27
+ end
28
+
24
29
  end
25
30
  end
@@ -2,7 +2,7 @@ module EasyPost
2
2
  class Printer < Resource
3
3
 
4
4
  def job
5
- response, api_key = EasyPost.request(
5
+ response = EasyPost.make_request(
6
6
  :get, url + '/jobs', @api_key
7
7
  )
8
8
  return EasyPost::Util::convert_to_easypost_object(response, api_key)
@@ -15,7 +15,7 @@ module EasyPost
15
15
  params[:postage_label] = temp
16
16
  end
17
17
 
18
- response, api_key = EasyPost.request(
18
+ response = EasyPost.make_request(
19
19
  :post, url + '/print_postage_label', @api_key, params
20
20
  )
21
21
  return true
@@ -5,7 +5,7 @@ module EasyPost
5
5
  wrapped_params = {}
6
6
  wrapped_params[class_name.to_sym] = params
7
7
 
8
- response, api_key = EasyPost.request(:post, url, api_key, params)
8
+ response = EasyPost.make_request(:post, url, api_key, params)
9
9
  return Util.convert_to_easypost_object(response, api_key)
10
10
  end
11
11
 
@@ -24,7 +24,7 @@ module EasyPost
24
24
  def self.all(filters={}, api_key=nil)
25
25
  url = "#{self.url}/#{filters[:type]}"
26
26
 
27
- response, api_key = EasyPost.request(:get, url, api_key, filters)
27
+ response = EasyPost.make_request(:get, url, api_key, filters)
28
28
  return EasyPost::Util::convert_to_easypost_object(response, api_key) if response
29
29
  end
30
30
  end
@@ -11,9 +11,9 @@ module EasyPost
11
11
  raise NotImplementedError.new('Resource is an abstract class. You should perform actions on its subclasses (Address, Shipment, etc.)')
12
12
  end
13
13
  if(self.class_name[-1..-1] == 's' || self.class_name[-1..-1] == 'h')
14
- return "/#{CGI.escape(self.class_name.downcase)}es"
14
+ return "/v2/#{CGI.escape(self.class_name.downcase)}es"
15
15
  else
16
- return "/#{CGI.escape(class_name.downcase)}s"
16
+ return "/v2/#{CGI.escape(class_name.downcase)}s"
17
17
  end
18
18
  end
19
19
 
@@ -25,13 +25,13 @@ module EasyPost
25
25
  end
26
26
 
27
27
  def refresh
28
- response, api_key = EasyPost.request(:get, url, @api_key, @retrieve_options)
28
+ response = EasyPost.make_request(:get, url, @api_key, @retrieve_options)
29
29
  refresh_from(response, api_key)
30
30
  return self
31
31
  end
32
32
 
33
33
  def self.all(filters={}, api_key=nil)
34
- response, api_key = EasyPost.request(:get, url, api_key, filters)
34
+ response = EasyPost.make_request(:get, url, api_key, filters)
35
35
  return Util.convert_to_easypost_object(response, api_key)
36
36
  end
37
37
 
@@ -44,12 +44,12 @@ module EasyPost
44
44
  def self.create(params={}, api_key=nil)
45
45
  wrapped_params = {}
46
46
  wrapped_params[self.class_name().to_sym] = params
47
- response, api_key = EasyPost.request(:post, self.url, api_key, wrapped_params)
47
+ response = EasyPost.make_request(:post, self.url, api_key, wrapped_params)
48
48
  return Util.convert_to_easypost_object(response, api_key)
49
49
  end
50
50
 
51
51
  def delete
52
- response, api_key = EasyPost.request(:delete, url, @api_key)
52
+ response = EasyPost.make_request(:delete, url, @api_key)
53
53
  refresh_from(response, api_key)
54
54
  return self
55
55
  end
@@ -68,7 +68,7 @@ module EasyPost
68
68
 
69
69
  wrapped_params = {self.class.class_name => values}
70
70
 
71
- response, api_key = EasyPost.request(:put, url, @api_key, wrapped_params)
71
+ response = EasyPost.make_request(:put, url, @api_key, wrapped_params)
72
72
  refresh_from(response, api_key)
73
73
  end
74
74
  return self
@@ -1,7 +1,7 @@
1
1
  module EasyPost
2
2
  class ScanForm < Resource
3
3
  def self.create(params={}, api_key=nil)
4
- response, api_key = EasyPost.request(:post, self.url, api_key, params)
4
+ response = EasyPost.make_request(:post, self.url, api_key, params)
5
5
  return Util.convert_to_easypost_object(response, api_key)
6
6
  end
7
7
  end
@@ -2,7 +2,7 @@ module EasyPost
2
2
  class Shipment < Resource
3
3
 
4
4
  def get_rates(params={})
5
- response, api_key = EasyPost.request(:get, url + '/rates', @api_key, params)
5
+ response = EasyPost.make_request(:get, url + '/rates', @api_key, params)
6
6
  self.refresh_from(response, @api_key, true)
7
7
 
8
8
  return self
@@ -15,7 +15,7 @@ module EasyPost
15
15
  params[:rate] = temp
16
16
  end
17
17
 
18
- response, api_key = EasyPost.request(:post, url + '/buy', @api_key, params)
18
+ response = EasyPost.make_request(:post, url + '/buy', @api_key, params)
19
19
  self.refresh_from(response, @api_key, true)
20
20
 
21
21
  return self
@@ -28,14 +28,14 @@ module EasyPost
28
28
  params[:amount] = temp
29
29
  end
30
30
 
31
- response, api_key = EasyPost.request(:post, url + '/insure', @api_key, params)
31
+ response = EasyPost.make_request(:post, url + '/insure', @api_key, params)
32
32
  self.refresh_from(response, @api_key, true)
33
33
 
34
34
  return self
35
35
  end
36
36
 
37
37
  def refund(params={})
38
- response, api_key = EasyPost.request(:get, url + '/refund', @api_key, params)
38
+ response = EasyPost.make_request(:get, url + '/refund', @api_key, params)
39
39
  self.refresh_from(response, @api_key, true)
40
40
 
41
41
  return self
@@ -55,7 +55,7 @@ module EasyPost
55
55
  params[:file_format] = temp
56
56
  end
57
57
 
58
- response, api_key = EasyPost.request(:get, url + '/label', @api_key, params)
58
+ response = EasyPost.make_request(:get, url + '/label', @api_key, params)
59
59
  self.refresh_from(response, @api_key, true)
60
60
 
61
61
  return self
@@ -2,13 +2,13 @@ module EasyPost
2
2
  class Tracker < Resource
3
3
  def self.create_list(params={}, api_key=nil)
4
4
  url = self.url + '/create_list'
5
- response, api_key = EasyPost.request(:post, url, api_key, params)
5
+ response = EasyPost.make_request(:post, url, api_key, params)
6
6
  return true
7
7
  end
8
8
 
9
9
  def self.all_updated(params={}, api_key=nil)
10
10
  url = self.url + '/all_updated'
11
- response, api_key = EasyPost.request(:get, url, api_key, params)
11
+ response = EasyPost.make_request(:get, url, api_key, params)
12
12
  return Util.convert_to_easypost_object(response, api_key)
13
13
  end
14
14
  end
@@ -1,9 +1,7 @@
1
1
  module EasyPost
2
2
  class User < Resource
3
3
  def self.create(params={}, api_key=nil)
4
- wrapped_params = {}
5
- wrapped_params[self.class_name().to_sym] = params
6
- response, api_key = EasyPost.request(:post, self.url, api_key, wrapped_params, {}, false)
4
+ response = EasyPost.make_request(:post, self.url, api_key, {self.class_name.to_sym => params})
7
5
  return Util.convert_to_easypost_object(response, api_key)
8
6
  end
9
7
 
@@ -14,7 +12,7 @@ module EasyPost
14
12
 
15
13
  wrapped_params = {user: values}
16
14
 
17
- response, api_key = EasyPost.request(:put, url, @api_key, wrapped_params)
15
+ response = EasyPost.make_request(:put, url, @api_key, wrapped_params)
18
16
  refresh_from(response, api_key)
19
17
  end
20
18
  return self
@@ -25,7 +23,7 @@ module EasyPost
25
23
  end
26
24
 
27
25
  def self.all_api_keys
28
- response, api_key = EasyPost.request(:get, "/api_keys", @api_key)
26
+ response = EasyPost.make_request(:get, "/api_keys", @api_key)
29
27
  return Util.convert_to_easypost_object(response, api_key)
30
28
  end
31
29
 
@@ -42,6 +42,8 @@ module EasyPost
42
42
  'ShipmentReport' => Report,
43
43
  'PaymentLogReport' => Report,
44
44
  'TrackerReport' => Report,
45
+ 'RefundReport' => Report,
46
+ 'ShipmentInvoiceReport' => Report,
45
47
  'Webhook' => Webhook
46
48
  }
47
49
 
@@ -70,6 +72,8 @@ module EasyPost
70
72
  'shprep' => Report,
71
73
  'plrep' => Report,
72
74
  'trkrep' => Report,
75
+ 'refrep' => Report,
76
+ 'shpinvrep' => Report,
73
77
  'hook' => Webhook
74
78
  }
75
79
 
@@ -99,49 +103,5 @@ module EasyPost
99
103
  return response
100
104
  end
101
105
  end
102
-
103
- def self.symbolize_names(obj)
104
- case obj
105
- when Hash
106
- result = {}
107
- obj.each do |k, v|
108
- k = (k.to_sym rescue k) || k
109
- obj[k] = symbolize_names(v)
110
- end
111
- return result
112
- when Array
113
- return obj.map { |v| symbolize_names(v) }
114
- else
115
- return obj
116
- end
117
- end
118
-
119
- def self.url_encode(key)
120
- URI.escape(key.to_s, Regexp.new("[^#{URI::PATTERN::UNRESERVED}]"))
121
- end
122
-
123
- def self.flatten_params(params, parent_key=nil)
124
- result = []
125
- if params.is_a?(Hash)
126
- params.each do |k, v|
127
- calculated_key = parent_key ? "#{parent_key}[#{url_encode(k)}]" : url_encode(k)
128
- if v.is_a?(Hash) or v.is_a?(Array)
129
- result += flatten_params(v, calculated_key)
130
- else
131
- result << [calculated_key, v]
132
- end
133
- end
134
- elsif params.is_a?(Array)
135
- params.each_with_index do |v, i|
136
- calculated_key = parent_key ? "#{parent_key}[#{i}]" : i
137
- if v.is_a?(Hash) or v.is_a?(Array)
138
- result += flatten_params(v, calculated_key)
139
- else
140
- result << [calculated_key, v]
141
- end
142
- end
143
- end
144
- return result
145
- end
146
106
  end
147
107
  end