easypost 3.1.4 → 3.1.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,30 +1,28 @@
1
- module EasyPost
2
- class Order < Resource
1
+ class EasyPost::Order < EasyPost::Resource
3
2
 
4
- def get_rates(params={})
5
- response = EasyPost.make_request(:get, url + '/rates', @api_key, params)
6
- self.refresh_from(response, @api_key, true)
3
+ def get_rates(params={})
4
+ response = EasyPost.make_request(:get, url + '/rates', @api_key, params)
5
+ self.refresh_from(response, @api_key, true)
7
6
 
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)
7
+ return self
8
+ end
21
9
 
22
- return self
10
+ def buy(params={})
11
+ if params.instance_of?(EasyPost::Rate)
12
+ temp = params.clone
13
+ params = {}
14
+ params[:carrier] = temp.carrier
15
+ params[:service] = temp.service
23
16
  end
24
17
 
25
- def self.all(filters={}, api_key=nil)
26
- raise NotImplementedError.new('Order.all not implemented.')
27
- end
18
+ response = EasyPost.make_request(:post, url + '/buy', @api_key, params)
19
+ self.refresh_from(response, @api_key, true)
20
+
21
+ return self
22
+ end
28
23
 
24
+ def self.all(filters={}, api_key=nil)
25
+ raise NotImplementedError.new('Order.all not implemented.')
29
26
  end
27
+
30
28
  end
@@ -1,4 +1,2 @@
1
- module EasyPost
2
- class Parcel < Resource
3
- end
1
+ class EasyPost::Parcel < EasyPost::Resource
4
2
  end
@@ -1,30 +1,26 @@
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
1
+ class EasyPost::Pickup < EasyPost::Resource
2
+ def buy(params={})
3
+ if params.instance_of?(EasyPost::PickupRate)
4
+ temp = params.clone
5
+ params = {}
6
+ params[:carrier] = temp.carrier
7
+ params[:service] = temp.service
16
8
  end
17
9
 
18
- def cancel(params={})
19
- response = EasyPost.make_request(:post, url + '/cancel', @api_key, params)
20
- self.refresh_from(response, @api_key, true)
10
+ response = EasyPost.make_request(:post, url + '/buy', @api_key, params)
11
+ self.refresh_from(response, @api_key, true)
21
12
 
22
- return self
23
- end
13
+ return self
14
+ end
24
15
 
25
- def self.all(filters={}, api_key=nil)
26
- raise NotImplementedError.new('Pickup.all not implemented.')
27
- end
16
+ def cancel(params={})
17
+ response = EasyPost.make_request(:post, url + '/cancel', @api_key, params)
18
+ self.refresh_from(response, @api_key, true)
19
+
20
+ return self
21
+ end
28
22
 
23
+ def self.all(filters={}, api_key=nil)
24
+ raise NotImplementedError.new('Pickup.all not implemented.')
29
25
  end
30
26
  end
@@ -1,5 +1,3 @@
1
- module EasyPost
2
- class PickupRate < Resource
1
+ class EasyPost::PickupRate < EasyPost::Resource
3
2
 
4
- end
5
3
  end
@@ -1,4 +1,2 @@
1
- module EasyPost
2
- class PostageLabel < Resource
3
- end
1
+ class EasyPost::PostageLabel < EasyPost::Resource
4
2
  end
@@ -1,6 +1,2 @@
1
- module EasyPost
2
- class PrintJob < Resource
3
- end
1
+ class EasyPost::PrintJob < EasyPost::Resource
4
2
  end
5
-
6
-
@@ -1,28 +1,24 @@
1
- module EasyPost
2
- class Printer < Resource
1
+ class EasyPost::Printer < EasyPost::Resource
3
2
 
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
3
+ def job
4
+ response = EasyPost.make_request(
5
+ :get, url + '/jobs', @api_key
6
+ )
7
+ return EasyPost::Util::convert_to_easypost_object(response, api_key)
8
+ end
17
9
 
