easypost 3.0.0 → 3.1.3

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
  SHA1:
3
- metadata.gz: 677127854c0b4c489ee924bff20fac02917e38bf
4
- data.tar.gz: 443d834ebc6347f523ad956c91706d7cd0e819b2
3
+ metadata.gz: c78ad14a13a665a9397b5d2ade56cdad38a669f0
4
+ data.tar.gz: e73234c20adee8cfcbc37f2b93fb1c5aa2a6843d
5
5
  SHA512:
6
- metadata.gz: bd9b8a2b041853716139a7d8913d51539b166408d3dea0eba5772b6ab2ce643b0d89e19c2f4c55c9c3c124567c9fb4edeb11535f788af273d697c011b1787364
7
- data.tar.gz: fc58e08a4a748c936d60b048d2c1ce38191acde4a7a4f76653017ffb89e846f9551dbdbca6c4adf3a556ee5019cc8e7b4890631253f01db5bf9589b01ebb63d4
6
+ metadata.gz: 29e64cace8628e794a110868fbf3395fe560f1334ebe04218ccab054edf84f64631895196a09967ad06021b405162ee660eb29e86992847dfcfd45dc5b7b1549
7
+ data.tar.gz: f5e58cd6bdbe1cf61b3e272986470eb5beb7c9ba8738a4ebe05b727803c741a518ab5d64876ba2ff8bbb5ae2f331c8f6b977b4f53c1839336ebb72c3ef08337a
data/.travis.yml ADDED
@@ -0,0 +1,9 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.2
4
+ - 2.3
5
+ - 2.4
6
+ - 2.5
7
+ - 2.6
8
+ - 2.7
9
+ script: "bundle exec rspec"
data/CHANGELOG CHANGED
@@ -1,3 +1,25 @@
1
+ === 3.1.3 2020-06-26
2
+
3
+ * Fix bug causing Authorization header to be included in User-Agent header. All users must upgrade.
4
+
5
+ === 3.1.2 2020-06-24
6
+
7
+ * Bad gem push. New version required.
8
+
9
+ === 3.1.1 2020-06-23
10
+
11
+ * Fix bug where EasyPost.http_config was invalid when not explicitly initialized.
12
+
13
+ === 3.1.0 2020-06-23
14
+
15
+ * Add Shipment Invoice and Refund Report
16
+ * Remove dependencies on `RestClient` and `MultiJson`
17
+ * Remove some deprecated endpoints
18
+
19
+ === 3.0.1 2018-05-17
20
+
21
+ * Enforce TLS certificate validity by default
22
+
1
23
  === 3.0.0 2018-02-09
2
24
 
3
25
  * Require use of ruby ~> 2.0 and TLSv1.2
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # EasyPost Ruby Client Library
2
2
 
