paychex 0.3.3 → 0.3.4

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: b108a5bafb14b19e27ff229025979dfacc3cbfda66fc85d090bafe0938cfd9ac
4
- data.tar.gz: 10a0d2572db4ad5aa98af00ca09823773cc2cde782e71ce929dc2b07f650b388
3
+ metadata.gz: 3a0e9b796ff8bbed7975f38538ce1249dba655105902ddb09d040ead0a1a73fb
4
+ data.tar.gz: 82a381abe282825c4ea363dc529b6cc38d7d948177867acdbc7951cbd1748b48
5
5
  SHA512:
6
- metadata.gz: 5012a0ccd1850760585823bca158af65e653c88fac133edb5f2c077cf5a797284f7c4cc25a8874ba9e80257e84ad0d12a458f3e827d2b9803fdba7f7918f9301
7
- data.tar.gz: 2cc60fd55900567803106581ea33a8a20f881d4f1a58d2cdeb0e062740fb9d7318bc91fc107c281100dc002b80958babd0e051c42b09c526616ab0c82a59daad
6
+ metadata.gz: 4cf9c380ba369beff5ad7b654156e1d303ffaa6a11507e869cf6fd0032cd84b0d1ce231415e8910d882c7913c7bc22fee5923bb98ed87be37a15f46950d2ba6b
7
+ data.tar.gz: f4f8e193fb4ae7aa82a0c36283f3500e13a12f9c654f286f4ad032436915757a6788fa932910f4149fd3866c6532539cef168180f78183fa58f7cff5c00be8d1
data/Gemfile.lock CHANGED
@@ -1,65 +1,65 @@
1
- PATH
2
- remote: .
3
- specs:
4
- paychex (0.3.3)
5
- addressable
6
- faraday
7
- faraday_middleware
8
- rexml
9
-
10
- GEM
11
- remote: https://rubygems.org/
12
- specs:
13
- addressable (2.7.0)
14
- public_suffix (>= 2.0.2, < 5.0)
15
- byebug (11.1.3)
16
- coderay (1.1.3)
17
- crack (0.4.4)
18
- diff-lcs (1.4.4)
19
- faraday (1.1.0)
20
- multipart-post (>= 1.2, < 3)
21
- ruby2_keywords
22
- faraday_middleware (1.0.0)
23
- faraday (~> 1.0)
24
- hashdiff (1.0.1)
25
- method_source (1.0.0)
26
- multipart-post (2.1.1)
27
- pry (0.13.1)
28
- coderay (~> 1.1)
29
- method_source (~> 1.0)
30
- public_suffix (4.0.6)
31
- rake (13.0.1)
32
- rexml (3.2.5)
33
- rspec (3.9.0)
34
- rspec-core (~> 3.9.0)
35
- rspec-expectations (~> 3.9.0)
36
- rspec-mocks (~> 3.9.0)
37
- rspec-core (3.9.3)
38
- rspec-support (~> 3.9.3)
39
- rspec-expectations (3.9.3)
40
- diff-lcs (>= 1.2.0, < 2.0)
41
- rspec-support (~> 3.9.0)
42
- rspec-mocks (3.9.1)
43
- diff-lcs (>= 1.2.0, < 2.0)
44
- rspec-support (~> 3.9.0)
45
- rspec-support (3.9.4)
46
- ruby2_keywords (0.0.4)
47
- webmock (3.9.3)
48
- addressable (>= 2.3.6)
49
- crack (>= 0.3.2)
50
- hashdiff (>= 0.4.0, < 2.0.0)
51
-
52
- PLATFORMS
53
- ruby
54
-
55
- DEPENDENCIES
56
- bundler (>= 1.17)
57
- byebug
58
- paychex!
59
- pry
60
- rake (>= 12.3.3)
61
- rspec (>= 3.9.0)
62
- webmock
63
-
64
- BUNDLED WITH
65
- 2.4.4
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ paychex (0.3.4)
5
+ addressable
6
+ faraday
7
+ faraday_middleware
8
+ rexml
9
+
10
+ GEM
11
+ remote: https://rubygems.org/
12
+ specs:
13
+ addressable (2.7.0)
14
+ public_suffix (>= 2.0.2, < 5.0)
15
+ byebug (11.1.3)
16
+ coderay (1.1.3)
17
+ crack (0.4.4)
18
+ diff-lcs (1.4.4)
19
+ faraday (1.1.0)
20
+ multipart-post (>= 1.2, < 3)
21
+ ruby2_keywords
22
+ faraday_middleware (1.0.0)
23
+ faraday (~> 1.0)
24
+ hashdiff (1.0.1)
25
+ method_source (1.0.0)
26
+ multipart-post (2.1.1)
27
+ pry (0.13.1)
28
+ coderay (~> 1.1)
29
+ method_source (~> 1.0)
30
+ public_suffix (4.0.6)
31
+ rake (13.0.1)
32
+ rexml (3.2.5)
33
+ rspec (3.9.0)
34
+ rspec-core (~> 3.9.0)
35
+ rspec-expectations (~> 3.9.0)
36
+ rspec-mocks (~> 3.9.0)
37
+ rspec-core (3.9.3)
38
+ rspec-support (~> 3.9.3)
39
+ rspec-expectations (3.9.3)
40
+ diff-lcs (>= 1.2.0, < 2.0)
41
+ rspec-support (~> 3.9.0)
42
+ rspec-mocks (3.9.1)
43
+ diff-lcs (>= 1.2.0, < 2.0)
44
+ rspec-support (~> 3.9.0)
45
+ rspec-support (3.9.4)
46
+ ruby2_keywords (0.0.4)
47
+ webmock (3.9.3)
48
+ addressable (>= 2.3.6)
49
+ crack (>= 0.3.2)
50
+ hashdiff (>= 0.4.0, < 2.0.0)
51
+
52
+ PLATFORMS
53
+ ruby
54
+
55
+ DEPENDENCIES
56
+ bundler (>= 1.17)
57
+ byebug
58
+ paychex!
59
+ pry
60
+ rake (>= 12.3.3)
61
+ rspec (>= 3.9.0)
62
+ webmock
63
+
64
+ BUNDLED WITH
65
+ 2.4.4
@@ -2,9 +2,39 @@ module Paychex
2
2
  class Client