18
- response = EasyPost.make_request(
19
- :post, url + '/print_postage_label', @api_key, params
20
- )
21
- return true
22
- rescue
23
- return false
10
+ def print(params={})
11
+ if params.instance_of?(EasyPost::PostageLabel)
12
+ temp = params.clone
13
+ params = {}
14
+ params[:postage_label] = temp
24
15
  end
25
16
 
17
+ response = EasyPost.make_request(
18
+ :post, url + '/print_postage_label', @api_key, params
19
+ )
20
+ true
21
+ rescue
22
+ false
26
23
  end
27
24
  end
28
-
@@ -1,4 +1,2 @@
1
- module EasyPost
2
- class Rate < Resource
3
- end
1
+ class EasyPost::Rate < EasyPost::Resource
4
2
  end
@@ -1,4 +1,2 @@
1
- module EasyPost
2
- class Refund < Resource
3
- end
1
+ class EasyPost::Refund < EasyPost::Resource
4
2
  end
@@ -1,31 +1,29 @@
1
- module EasyPost
2
- class Report < Resource
3
- def self.create(params={}, api_key=nil)
4
- url = "#{self.url}/#{params[:type]}"
5
- wrapped_params = {}
6
- wrapped_params[class_name.to_sym] = params
1
+ class EasyPost::Report < EasyPost::Resource
2
+ def self.create(params={}, api_key=nil)
3
+ url = "#{self.url}/#{params[:type]}"
4
+ wrapped_params = {}
5
+ wrapped_params[class_name.to_sym] = params
7
6
 
8
- response = EasyPost.make_request(:post, url, api_key, params)
9
- return Util.convert_to_easypost_object(response, api_key)
10
- end
11
-
12
- def self.retrieve(params, api_key=nil)
13
- id = if params.is_a?(String)
14
- params
15
- else
16
- params[:id]
17
- end
7
+ response = EasyPost.make_request(:post, url, api_key, params)
8
+ return EasyPost::Util.convert_to_easypost_object(response, api_key)
9
+ end
18
10
 
19
- instance = self.new(id, api_key)
20
- instance.refresh
21
- return instance
11
+ def self.retrieve(params, api_key=nil)
12
+ id = if params.is_a?(String)
13
+ params
14
+ else
15
+ params[:id]
22
16
  end
23
17
 
24
- def self.all(filters={}, api_key=nil)
25
- url = "#{self.url}/#{filters[:type]}"
18
+ instance = self.new(id, api_key)
19
+ instance.refresh
20
+ return instance
21
+ end
26
22
 
27
- response = EasyPost.make_request(:get, url, api_key, filters)
28
- return EasyPost::Util::convert_to_easypost_object(response, api_key) if response
29
- end
23
+ def self.all(filters={}, api_key=nil)
24
+ url = "#{self.url}/#{filters[:type]}"
25
+
26
+ response = EasyPost.make_request(:get, url, api_key, filters)
27
+ return EasyPost::Util::convert_to_easypost_object(response, api_key) if response
30
28
  end
31
29
  end
@@ -1,77 +1,75 @@
1
- module EasyPost
2
- class Resource < EasyPostObject
3
- def self.class_name
4
- camel = self.name.split('::')[-1]
5
- snake = camel[0..0] + camel[1..-1].gsub(/([A-Z])/, '_\1')
6
- return snake.downcase
7
- end
1
+ class EasyPost::Resource < EasyPost::EasyPostObject
2
+ def self.class_name
3
+ camel = self.name.split('::')[-1]
4
+ snake = camel[0..0] + camel[1..-1].gsub(/([A-Z])/, '_\1')
5
+ return snake.downcase
6
+ end
8
7
 
9
- def self.url
10
- if self.class_name == 'resource'
11
- raise NotImplementedError.new('Resource is an abstract class. You should perform actions on its subclasses (Address, Shipment, etc.)')
12
- end
13
- if(self.class_name[-1..-1] == 's' || self.class_name[-1..-1] == 'h')
14
- return "/v2/#{CGI.escape(self.class_name.downcase)}es"
15
- else
16
- return "/v2/#{CGI.escape(class_name.downcase)}s"
17
- end
8
+ def self.url
9
+ if self.class_name == 'resource'
10
+ raise NotImplementedError.new('Resource is an abstract class. You should perform actions on its subclasses (Address, Shipment, etc.)')
18
11
  end