3
- [<img src="https://circleci.com/gh/EasyPost/easypost-ruby.png?circle-token=80adb5236ed1fdce20810b055af79c63c3d5796b">](https://circleci.com/gh/EasyPost/easypost-ruby)
3
+ [![Build Status](https://travis-ci.com/EasyPost/easypost-ruby.svg?branch=master)](https://travis-ci.com/EasyPost/easypost-ruby)
4
4
 
5
5
 
6
6
  EasyPost is a simple shipping API. You can sign up for an account at https://easypost.com
data/VERSION CHANGED
@@ -1 +1 @@
1
- 3.0.0
1
+ 3.1.3
data/easypost.gemspec CHANGED
@@ -1,27 +1,31 @@
1
1
  # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
2
+
3
+ lib = File.expand_path("../lib", __FILE__)
3
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'easypost/version'
5
+ require "easypost/version"
5
6
 
6
7
  Gem::Specification.new do |spec|
7
- spec.name = 'easypost'
8
- spec.version = EasyPost::VERSION
9
- spec.date = Time.now.strftime("%Y-%m-%d")
10
- spec.summary = 'EasyPost Ruby Client Library'
11
- spec.description = 'Client library for accessing the EasyPost shipping API via Ruby.'
12
- spec.authors = ['Sawyer Bateman']
13
- spec.email = 'contact@easypost.com'
14
- spec.homepage = 'https://www.easypost.com/docs'
8
+ spec.name = "easypost"
9
+ spec.version = EasyPost::VERSION
10
+ spec.licenses = ["MIT"]
11
+ spec.date = Time.now.strftime("%Y-%m-%d")
12
+ spec.summary = "EasyPost Ruby Client Library"
13
+ spec.description = "Client library for accessing the EasyPost shipping API via Ruby."
14
+ spec.authors = ["Jake Epstein", "Andrew Tribone", "James Brown"]
15
+ spec.email = "support@easypost.com"
16
+ spec.homepage = "https://www.easypost.com/docs"
15
17
 
16
- spec.files = `git ls-files -z`.split("\x0")
17
- spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
- spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
- spec.require_paths = ['lib']
20
- spec.required_ruby_version = '~> 2.0'
18
+ spec.files = `git ls-files -z`.split("\x0").reject do |f|
19
+ f.match(%r{^(test|spec|features)/})
20
+ end
21
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
22
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
23
+ spec.require_paths = ["lib"]
24
+ spec.required_ruby_version = "~> 2.2"
21
25
 
22
- spec.add_dependency 'rest-client', '>= 1.7'
23
- spec.add_dependency 'multi_json', '>= 1.3.0'
24
- spec.add_development_dependency 'bundler', '~> 1.7'
25
- spec.add_development_dependency 'rake', '~> 10.0'
26
- spec.add_development_dependency 'rspec', '~> 2.13'
26
+ spec.add_development_dependency "pry", "~> 0.13"
27
+ spec.add_development_dependency "rake", "~> 13.0"
28
+ spec.add_development_dependency "rspec", "~> 3.9"
29
+ spec.add_development_dependency "webmock", "~> 3.8"
30
+ spec.add_development_dependency "vcr", "~> 5.1"
27
31
  end
@@ -18,7 +18,7 @@ module EasyPost
18
18
  end
19
19
  end
20
20
 
21
- response, api_key = EasyPost.request(:post, url, api_key, {address: params})
21
+ response = EasyPost.make_request(:post, url, api_key, {address: params})
22
22
  return Util.convert_to_easypost_object(response, api_key)
23
23
  end
24
24
 
@@ -26,7 +26,7 @@ module EasyPost
26
26
  wrapped_params = {}
27
27
  wrapped_params[self.class_name().to_sym] = params
28
28
  wrapped_params[:carrier] = carrier
29
- response, api_key = EasyPost.request(:post, url + '/create_and_verify', api_key, wrapped_params)
29
+ response = EasyPost.make_request(:post, url + '/create_and_verify', api_key, wrapped_params)
30
30
 
31
31
  if response.has_key?(:address)
32
32
  if response.has_key?(:message)
@@ -41,13 +41,13 @@ module EasyPost
41
41
 
42
42
  def verify(params={}, carrier=nil)
43
43
  begin
44
- response, api_key = EasyPost.request(:get, url + '/verify?carrier=' + String(carrier), @api_key, params)
44
+ response = EasyPost.make_request(:get, url + '/verify?carrier=' + String(carrier), @api_key, params)
45
45
  rescue
46
46
  raise Error.new("Unable to verify address.")
47
47
  end
48
48
 
49
- if response.has_key?(:address)
50
- return EasyPost::Util::convert_to_easypost_object(response[:address], api_key)
49
+ if response.has_key?("address")
50
+ return EasyPost::Util::convert_to_easypost_object(response["address"], api_key)
51
51
  else
52
52
  raise Error.new("Unable to verify address.")
53
53
  end
@@ -4,47 +4,47 @@ module EasyPost
4
4
  def self.create_and_buy(params={}, api_key=nil)
5
5
  wrapped_params = {}
6
6
  wrapped_params[self.class_name().to_sym] = params
7
- response, api_key = EasyPost.request(:post, url + '/create_and_buy', api_key, wrapped_params)
7
+ response = EasyPost.make_request(:post, url + '/create_and_buy', api_key, wrapped_params)
8
8
 
9
9
  return Util.convert_to_easypost_object(response, api_key)
10
10
  end
11
11
 
12
12
  def buy(params={})
13
- response, api_key = EasyPost.request(:post, url + '/buy', @api_key, params)
13
+ response = EasyPost.make_request(:post, url + '/buy', @api_key, params)
14
14
  self.refresh_from(response, @api_key, true)
15
15
 
16
16
  return self
17
17
  end
18
18
 
19
19
  def label(params={})
20
- response, api_key = EasyPost.request(:post, url + '/label', @api_key, params)
20
+ response = EasyPost.make_request(:post, url + '/label', @api_key, params)
21
21
  self.refresh_from(response, @api_key, true)
22
22
 
23
23
  return self
24
24
  end
25
25
 
26
26
  def remove_shipments(params={})
27
- response, api_key = EasyPost.request(:post, url + '/remove_shipments', @api_key, params)
27
+ response = EasyPost.make_request(:post, url + '/remove_shipments', @api_key, params)
28
28
  self.refresh_from(response, @api_key, true)
29
29
 
30
30
  return self
31
31
  end
32
32
 
33
33
  def add_shipments(params={})
34
- response, api_key = EasyPost.request(:post, url + '/add_shipments', @api_key, params)
34
+ response = EasyPost.make_request(:post, url + '/add_shipments', @api_key, params)
35
35
  self.refresh_from(response, @api_key, true)
36
36
 
37
37
  return self
38
38
  end
39
39
 
40
40
  def stamp_and_barcode_by_reference(params={})
41
- response, api_key = EasyPost.request(:get, url + '/stamp_and_barcode_by_reference', @api_key, params)
41
+ response = EasyPost.make_request(:get, url + '/stamp_and_barcode_by_reference', @api_key, params)
42
42
 
43
43
  return response
44
44
  end
45
45
 
46
46
  def create_scan_form(params={})
47
- response, api_key = EasyPost.request(:post, url + '/scan_form', @api_key, params)
47
+ response = EasyPost.make_request(:post, url + '/scan_form', @api_key, params)
48
48
 
49
49
  return response
50
50
  end
@@ -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
data/lib/easypost/item.rb CHANGED
@@ -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
data/lib/easypost/user.rb CHANGED
@@ -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
 
data/lib/easypost/util.rb CHANGED
@@ -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