3
3
  module Companies
4
4
  # Get a list of all the linked companies
5
- # This will be unavailable once we have 200+ linked companies
6
5
  def linked_companies
7
- get('companies')
6
+ limit = per_page
7
+ opts = { limit: limit, offset: 0 }
8
+ response_content = []
9
+ current_page = 1
10
+
11
+ response = companies(opts)
12
+
13
+ begin
14
+ while response && response.body
15
+ companies_count = response.body.fetch('metadata').fetch('pagination').fetch('total')
16
+
17
+ break unless companies_count
18
+
19
+ no_of_pages = (companies_count.to_f / limit).ceil
20
+
21
+ companies_content = response.body.fetch('content').to_a
22
+ companies_content = companies_content.select { |c| c['hasPermission'] } if companies_content
23
+ response_content += companies_content
24
+
25
+ current_page += 1
26
+ if current_page <= no_of_pages
27
+ opts = { limit: limit, offset: (current_page - 1) * limit }
28
+ response = companies(opts)
29
+ else
30
+ break
31
+ end
32
+ end
33
+ rescue StandardError => e
34
+ return response_content
35
+ end
36
+
37
+ response_content
8
38
  end
9
39
 
10
40
  # Get profile of a linked company
@@ -85,5 +115,15 @@ module Paychex
85
115
  ret
86
116
  end
87
117
  end
118
+
119
+ private
120
+
121
+ def companies(options)
122
+ begin
123
+ get('companies', options)
124
+ rescue => e
125
+ nil
126
+ end
127
+ end
88
128
  end
89
129
  end