19
-
20
- def url
21
- unless self.id
22
- raise Error.new("Could not determine which URL to request: #{self.class} instance has invalid ID: #{self.id.inspect}")
23
- end
24
- return "#{self.class.url}/#{CGI.escape(id)}"
12
+ if(self.class_name[-1..-1] == 's' || self.class_name[-1..-1] == 'h')
13
+ return "/v2/#{CGI.escape(self.class_name.downcase)}es"
14
+ else
15
+ return "/v2/#{CGI.escape(class_name.downcase)}s"
25
16
  end
17
+ end
26
18
 
27
- def refresh
28
- response = EasyPost.make_request(:get, url, @api_key, @retrieve_options)
29
- refresh_from(response, api_key)
30
- return self
19
+ def url
20
+ unless self.id
21
+ raise EasyPost::Error.new("Could not determine which URL to request: #{self.class} instance has invalid ID: #{self.id.inspect}")
31
22
  end
23
+ return "#{self.class.url}/#{CGI.escape(id)}"
24
+ end
32
25
 
33
- def self.all(filters={}, api_key=nil)
34
- response = EasyPost.make_request(:get, url, api_key, filters)
35
- return Util.convert_to_easypost_object(response, api_key)
36
- end
26
+ def refresh
27
+ response = EasyPost.make_request(:get, url, @api_key, @retrieve_options)
28
+ refresh_from(response, api_key)
29
+ return self
30
+ end
37
31
 
38
- def self.retrieve(id, api_key=nil)
39
- instance = self.new(id, api_key)
40
- instance.refresh
41
- return instance
42
- end
32
+ def self.all(filters={}, api_key=nil)
33
+ response = EasyPost.make_request(:get, url, api_key, filters)
34
+ return EasyPost::Util.convert_to_easypost_object(response, api_key)
35
+ end
43
36
 
44
- def self.create(params={}, api_key=nil)
45
- wrapped_params = {}
46
- wrapped_params[self.class_name().to_sym] = params
47
- response = EasyPost.make_request(:post, self.url, api_key, wrapped_params)
48
- return Util.convert_to_easypost_object(response, api_key)
49
- end
37
+ def self.retrieve(id, api_key=nil)
38
+ instance = self.new(id, api_key)
39
+ instance.refresh
40
+ return instance
41
+ end
50
42
 
51
- def delete
52
- response = EasyPost.make_request(:delete, url, @api_key)
53
- refresh_from(response, api_key)
54
- return self
55
- end
43
+ def self.create(params={}, api_key=nil)
44
+ wrapped_params = {}
45
+ wrapped_params[self.class_name().to_sym] = params
46
+ response = EasyPost.make_request(:post, self.url, api_key, wrapped_params)
47
+ return EasyPost::Util.convert_to_easypost_object(response, api_key)
48
+ end
56
49
 
57
- def save
58
- if @unsaved_values.length > 0
59
- values = {}
60
- @unsaved_values.each { |k| values[k] = @values[k] }
50
+ def delete
51
+ response = EasyPost.make_request(:delete, url, @api_key)
52
+ refresh_from(response, api_key)
53
+ return self
54
+ end
55
+
56
+ def save
57
+ if @unsaved_values.length > 0
58
+ values = {}
59
+ @unsaved_values.each { |k| values[k] = @values[k] }
61
60
 
62
- for key in @unsaved_values
63
- value = values[key]
64
- if value.is_a?(EasyPost::EasyPostObject)
65
- values[key] = value.flatten_unsaved
66
- end
61
+ for key in @unsaved_values
62
+ value = values[key]
63
+ if value.is_a?(EasyPost::EasyPostObject)
64
+ values[key] = value.flatten_unsaved
67
65
  end
