easypost 6.0.0 → 6.1.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: d84472fd17512bf9f3c4a2a670a025e76154bbe93fffa5a8e9139309af4feac2
4
- data.tar.gz: 4c7c6df535c2700e54751e878e239ba689be42faec299993a19993d6ceb2fc0f
3
+ metadata.gz: 78ff932eb3d904ba184e444260e54f89bc1130fa7a93f5483c3a322071035d99
4
+ data.tar.gz: 51fd77d26ae8bb1351880956a47cdcd1529c84e51f26a209b125e28a67b6fa9f
5
5
  SHA512:
6
- metadata.gz: b7337d5099aa61da9c7bf21ce1c7d9fe9c6e9b9f011ab615949934e6e42b192785f87481cadfcbd1e244d682f323edbfd6a42e6df409b900749e92d83d474c63
7
- data.tar.gz: fee3c31633179b4337ded644d83e61d4b7f776ac873954cf01b1f1c613044c8cdf46cd34b1f3a8a40333823050ff78eb0c432c6db1fe269adc113acc79efeae9
6
+ metadata.gz: 21b04b15fa14c1f82bdaf7b208201f66f186c8c5b6adc4d1a4e9040e93232b9c4f3793f0a5064eaaafca269818a75e2e7b33c6cb0476793da48735d087045da3
7
+ data.tar.gz: 15525784bb626e44c1469513ebc16663b8f8b0c882c46270514783118f21dc6b7b2afb4ec092fedfb0eae17325acb46a671292db385fae7a2dffca58de7d1ec9
data/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## v6.1.1 (2024-01-23)
4
+
5
+ - Fix issues funding wallet due to invalid internal function call
6
+
7
+ ## v6.1.0 (2024-01-08)
8
+
9
+ - Add `all_children` and `get_next_page_of_children` in `user` service
10
+
3
11
  ## v6.0.0 (2023-12-06)
4
12
 
5
13
  - Removes `with_carbon_offset` parameter from `create`, `buy` and `regenerate_rates` methods in the shipment service since now EasyPost offers carbon neutral shipments by default for free
data/Makefile CHANGED
@@ -40,8 +40,9 @@ publish:
40
40
 
41
41
  ## release - Cuts a release for the project on GitHub (requires GitHub CLI)
42
42
  # tag = The associated tag title of the release
43
+ # target = Target branch or full commit SHA
43
44
  release:
44
- gh release create ${tag} dist/*
45
+ gh release create ${tag} dist/* --target ${target}
45
46
 
46
47
  ## rubocop - lints the project with rubocop
47
48
  rubocop:
data/VERSION CHANGED
@@ -1 +1 @@
1
- 6.0.0
1
+ 6.1.1
data/easypost.gemspec CHANGED
@@ -24,7 +24,6 @@ Gem::Specification.new do |spec|
24
24
  spec.add_development_dependency 'brakeman', '~> 5.4'
25
25
  spec.add_development_dependency 'faraday', '~> 2.7.5' # used for integration tests
26
26
  spec.add_development_dependency 'pry', '~> 0.14'
27
- spec.add_development_dependency 'psych', '~> 5.1'
28
27
  spec.add_development_dependency 'rake', '~> 13.0'
29
28
  spec.add_development_dependency 'rdoc', '~> 6.5'
30
29
  spec.add_development_dependency 'rspec', '~> 3.12'
@@ -10,8 +10,11 @@ class EasyPost::Services::Service
10
10
 
11
11
  protected
12
12
 
13
- def get_all_helper(endpoint, cls, params, filters = nil)
14
- response = @client.make_request(:get, endpoint, params)
13
+ def get_all_helper(endpoint, cls, params, filters = nil, beta = false)
14
+ response = @client.make_request(
15
+ :get, endpoint, params,
16
+ beta ? 'beta' : EasyPost::InternalUtilities::Constants::API_VERSION,
17
+ )
15
18
 
16
19
  response[EasyPost::InternalUtilities::Constants::FILTERS_KEY] = filters unless filters.nil?
17
20
 
@@ -3,43 +3,9 @@
3
3
  require 'easypost/constants'
4
4
 
5
5
  class EasyPost::Services::Billing < EasyPost::Services::Service
6
- # Get payment method info (type of the payment method and ID of the payment method)
7
- def self.get_payment_method_info(priority)
8
- payment_methods = EasyPost::Services::Billing.retrieve_payment_methods
9
- payment_method_map = {
10
- 'primary' => 'primary_payment_method',
11
- 'secondary' => 'secondary_payment_method',
12
- }
13
-
14
- payment_method_to_use = payment_method_map[priority]
15
-
16
- error_string = EasyPost::Constants::INVALID_PAYMENT_METHOD
17
- suggestion = "Please use a valid payment method: #{payment_method_map.keys.join(', ')}"
18
- if payment_methods[payment_method_to_use].nil?
19
- raise EasyPost::Errors::InvalidParameterError.new(
20
- error_string,
21
- suggestion,
22
- )
23
- end
24
-
25
- payment_method_id = payment_methods[payment_method_to_use]['id']
26
-
27
- unless payment_method_id.nil?
28
- if payment_method_id.start_with?('card_')
29
- endpoint = '/v2/credit_cards'
30
- elsif payment_method_id.start_with?('bank_')
31
- endpoint = '/v2/bank_accounts'
32
- else
33
- raise EasyPost::Errors::InvalidObjectError.new(error_string)
34
- end
35
- end
36
-
37
- [endpoint, payment_method_id]
38
- end
39
-
40
6
  # Fund your EasyPost wallet by charging your primary or secondary card on file.
41
7
  def fund_wallet(amount, priority = 'primary')
42
- payment_info = EasyPost::Services::Billing.get_payment_method_info(priority.downcase)
8
+ payment_info = get_payment_method_info(priority.downcase)
43
9
  endpoint = payment_info[0]
44
10
  payment_id = payment_info[1]
45
11
 
@@ -52,7 +18,7 @@ class EasyPost::Services::Billing < EasyPost::Services::Service
52
18
 
53
19
  # Delete a payment method.
54
20
  def delete_payment_method(priority)
55
- payment_info = EasyPost::Services::Billing.get_payment_method_info(priority.downcase)
21
+ payment_info = get_payment_method_info(priority.downcase)
56
22
  endpoint = payment_info[0]
57
23
  payment_id = payment_info[1]
58
24
 
@@ -64,7 +30,7 @@ class EasyPost::Services::Billing < EasyPost::Services::Service
64
30
 
65
31
  # Retrieve all payment methods.
66
32
  def retrieve_payment_methods
67
- response = @client.make_request(:get, '/v2/payment_methods')
33
+ response = @client.make_request(:get, '/payment_methods')
68
34
  payment_methods = EasyPost::InternalUtilities::Json.convert_json_to_object(response)
69
35
 
70
36
  if payment_methods['id'].nil?
@@ -73,4 +39,40 @@ class EasyPost::Services::Billing < EasyPost::Services::Service
73
39
 
74
40
  payment_methods
75
41
  end
42
+
43
+ private
44
+
45
+ # Get payment method info (type of the payment method and ID of the payment method)
46
+ def get_payment_method_info(priority)
47
+ payment_methods = retrieve_payment_methods
48
+ payment_method_map = {
49
+ 'primary' => 'primary_payment_method',
50
+ 'secondary' => 'secondary_payment_method',
51
+ }
52
+
53
+ payment_method_to_use = payment_method_map[priority]
54
+
55
+ error_string = EasyPost::Constants::INVALID_PAYMENT_METHOD
56
+ suggestion = "Please use a valid payment method: #{payment_method_map.keys.join(', ')}"
57
+ if payment_methods[payment_method_to_use].nil?
58
+ raise EasyPost::Errors::InvalidParameterError.new(
59
+ error_string,
60
+ suggestion,
61
+ )
62
+ end
63
+
64
+ payment_method_id = payment_methods[payment_method_to_use]['id']
65
+
66
+ unless payment_method_id.nil?
67
+ if payment_method_id.start_with?('card_')
68
+ endpoint = '/credit_cards'
69
+ elsif payment_method_id.start_with?('bank_')
70
+ endpoint = '/bank_accounts'
71
+ else
72
+ raise EasyPost::Errors::InvalidObjectError.new(error_string)
73
+ end
74
+ end
75
+
76
+ [endpoint, payment_method_id]
77
+ end
76
78
  end
@@ -78,4 +78,21 @@ Please use `retrieve_api_keys_for_user` in the `api_key` service instead.'
78
78
 
79
79
  EasyPost::InternalUtilities::Json.convert_json_to_object(response, EasyPost::Models::Brand)
80
80
  end
81
+
82
+ # Retrieve all child Users.
83
+ def all_children(params = {})
84
+ filters = { key: 'children' }
85
+
86
+ get_all_helper('users/children', EasyPost::Models::User, params, filters)
87
+ end
88
+
89
+ # Get the next page of child users.
90
+ def get_next_page_of_children(collection, page_size = nil)
91
+ raise EasyPost::Errors::EndOfPaginationError.new unless more_pages?(collection)
92
+
93
+ params = { before_id: collection.children.last.id }
94
+ params[:page_size] = page_size unless page_size.nil?
95
+
96
+ all_children(params)
97
+ end
81
98
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: easypost
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.0.0
4
+ version: 6.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - EasyPost Developers
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-12-06 00:00:00.000000000 Z
11
+ date: 2024-01-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: brakeman
@@ -52,20 +52,6 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0.14'
55
- - !ruby/object:Gem::Dependency
56
- name: psych
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '5.1'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '5.1'
69
55
  - !ruby/object:Gem::Dependency
70
56
  name: rake
71
57
  requirement: !ruby/object:Gem::Requirement
@@ -352,7 +338,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
352
338
  - !ruby/object:Gem::Version
353
339
  version: '0'
354
340
  requirements: []
355
- rubygems_version: 3.4.10
341
+ rubygems_version: 3.5.4
356
342
  signing_key:
357
343
  specification_version: 4
358
344
  summary: EasyPost Ruby Client Library