@@ -1,98 +1,98 @@
1
- require "paychex/version"
2
-
3
- module Paychex
4
- # Defines constants and methods related to configuration
5
- module Configuration
6
- # An array of valid keys in the options hash when configuring a {Paychex::API}
7
- VALID_OPTIONS_KEYS = [
8
- :access_token,
9
- :host,
10
- :endpoint,
11
- :format,
12
- :connection_options,
13
- :proxy,
14
- :environment,
15
- :user_agent,
16
- :per_page,
17
- :timeout,
18
- :open_timeout,
19
- :token_timeout,
20
- ].freeze
21
-
22
- # By default, don't set an access_token
23
- DEFAULT_ACCESS_TOKEN = nil
24
-
25
- # By default, return 20 resources per page when there is an pagination.
26
- DEFAULT_PER_PAGE = 20
27
-
28
- # By default, don't set connection options.
29
- DEFAULT_CONNECTION_OPTIONS = {}
30
-
31
- # Default timeout time is 60 seconds
32
- DEFAULT_TIMEOUT = 60
33
-
34
- # By default, the open timeout is 60 seconds.
35
- DEFAULT_OPEN_TIMEOUT = 60
36
-
37
- DEFAULT_TOKEN_TIMEOUT = Time.new
38
-
39
- # By default, use sandbox environment
40
- DEFAULT_HOST = "https://sandbox.api.paychex.com".freeze
41
-
42
- # The endpoint that will be used to connect if none is set
43
- DEFAULT_ENDPOINT = "https://sandbox.api.paychex.com/".freeze
44
-
45
- # The response format appended to the path and sent in the 'Accept' header if none is set
46
- #
47
- # @note JSON is the only available format at this time
48
- DEFAULT_FORMAT = :json
49
-
50
- # By default, don't use a proxy server
51
- DEFAULT_PROXY = nil
52
-
53
- # By default, environment will be sandbox
54
- DEFAULT_ENVIRONMENT = "sandbox"
55
-
56
- # The user agent that will be sent to the API endpoint if none is set
57
- DEFAULT_USER_AGENT = "Paychex Ruby Gem #{Paychex::VERSION}".freeze
58
-
59
- # An array of valid request/response formats
60
- VALID_FORMATS = [:json].freeze
61
-
62
- # @private
63
- attr_accessor *VALID_OPTIONS_KEYS
64
-
65
- # When this module is extended, set all configuration options to their default values
66
- def self.extended(base)
67
- base.reset
68
- end
69
-
70
- # Convenience method to allow configuration options to be set in a block
71
- def configure
72
- yield self
73
- end
74
-
75
- # Create a hash of options and their values
76
- def options
77
- VALID_OPTIONS_KEYS.inject({}) do |option, key|
78
- option.merge!(key => send(key))
79
- end
80
- end
81
-
82
- # Reset all configuration options to defaults
83
- def reset
84
- self.access_token = DEFAULT_ACCESS_TOKEN
85
- self.host = DEFAULT_HOST
86
- self.endpoint = DEFAULT_ENDPOINT
87
- self.connection_options = DEFAULT_CONNECTION_OPTIONS
88
- self.format = DEFAULT_FORMAT
89
- self.proxy = DEFAULT_PROXY
90
- self.environment = DEFAULT_ENVIRONMENT
91
- self.user_agent = DEFAULT_USER_AGENT
92
- self.per_page = DEFAULT_PER_PAGE
93
- self.timeout = DEFAULT_TIMEOUT
94
- self.open_timeout = DEFAULT_OPEN_TIMEOUT
95
- self.token_timeout = DEFAULT_TOKEN_TIMEOUT
96
- end
97
- end
98
- end
1
+ require "paychex/version"
2
+
3
+ module Paychex
4
+ # Defines constants and methods related to configuration
5
+ module Configuration
6
+ # An array of valid keys in the options hash when configuring a {Paychex::API}
7
+ VALID_OPTIONS_KEYS = [
8
+ :access_token,
9
+ :host,
10
+ :endpoint,
11
+ :format,
12
+ :connection_options,
13
+ :proxy,
14
+ :environment,
15
+ :user_agent,
16
+ :per_page,
17
+ :timeout,
18
+ :open_timeout,
19
+ :token_timeout,
20
+ ].freeze
21
+
22
+ # By default, don't set an access_token
23
+ DEFAULT_ACCESS_TOKEN = nil
24
+
25
+ # By default, return 20 resources per page when there is an pagination.
26
+ DEFAULT_PER_PAGE = 100
27
+
28
+ # By default, don't set connection options.
29
+ DEFAULT_CONNECTION_OPTIONS = {}
30
+
31
+ # Default timeout time is 60 seconds
32
+ DEFAULT_TIMEOUT = 60
33
+
34
+ # By default, the open timeout is 60 seconds.
35
+ DEFAULT_OPEN_TIMEOUT = 60
36
+
37
+ DEFAULT_TOKEN_TIMEOUT = Time.new
38
+
39
+ # By default, use sandbox environment
40
+ DEFAULT_HOST = "https://sandbox.api.paychex.com".freeze
41
+
42
+ # The endpoint that will be used to connect if none is set
43
+ DEFAULT_ENDPOINT = "https://sandbox.api.paychex.com/".freeze
44
+
45
+ # The response format appended to the path and sent in the 'Accept' header if none is set
46
+ #
47
+ # @note JSON is the only available format at this time
48
+ DEFAULT_FORMAT = :json
49
+
50
+ # By default, don't use a proxy server
51
+ DEFAULT_PROXY = nil
52
+
53
+ # By default, environment will be sandbox
54
+ DEFAULT_ENVIRONMENT = "sandbox"
55
+
56
+ # The user agent that will be sent to the API endpoint if none is set
57
+ DEFAULT_USER_AGENT = "Paychex Ruby Gem #{Paychex::VERSION}".freeze
58
+
59
+ # An array of valid request/response formats
60
+ VALID_FORMATS = [:json].freeze
61
+
62
+ # @private
63
+ attr_accessor *VALID_OPTIONS_KEYS
64
+
65
+ # When this module is extended, set all configuration options to their default values
66
+ def self.extended(base)
67
+ base.reset
68
+ end
69
+
70
+ # Convenience method to allow configuration options to be set in a block
71
+ def configure
72
+ yield self
73
+ end
74
+
75
+ # Create a hash of options and their values
76
+ def options
77
+ VALID_OPTIONS_KEYS.inject({}) do |option, key|
78
+ option.merge!(key => send(key))
79
+ end
80
+ end
81
+
82
+ # Reset all configuration options to defaults
83
+ def reset
84
+ self.access_token = DEFAULT_ACCESS_TOKEN
85
+ self.host = DEFAULT_HOST
86
+ self.endpoint = DEFAULT_ENDPOINT
87
+ self.connection_options = DEFAULT_CONNECTION_OPTIONS
88
+ self.format = DEFAULT_FORMAT
89
+ self.proxy = DEFAULT_PROXY
90
+ self.environment = DEFAULT_ENVIRONMENT
91
+ self.user_agent = DEFAULT_USER_AGENT
92
+ self.per_page = DEFAULT_PER_PAGE
93
+ self.timeout = DEFAULT_TIMEOUT
94
+ self.open_timeout = DEFAULT_OPEN_TIMEOUT
95
+ self.token_timeout = DEFAULT_TOKEN_TIMEOUT
96
+ end
97
+ end
98
+ end
@@ -1,3 +1,3 @@
1
- module Paychex
2
- VERSION = '0.3.3'
3
- end
1
+ module Paychex
2
+ VERSION = '0.3.4'
3
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: paychex
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.3
4
+ version: 0.3.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mayank Dedhia
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-08-08 00:00:00.000000000 Z
11
+ date: 2024-05-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -214,7 +214,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
214
214
  - !ruby/object:Gem::Version
215
215
  version: '0'
216
216
  requirements: []
217
- rubygems_version: 3.4.4
217
+ rubygems_version: 3.0.3.1
218
218
  signing_key:
219
219
  specification_version: 4
220
220
  summary: Ruby wrapper for paychex.com APIs.