66
+ end
68
67
 
69
- wrapped_params = {self.class.class_name => values}
68
+ wrapped_params = {self.class.class_name => values}
70
69
 
71
- response = EasyPost.make_request(:put, url, @api_key, wrapped_params)
72
- refresh_from(response, api_key)
73
- end
74
- return self
70
+ response = EasyPost.make_request(:put, url, @api_key, wrapped_params)
71
+ refresh_from(response, api_key)
75
72
  end
73
+ return self
76
74
  end
77
75
  end
@@ -1,8 +1,6 @@
1
- module EasyPost
2
- class ScanForm < Resource
3
- def self.create(params={}, api_key=nil)
4
- response = EasyPost.make_request(:post, self.url, api_key, params)
5
- return Util.convert_to_easypost_object(response, api_key)
6
- end
1
+ class EasyPost::ScanForm < EasyPost::Resource
2
+ def self.create(params={}, api_key=nil)
3
+ response = EasyPost.make_request(:post, self.url, api_key, params)
4
+ return EasyPost::Util.convert_to_easypost_object(response, api_key)
7
5
  end
8
6
  end
@@ -1,120 +1,116 @@
1
- module EasyPost
2
- class Shipment < Resource
1
+ class EasyPost::Shipment < EasyPost::Resource
2
+ def get_rates(params={})
3
+ response = EasyPost.make_request(:get, url + '/rates', @api_key, params)
4
+ self.refresh_from(response, @api_key, true)
3
5
 
4
- def get_rates(params={})
5
- response = EasyPost.make_request(:get, url + '/rates', @api_key, params)
6
- self.refresh_from(response, @api_key, true)
6
+ return self
7
+ end
7
8
 
8
- return self
9
+ def buy(params={})
10
+ if params.instance_of?(EasyPost::Rate)
11
+ temp = params.clone
12
+ params = {}
13
+ params[:rate] = temp
9
14
  end
10
15
 
11
- def buy(params={})
12
- if params.instance_of?(EasyPost::Rate)
13
- temp = params.clone
14
- params = {}
15
- params[:rate] = temp
16
- end
16
+ response = EasyPost.make_request(:post, url + '/buy', @api_key, params)
17
+ self.refresh_from(response, @api_key, true)
17
18
 
18
- response = EasyPost.make_request(:post, url + '/buy', @api_key, params)
19
- self.refresh_from(response, @api_key, true)
19
+ return self
20
+ end
20
21
 
21
- return self
22
+ def insure(params={})
23
+ if params.is_a?(Integer) || params.is_a?(Float)
24
+ temp = params.clone
25
+ params = {}
26
+ params[:amount] = temp
22
27
  end
23
28
 
24
- def insure(params={})
25
- if params.is_a?(Integer) || params.is_a?(Float)
26
- temp = params.clone
27
- params = {}
28
- params[:amount] = temp
29
- end
29
+ response = EasyPost.make_request(:post, url + '/insure', @api_key, params)
30
+ self.refresh_from(response, @api_key, true)
30
31
 
31
- response = EasyPost.make_request(:post, url + '/insure', @api_key, params)
32
- self.refresh_from(response, @api_key, true)
32
+ return self
33
+ end
33
34
 
34
- return self
35
- end
35
+ def refund(params={})
36
+ response = EasyPost.make_request(:get, url + '/refund', @api_key, params)
37
+ self.refresh_from(response, @api_key, true)
36
38
 
37
- def refund(params={})
38
- response = EasyPost.make_request(:get, url + '/refund', @api_key, params)
39
- self.refresh_from(response, @api_key, true)
39
+ return self
40
+ end
40
41
 
41
- return self
42
+ def print(params={})
43
+ if params.instance_of?(EasyPost::Printer)
44
+ return params.print(self.postage_label)
42
45
  end
46
+ return false
47
+ end
43
48
 
44
- def print(params={})
45
- if params.instance_of?(EasyPost::Printer)
46
- return params.print(self.postage_label)
47
- end
48
- return false
49
+ def label(params={})
50
+ if params.is_a?(String)
51
+ temp = params.clone
52
+ params = {}
53
+ params[:file_format] = temp
49
54
  end
50
55
 
51
- def label(params={})
52
- if params.is_a?(String)
53
- temp = params.clone
54
- params = {}
55
- params[:file_format] = temp
56
- end
57
-
58
- response = EasyPost.make_request(:get, url + '/label', @api_key, params)
59
- self.refresh_from(response, @api_key, true)
56
+ response = EasyPost.make_request(:get, url + '/label', @api_key, params)
57
+ self.refresh_from(response, @api_key, true)
60
58
 
61
- return self
62
- end
59
+ return self
60
+ end
63
61
 
64
- def lowest_rate(carriers=[], services=[])
65
- lowest = nil
62
+ def lowest_rate(carriers=[], services=[])
63
+ lowest = nil
66
64
 
67
- self.get_rates unless self.rates
65
+ self.get_rates unless self.rates
68
66
 
69
- carriers = EasyPost::Util.normalize_string_list(carriers)
67
+ carriers = EasyPost::Util.normalize_string_list(carriers)
70
68
 
71
- negative_carriers = []
72
- carriers_copy = carriers.clone
73
- carriers_copy.each do |carrier|
74
- if carrier[0,1] == '!'
75
- negative_carriers << carrier[1..-1]
76
- carriers.delete(carrier)
77
- end
69
+ negative_carriers = []
70
+ carriers_copy = carriers.clone
71
+ carriers_copy.each do |carrier|
72
+ if carrier[0,1] == '!'
73
+ negative_carriers << carrier[1..-1]
74
+ carriers.delete(carrier)
78
75
  end
76
+ end
79
77
 
80
- services = EasyPost::Util.normalize_string_list(services)
78
+ services = EasyPost::Util.normalize_string_list(services)
81
79
 
82
- negative_services = []
83
- services_copy = services.clone
84
- services_copy.each do |service|
85
- if service[0,1] == '!'
86
- negative_services << service[1..-1]
87
- services.delete(service)
88
- end
80
+ negative_services = []
81
+ services_copy = services.clone
82
+ services_copy.each do |service|
83
+ if service[0,1] == '!'
84
+ negative_services << service[1..-1]
85
+ services.delete(service)
89
86
  end
87
+ end
88
+
89
+ self.rates.each do |k|
90
90
 
91
- self.rates.each do |k|
92
-
93
- rate_carrier = k.carrier.downcase
94
- if carriers.size() > 0 && !carriers.include?(rate_carrier)
95
- next
96
- end
97
- if negative_carriers.size() > 0 && negative_carriers.include?(rate_carrier)
98
- next
99
- end
100
-
101
- rate_service = k.service.downcase
102
- if services.size() > 0 && !services.include?(rate_service)
103
- next
104
- end
105
- if negative_services.size() > 0 && negative_services.include?(rate_service)
106
- next
107
- end
108
-
109
- if lowest == nil || k.rate.to_f < lowest.rate.to_f
110
- lowest = k
111
- end
91
+ rate_carrier = k.carrier.downcase
92
+ if carriers.size() > 0 && !carriers.include?(rate_carrier)
93
+ next
94
+ end
95
+ if negative_carriers.size() > 0 && negative_carriers.include?(rate_carrier)
96
+ next
112
97
  end
113
98
 
114
- raise Error.new('No rates found.') if lowest == nil
99
+ rate_service = k.service.downcase
100
+ if services.size() > 0 && !services.include?(rate_service)
101
+ next
102
+ end
103
+ if negative_services.size() > 0 && negative_services.include?(rate_service)
104
+ next
105
+ end
115
106
 
116
- return lowest
107
+ if lowest == nil || k.rate.to_f < lowest.rate.to_f
108
+ lowest = k
109
+ end
117
110
  end
118
111
 
112
+ raise EasyPost::Error.new('No rates found.') if lowest == nil
113
+
114
+ return lowest
119
115
  end
120
116
  end