paychex_api 0.0.24 → 0.0.27
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 +5 -5
- data/.github/workflows/ci.yml +35 -0
- data/.gitignore +1 -0
- data/Gemfile.lock +79 -70
- data/README.md +1 -0
- data/lib/paychex_api/api_array.rb +22 -12
- data/lib/paychex_api/client/notifications.rb +1 -1
- data/lib/paychex_api/client/statuses.rb +3 -3
- data/lib/paychex_api/client.rb +4 -1
- data/lib/paychex_api/version.rb +1 -1
- data/paychex_api.gemspec +11 -12
- data/spec/paychex_api/client/messages_spec.rb +2 -1
- data/spec/paychex_api/client/notifications_spec.rb +4 -1
- data/spec/support/fake_paychex.rb +20 -20
- metadata +40 -59
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 80908e4ea91b324968a085282b9501e1214f26d769539b31b864760c60b11348
|
4
|
+
data.tar.gz: 37243af47110f52b2a99f341786571f968586f14f7376f79a2376c0e7f00551f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 28abd7d530e0b7a6b87ed50fa4f30c42a9a1b89f157ab9f3bc7539069c1194258e8c0dc111a95ecd5ea39e09f1e2d73abbf5d82bbf51a513117f7edac74dc446
|
7
|
+
data.tar.gz: 666be9cfe70c0ebeca346609dd6a99eddffd411f19ff96494e0356123631d948bce77c209df52a5e82785e9d40b46cb0a02b6ca4289c7ffab90f34f0e44196a1
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# Virtual environments with possible versions infos: https://github.com/actions/virtual-environments
|
2
|
+
|
3
|
+
name: CI
|
4
|
+
on: [push]
|
5
|
+
jobs:
|
6
|
+
build:
|
7
|
+
runs-on: ubuntu-latest
|
8
|
+
steps:
|
9
|
+
- uses: actions/checkout@v2 # Step 1: github action that clones the repository
|
10
|
+
- name: Setup Ruby # Step 2 (we gave the name 'Setup Ruby' to this step)
|
11
|
+
uses: ruby/setup-ruby@v1
|
12
|
+
with:
|
13
|
+
ruby-version: 2.7.3
|
14
|
+
- name: Install bundle and gems # Step 4
|
15
|
+
run: |
|
16
|
+
gem update --system
|
17
|
+
gem install bundler
|
18
|
+
bundle install --jobs 4 --retry 3
|
19
|
+
- if: ${{ failure() }}
|
20
|
+
run: echo "Something went wrong on the previous steps"
|
21
|
+
- if: ${{ success() }}
|
22
|
+
name: Run Rubocop # Step 7
|
23
|
+
run: bundle exec rubocop
|
24
|
+
brakeman:
|
25
|
+
name: runner / brakeman # Step 8
|
26
|
+
runs-on: ubuntu-latest
|
27
|
+
steps:
|
28
|
+
- name: Check out code
|
29
|
+
uses: actions/checkout@v1
|
30
|
+
- name: brakeman
|
31
|
+
uses: reviewdog/action-brakeman@v1
|
32
|
+
with:
|
33
|
+
brakeman_version: 4.8.2
|
34
|
+
github_token: ${{ secrets.github_token }}
|
35
|
+
reporter: github-pr-review # Default is github-pr-check
|
data/.gitignore
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,64 +1,70 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
paychex_api (0.0.
|
5
|
-
faraday (~> 0.
|
4
|
+
paychex_api (0.0.27)
|
5
|
+
faraday (~> 0.17.3)
|
6
6
|
faraday_middleware (>= 0.12.2)
|
7
7
|
footrest (>= 0.5.1)
|
8
8
|
|
9
9
|
GEM
|
10
10
|
remote: https://rubygems.org/
|
11
11
|
specs:
|
12
|
-
activesupport (
|
12
|
+
activesupport (7.0.3)
|
13
13
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
14
|
-
i18n (>=
|
15
|
-
minitest (
|
16
|
-
tzinfo (~>
|
17
|
-
addressable (2.
|
18
|
-
public_suffix (>= 2.0.2, <
|
19
|
-
ast (2.4.
|
20
|
-
byebug (
|
21
|
-
coderay (1.1.
|
22
|
-
concurrent-ruby (1.1.
|
14
|
+
i18n (>= 1.6, < 2)
|
15
|
+
minitest (>= 5.1)
|
16
|
+
tzinfo (~> 2.0)
|
17
|
+
addressable (2.7.0)
|
18
|
+
public_suffix (>= 2.0.2, < 5.0)
|
19
|
+
ast (2.4.1)
|
20
|
+
byebug (11.1.3)
|
21
|
+
coderay (1.1.3)
|
22
|
+
concurrent-ruby (1.1.10)
|
23
23
|
crack (0.4.3)
|
24
24
|
safe_yaml (~> 1.0.0)
|
25
|
-
diff-lcs (1.
|
26
|
-
docile (1.3.
|
27
|
-
faraday (0.
|
25
|
+
diff-lcs (1.4.4)
|
26
|
+
docile (1.3.2)
|
27
|
+
faraday (0.17.5)
|
28
28
|
multipart-post (>= 1.2, < 3)
|
29
|
-
faraday_middleware (0.
|
29
|
+
faraday_middleware (0.14.0)
|
30
30
|
faraday (>= 0.7.4, < 1.0)
|
31
31
|
footrest (0.5.3)
|
32
32
|
activesupport (>= 3.0.0)
|
33
33
|
faraday (>= 0.9.0, < 1)
|
34
34
|
link_header (>= 0.0.7)
|
35
|
-
gergich (
|
36
|
-
httparty (~> 0.
|
37
|
-
sqlite3 (~> 1.
|
38
|
-
hashdiff (0.
|
39
|
-
httparty (0.
|
35
|
+
gergich (1.2.0)
|
36
|
+
httparty (~> 0.17)
|
37
|
+
sqlite3 (~> 1.4)
|
38
|
+
hashdiff (1.0.1)
|
39
|
+
httparty (0.18.1)
|
40
|
+
mime-types (~> 3.0)
|
40
41
|
multi_xml (>= 0.5.2)
|
41
|
-
i18n (1.
|
42
|
+
i18n (1.10.0)
|
42
43
|
concurrent-ruby (~> 1.0)
|
43
|
-
json (2.1.0)
|
44
44
|
link_header (0.0.8)
|
45
|
-
method_source (0.
|
46
|
-
|
45
|
+
method_source (1.0.0)
|
46
|
+
mime-types (3.3.1)
|
47
|
+
mime-types-data (~> 3.2015)
|
48
|
+
mime-types-data (3.2020.0512)
|
49
|
+
minitest (5.16.2)
|
47
50
|
multi_xml (0.6.0)
|
48
|
-
multipart-post (2.
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
rack
|
51
|
+
multipart-post (2.2.3)
|
52
|
+
mustermann (1.1.1)
|
53
|
+
ruby2_keywords (~> 0.0.1)
|
54
|
+
parallel (1.19.2)
|
55
|
+
parser (2.7.1.4)
|
56
|
+
ast (~> 2.4.1)
|
57
|
+
pry (0.13.1)
|
58
|
+
coderay (~> 1.1)
|
59
|
+
method_source (~> 1.0)
|
60
|
+
public_suffix (4.0.5)
|
61
|
+
rack (2.2.3)
|
62
|
+
rack-protection (2.0.8.1)
|
59
63
|
rack
|
60
64
|
rainbow (3.0.0)
|
61
|
-
rake (0.
|
65
|
+
rake (13.0.1)
|
66
|
+
regexp_parser (1.7.1)
|
67
|
+
rexml (3.2.4)
|
62
68
|
rspec (2.99.0)
|
63
69
|
rspec-core (~> 2.99.0)
|
64
70
|
rspec-expectations (~> 2.99.0)
|
@@ -67,51 +73,54 @@ GEM
|
|
67
73
|
rspec-expectations (2.99.2)
|
68
74
|
diff-lcs (>= 1.1.3, < 2.0)
|
69
75
|
rspec-mocks (2.99.4)
|
70
|
-
rubocop (0.
|
76
|
+
rubocop (0.88.0)
|
71
77
|
parallel (~> 1.10)
|
72
|
-
parser (>= 2.
|
73
|
-
powerpack (~> 0.1)
|
78
|
+
parser (>= 2.7.1.1)
|
74
79
|
rainbow (>= 2.2.2, < 4.0)
|
80
|
+
regexp_parser (>= 1.7)
|
81
|
+
rexml
|
82
|
+
rubocop-ast (>= 0.1.0, < 1.0)
|
75
83
|
ruby-progressbar (~> 1.7)
|
76
|
-
unicode-display_width (
|
77
|
-
|
78
|
-
|
79
|
-
|
84
|
+
unicode-display_width (>= 1.4.0, < 2.0)
|
85
|
+
rubocop-ast (0.2.0)
|
86
|
+
parser (>= 2.7.0.1)
|
87
|
+
ruby-progressbar (1.10.1)
|
88
|
+
ruby2_keywords (0.0.2)
|
89
|
+
safe_yaml (1.0.5)
|
90
|
+
simplecov (0.18.5)
|
80
91
|
docile (~> 1.1)
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
rack (~>
|
86
|
-
rack-protection (
|
87
|
-
tilt (
|
88
|
-
sqlite3 (1.
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
webmock (1.22.6)
|
92
|
+
simplecov-html (~> 0.11)
|
93
|
+
simplecov-html (0.12.2)
|
94
|
+
sinatra (2.0.8.1)
|
95
|
+
mustermann (~> 1.0)
|
96
|
+
rack (~> 2.0)
|
97
|
+
rack-protection (= 2.0.8.1)
|
98
|
+
tilt (~> 2.0)
|
99
|
+
sqlite3 (1.4.2)
|
100
|
+
tilt (2.0.10)
|
101
|
+
tzinfo (2.0.4)
|
102
|
+
concurrent-ruby (~> 1.0)
|
103
|
+
unicode-display_width (1.7.0)
|
104
|
+
webmock (3.8.3)
|
95
105
|
addressable (>= 2.3.6)
|
96
106
|
crack (>= 0.3.2)
|
97
|
-
hashdiff
|
107
|
+
hashdiff (>= 0.4.0, < 2.0.0)
|
98
108
|
|
99
109
|
PLATFORMS
|
100
110
|
ruby
|
101
111
|
|
102
112
|
DEPENDENCIES
|
103
|
-
bundler (
|
104
|
-
byebug (
|
105
|
-
gergich (~> 0
|
113
|
+
bundler (>= 1.0)
|
114
|
+
byebug (>= 8.2)
|
115
|
+
gergich (~> 1.0)
|
106
116
|
paychex_api!
|
107
|
-
pry (
|
108
|
-
rake (
|
117
|
+
pry (>= 0.12)
|
118
|
+
rake (>= 1.0)
|
109
119
|
rspec (~> 2.6)
|
110
|
-
rubocop (~> 0.54
|
111
|
-
simplecov (~> 0.16
|
112
|
-
sinatra (
|
113
|
-
|
114
|
-
webmock (~> 1.22.6)
|
120
|
+
rubocop (~> 0.54)
|
121
|
+
simplecov (~> 0.16)
|
122
|
+
sinatra (>= 1.0, < 3)
|
123
|
+
webmock (>= 1.22)
|
115
124
|
|
116
125
|
BUNDLED WITH
|
117
|
-
|
126
|
+
2.3.8
|
data/README.md
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
# paychex-api [](https://semaphoreci.com/neomind/paychex-api)
|
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
# rubocop:disable Metrics/AbcSize,Metrics/MethodLength
|
2
2
|
module PaychexAPI
|
3
3
|
class ApiArray
|
4
4
|
include Enumerable
|
@@ -63,7 +63,7 @@ module PaychexAPI
|
|
63
63
|
def each_page
|
64
64
|
yield(members, @linked, @meta)
|
65
65
|
while @next_page
|
66
|
-
response =
|
66
|
+
response = page(@next_page)
|
67
67
|
apply_response_metadata(response, false)
|
68
68
|
@members = get_response_content(response)
|
69
69
|
yield(members, @linked, @meta)
|
@@ -73,6 +73,7 @@ module PaychexAPI
|
|
73
73
|
|
74
74
|
def all_pages!
|
75
75
|
return self unless pages?
|
76
|
+
|
76
77
|
combine_page
|
77
78
|
combine_pages
|
78
79
|
self
|
@@ -89,39 +90,42 @@ module PaychexAPI
|
|
89
90
|
end
|
90
91
|
|
91
92
|
def combine_page
|
92
|
-
response =
|
93
|
+
response = page(@next_page)
|
93
94
|
apply_response_metadata(response)
|
94
95
|
@members.concat(get_response_content(response))
|
95
96
|
end
|
96
97
|
|
97
|
-
def
|
98
|
+
def page(url, params = {}, tries = 0)
|
98
99
|
query = URI.parse(url).query
|
99
100
|
p = CGI.parse(query).merge(params)
|
100
101
|
u = url.gsub("?#{query}", '')
|
102
|
+
|
101
103
|
p.each { |k, v| p[k] = v.first if v.is_a?(Array) }
|
104
|
+
|
102
105
|
resp = @api_client.connection.send(:get) do |r|
|
103
106
|
r.url(u, p)
|
104
107
|
end
|
108
|
+
|
105
109
|
tries = 0 if status == 200
|
106
110
|
resp
|
107
111
|
rescue Footrest::HttpError::Unauthorized => e
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
raise e
|
114
|
-
end
|
112
|
+
raise e unless tries.zero?
|
113
|
+
|
114
|
+
# token may have expired for long running pagination requests, refresh and try again
|
115
|
+
@api_client.refresh_token!
|
116
|
+
page(url, params, (tries + 1))
|
115
117
|
end
|
116
118
|
|
117
119
|
def load_page(url)
|
118
|
-
response =
|
120
|
+
response = page(url)
|
119
121
|
ApiArray.process_response(response, @api_client)
|
120
122
|
end
|
121
123
|
|
122
124
|
def get_response_content(response)
|
123
125
|
body = response.body
|
126
|
+
|
124
127
|
return [] unless body.is_a?(Hash)
|
128
|
+
|
125
129
|
if body.key?('content')
|
126
130
|
body['content'] || []
|
127
131
|
else
|
@@ -134,9 +138,11 @@ module PaychexAPI
|
|
134
138
|
@links = []
|
135
139
|
@metadata = {}
|
136
140
|
end
|
141
|
+
|
137
142
|
@status = response.status
|
138
143
|
@headers = response.headers
|
139
144
|
@method = response.env[:method]
|
145
|
+
|
140
146
|
init_pages(response)
|
141
147
|
init_linked(response)
|
142
148
|
init_meta(response)
|
@@ -144,16 +150,19 @@ module PaychexAPI
|
|
144
150
|
|
145
151
|
def init_linked(response)
|
146
152
|
return nil unless response.body.is_a?(Hash) && response.body.key?('links')
|
153
|
+
|
147
154
|
@links = @links.concat(response.body['links'])
|
148
155
|
end
|
149
156
|
|
150
157
|
def init_meta(response)
|
151
158
|
return nil unless response.body.is_a?(Hash) && response.body.key?('metadata')
|
159
|
+
|
152
160
|
@metadata = response.body['metadata']
|
153
161
|
end
|
154
162
|
|
155
163
|
def init_pages(response)
|
156
164
|
return nil unless response.body.is_a?(Hash) && response.body.key?('links')
|
165
|
+
|
157
166
|
@next_page, @prev_page = nil
|
158
167
|
response.body['links'].each do |link|
|
159
168
|
case link['rel']
|
@@ -166,3 +175,4 @@ module PaychexAPI
|
|
166
175
|
end
|
167
176
|
end
|
168
177
|
end
|
178
|
+
# rubocop:enable Metrics/AbcSize,Metrics/MethodLength
|
@@ -2,7 +2,7 @@ module PaychexAPI
|
|
2
2
|
class Client
|
3
3
|
module Notifications
|
4
4
|
def send_notification(notification_id, params = {})
|
5
|
-
post("#{API_PATH}#{NOTIFICATIONS_PATH}/#{
|
5
|
+
post("#{API_PATH}#{NOTIFICATIONS_PATH}/#{CGI.escape(notification_id).gsub('+', '%20')}", params)
|
6
6
|
end
|
7
7
|
end
|
8
8
|
end
|
@@ -1,15 +1,15 @@
|
|
1
1
|
module PaychexAPI
|
2
2
|
class Client
|
3
3
|
module Statuses
|
4
|
-
def company_status(params={})
|
4
|
+
def company_status(params = {})
|
5
5
|
get("#{API_PATH}#{STATUS_PATH}/company", params)
|
6
6
|
end
|
7
7
|
|
8
|
-
def user_status(params={})
|
8
|
+
def user_status(params = {})
|
9
9
|
get("#{API_PATH}#{STATUS_PATH}/user", params)
|
10
10
|
end
|
11
11
|
|
12
|
-
def worker_status(params={})
|
12
|
+
def worker_status(params = {})
|
13
13
|
get("#{API_PATH}#{STATUS_PATH}/worker", params)
|
14
14
|
end
|
15
15
|
end
|
data/lib/paychex_api/client.rb
CHANGED
@@ -10,6 +10,7 @@ require 'base64'
|
|
10
10
|
require 'active_support/time'
|
11
11
|
require 'paychex_api/api_array'
|
12
12
|
|
13
|
+
# rubocop:disable Lint/NonDeterministicRequireOrder
|
13
14
|
module PaychexAPI
|
14
15
|
class Client < Footrest::Client
|
15
16
|
API_PATH = ''.freeze
|
@@ -47,10 +48,11 @@ module PaychexAPI
|
|
47
48
|
|
48
49
|
def token
|
49
50
|
return config[:token] if config[:token].present?
|
51
|
+
|
50
52
|
authorize if @authorization.blank? || @authorization['expiration'] <= Time.now - 30.seconds
|
51
53
|
@authorization['access_token']
|
52
54
|
end
|
53
|
-
|
55
|
+
|
54
56
|
def refresh_token!
|
55
57
|
config.delete(:token)
|
56
58
|
authorize
|
@@ -150,3 +152,4 @@ module PaychexAPI
|
|
150
152
|
end
|
151
153
|
end
|
152
154
|
end
|
155
|
+
# rubocop:enable Lint/NonDeterministicRequireOrder
|
data/lib/paychex_api/version.rb
CHANGED
data/paychex_api.gemspec
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
|
2
1
|
$LOAD_PATH.push File.expand_path('lib', __dir__)
|
2
|
+
|
3
3
|
require 'paychex_api/version'
|
4
4
|
|
5
5
|
Gem::Specification.new do |gem|
|
@@ -18,19 +18,18 @@ Gem::Specification.new do |gem|
|
|
18
18
|
gem.require_paths = ['lib']
|
19
19
|
gem.version = PaychexAPI::VERSION
|
20
20
|
|
21
|
-
gem.add_development_dependency 'bundler', '
|
22
|
-
gem.add_development_dependency 'byebug', '
|
23
|
-
gem.add_development_dependency 'gergich', '~> 0
|
24
|
-
gem.add_development_dependency 'pry', '
|
25
|
-
gem.add_development_dependency 'rake', '
|
21
|
+
gem.add_development_dependency 'bundler', '>= 1.0'
|
22
|
+
gem.add_development_dependency 'byebug', '>= 8.2'
|
23
|
+
gem.add_development_dependency 'gergich', '~> 1.0'
|
24
|
+
gem.add_development_dependency 'pry', '>= 0.12'
|
25
|
+
gem.add_development_dependency 'rake', '>= 1.0'
|
26
26
|
gem.add_development_dependency 'rspec', '~> 2.6'
|
27
|
-
gem.add_development_dependency 'rubocop', '~> 0.54
|
28
|
-
gem.add_development_dependency 'simplecov', '~> 0.16
|
29
|
-
gem.add_development_dependency 'sinatra', '
|
30
|
-
gem.add_development_dependency '
|
31
|
-
gem.add_development_dependency 'webmock', '~>1.22.6'
|
27
|
+
gem.add_development_dependency 'rubocop', '~> 0.54'
|
28
|
+
gem.add_development_dependency 'simplecov', '~> 0.16'
|
29
|
+
gem.add_development_dependency 'sinatra', '>= 1.0', '< 3'
|
30
|
+
gem.add_development_dependency 'webmock', '>= 1.22'
|
32
31
|
|
33
|
-
gem.add_dependency 'faraday', '~> 0.
|
32
|
+
gem.add_dependency 'faraday', '~> 0.17.3'
|
34
33
|
gem.add_dependency 'faraday_middleware', '>= 0.12.2'
|
35
34
|
gem.add_dependency 'footrest', '>= 0.5.1'
|
36
35
|
end
|
@@ -1,10 +1,11 @@
|
|
1
1
|
require 'test_helper'
|
2
|
+
|
2
3
|
describe PaychexAPI::Client::Notifications do
|
3
4
|
let!(:body) do
|
4
5
|
{
|
5
6
|
'companyId' => '00Z5V9BTI687WL8V60GT',
|
6
7
|
'asOfDate' => '2018-01-12T00:00:00Z',
|
7
|
-
'domains' =>
|
8
|
+
'domains' => ['CLT_PROD'],
|
8
9
|
'action' => 'ADD',
|
9
10
|
'productCode' => 'LMS_ENH'
|
10
11
|
}
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'test_helper'
|
2
|
+
|
2
3
|
describe PaychexAPI::Client::Notifications do
|
3
4
|
before do
|
4
5
|
@client = PaychexAPI::Client.new(
|
@@ -8,13 +9,15 @@ describe PaychexAPI::Client::Notifications do
|
|
8
9
|
|
9
10
|
it 'should send a notification' do
|
10
11
|
response = @client.send_notification('f7f9c815-0d4c-46e5-9434-5cc19470d1ed-3520000031155394')
|
12
|
+
|
11
13
|
expect(response.status).to(eq(200))
|
12
14
|
end
|
13
15
|
|
14
16
|
it 'should URI escape a notification id' do
|
15
17
|
expect_any_instance_of(PaychexAPI::Client::Notifications)
|
16
18
|
.to receive(:post)
|
17
|
-
.with(
|
19
|
+
.with('/notifications/f7f9c815-0d4c-46e5-9434-5cc1%209470d1ed-3520000031155394', {})
|
20
|
+
|
18
21
|
@client.send_notification('f7f9c815-0d4c-46e5-9434-5cc1 9470d1ed-3520000031155394')
|
19
22
|
end
|
20
23
|
end
|
@@ -3,25 +3,25 @@ require 'tilt'
|
|
3
3
|
|
4
4
|
class FakePaychex < Sinatra::Base
|
5
5
|
# auth
|
6
|
-
post %r{/auth/oauth/v2/token
|
6
|
+
post %r{/auth/oauth/v2/token} do
|
7
7
|
get_json_data 200, 'auth.json'
|
8
8
|
end
|
9
9
|
|
10
10
|
# workers
|
11
|
-
get %r{/companies/.*/workers
|
11
|
+
get %r{/companies/.*/workers.*} do
|
12
12
|
get_json_data 200, 'workers.json'
|
13
13
|
end
|
14
14
|
|
15
15
|
# workers
|
16
|
-
get %r{/companies/.*/workers/\+d
|
16
|
+
get %r{/companies/.*/workers/\+d+} do
|
17
17
|
get_json_data 200, 'workers.json'
|
18
18
|
end
|
19
19
|
|
20
|
-
get %r{/workers/\d
|
20
|
+
get %r{/workers/\d+} do
|
21
21
|
get_json_data 200, 'workers.json'
|
22
22
|
end
|
23
23
|
|
24
|
-
get %r{/workers/\d+/users
|
24
|
+
get %r{/workers/\d+/users} do
|
25
25
|
case request.env['HTTP_ACCEPT']
|
26
26
|
when "application/json;profile='http://api.paychex.com/profiles/users/v1'"
|
27
27
|
get_json_data 200, 'users.json'
|
@@ -30,29 +30,29 @@ class FakePaychex < Sinatra::Base
|
|
30
30
|
end
|
31
31
|
end
|
32
32
|
|
33
|
-
get %r{/workers/\d+/communications
|
33
|
+
get %r{/workers/\d+/communications} do
|
34
34
|
get_json_data 200, 'communications.json'
|
35
35
|
end
|
36
36
|
|
37
|
-
get %r{/workers/\d+/communications/\d
|
37
|
+
get %r{/workers/\d+/communications/\d+} do
|
38
38
|
get_json_data 200, 'communications.json'
|
39
39
|
end
|
40
40
|
|
41
|
-
post %r{/workers/\d+/communications
|
41
|
+
post %r{/workers/\d+/communications} do
|
42
42
|
get_json_data 200, 'communications.json'
|
43
43
|
end
|
44
44
|
|
45
|
-
put %r{/workers/\d+/communications/\d
|
45
|
+
put %r{/workers/\d+/communications/\d+} do
|
46
46
|
get_json_data 200, 'communications.json'
|
47
47
|
end
|
48
48
|
|
49
|
-
delete %r{/workers/\d+/communications/\d
|
49
|
+
delete %r{/workers/\d+/communications/\d+} do
|
50
50
|
get_json_data 200, 'communications.json'
|
51
51
|
end
|
52
52
|
|
53
53
|
# companies
|
54
54
|
|
55
|
-
get %r{/companies/[A-Za-z0-9]
|
55
|
+
get %r{/companies/[A-Za-z0-9]+} do
|
56
56
|
case request.env['HTTP_ACCEPT']
|
57
57
|
when "application/json;profile='http://api.paychex.com/profiles/company_associations/v1'"
|
58
58
|
get_json_data 200, 'companies_associations.json'
|
@@ -61,41 +61,41 @@ class FakePaychex < Sinatra::Base
|
|
61
61
|
end
|
62
62
|
end
|
63
63
|
|
64
|
-
get %r{/companies
|
64
|
+
get %r{/companies} do
|
65
65
|
get_json_data 200, 'companies.json'
|
66
66
|
end
|
67
67
|
|
68
|
-
get %r{/companies/[A-Za-z0-9]+/organizations
|
68
|
+
get %r{/companies/[A-Za-z0-9]+/organizations+} do
|
69
69
|
get_json_data 200, 'organizations.json'
|
70
70
|
end
|
71
71
|
|
72
|
-
post %r{/companies/[A-Za-z0-9]+/purchases
|
72
|
+
post %r{/companies/[A-Za-z0-9]+/purchases+} do
|
73
73
|
get_json_data 200, 'organizations.json'
|
74
74
|
end
|
75
75
|
|
76
76
|
# Notifications
|
77
77
|
|
78
|
-
post %r{/notifications/\S
|
78
|
+
post %r{/notifications/\S+} do
|
79
79
|
get_json_data 200, 'communications.json'
|
80
80
|
end
|
81
81
|
|
82
82
|
# Messages
|
83
83
|
|
84
|
-
post %r{/messages
|
84
|
+
post %r{/messages} do
|
85
85
|
get_json_data 201, 'messages.json'
|
86
86
|
end
|
87
87
|
|
88
|
-
get %r{/users
|
88
|
+
get %r{/users.*} do
|
89
89
|
get_json_data 200, 'users.json'
|
90
90
|
end
|
91
91
|
|
92
|
-
get %r{/users/\S/workers
|
92
|
+
get %r{/users/\S/workers+} do
|
93
93
|
get_json_data 200, 'workers.json'
|
94
94
|
end
|
95
95
|
|
96
96
|
# Statuses
|
97
|
-
get %r{/status
|
98
|
-
get_json_data 200, '
|
97
|
+
get %r{/status.*} do
|
98
|
+
get_json_data 200, 'status.json'
|
99
99
|
end
|
100
100
|
|
101
101
|
private
|
metadata
CHANGED
@@ -1,91 +1,85 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: paychex_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.27
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jay Shaffer
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-07-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "~>"
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '1.0'
|
20
17
|
- - ">="
|
21
18
|
- !ruby/object:Gem::Version
|
22
|
-
version: 1.0
|
19
|
+
version: '1.0'
|
23
20
|
type: :development
|
24
21
|
prerelease: false
|
25
22
|
version_requirements: !ruby/object:Gem::Requirement
|
26
23
|
requirements:
|
27
|
-
- - "~>"
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: '1.0'
|
30
24
|
- - ">="
|
31
25
|
- !ruby/object:Gem::Version
|
32
|
-
version: 1.0
|
26
|
+
version: '1.0'
|
33
27
|
- !ruby/object:Gem::Dependency
|
34
28
|
name: byebug
|
35
29
|
requirement: !ruby/object:Gem::Requirement
|
36
30
|
requirements:
|
37
|
-
- - "
|
31
|
+
- - ">="
|
38
32
|
- !ruby/object:Gem::Version
|
39
|
-
version: 8.2
|
33
|
+
version: '8.2'
|
40
34
|
type: :development
|
41
35
|
prerelease: false
|
42
36
|
version_requirements: !ruby/object:Gem::Requirement
|
43
37
|
requirements:
|
44
|
-
- - "
|
38
|
+
- - ">="
|
45
39
|
- !ruby/object:Gem::Version
|
46
|
-
version: 8.2
|
40
|
+
version: '8.2'
|
47
41
|
- !ruby/object:Gem::Dependency
|
48
42
|
name: gergich
|
49
43
|
requirement: !ruby/object:Gem::Requirement
|
50
44
|
requirements:
|
51
45
|
- - "~>"
|
52
46
|
- !ruby/object:Gem::Version
|
53
|
-
version: 0
|
47
|
+
version: '1.0'
|
54
48
|
type: :development
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
51
|
requirements:
|
58
52
|
- - "~>"
|
59
53
|
- !ruby/object:Gem::Version
|
60
|
-
version: 0
|
54
|
+
version: '1.0'
|
61
55
|
- !ruby/object:Gem::Dependency
|
62
56
|
name: pry
|
63
57
|
requirement: !ruby/object:Gem::Requirement
|
64
58
|
requirements:
|
65
|
-
- - "
|
59
|
+
- - ">="
|
66
60
|
- !ruby/object:Gem::Version
|
67
|
-
version: '0'
|
61
|
+
version: '0.12'
|
68
62
|
type: :development
|
69
63
|
prerelease: false
|
70
64
|
version_requirements: !ruby/object:Gem::Requirement
|
71
65
|
requirements:
|
72
|
-
- - "
|
66
|
+
- - ">="
|
73
67
|
- !ruby/object:Gem::Version
|
74
|
-
version: '0'
|
68
|
+
version: '0.12'
|
75
69
|
- !ruby/object:Gem::Dependency
|
76
70
|
name: rake
|
77
71
|
requirement: !ruby/object:Gem::Requirement
|
78
72
|
requirements:
|
79
|
-
- - "
|
73
|
+
- - ">="
|
80
74
|
- !ruby/object:Gem::Version
|
81
|
-
version: '0'
|
75
|
+
version: '1.0'
|
82
76
|
type: :development
|
83
77
|
prerelease: false
|
84
78
|
version_requirements: !ruby/object:Gem::Requirement
|
85
79
|
requirements:
|
86
|
-
- - "
|
80
|
+
- - ">="
|
87
81
|
- !ruby/object:Gem::Version
|
88
|
-
version: '0'
|
82
|
+
version: '1.0'
|
89
83
|
- !ruby/object:Gem::Dependency
|
90
84
|
name: rspec
|
91
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -106,90 +100,76 @@ dependencies:
|
|
106
100
|
requirements:
|
107
101
|
- - "~>"
|
108
102
|
- !ruby/object:Gem::Version
|
109
|
-
version: 0.54
|
103
|
+
version: '0.54'
|
110
104
|
type: :development
|
111
105
|
prerelease: false
|
112
106
|
version_requirements: !ruby/object:Gem::Requirement
|
113
107
|
requirements:
|
114
108
|
- - "~>"
|
115
109
|
- !ruby/object:Gem::Version
|
116
|
-
version: 0.54
|
110
|
+
version: '0.54'
|
117
111
|
- !ruby/object:Gem::Dependency
|
118
112
|
name: simplecov
|
119
113
|
requirement: !ruby/object:Gem::Requirement
|
120
114
|
requirements:
|
121
115
|
- - "~>"
|
122
116
|
- !ruby/object:Gem::Version
|
123
|
-
version: 0.16
|
117
|
+
version: '0.16'
|
124
118
|
type: :development
|
125
119
|
prerelease: false
|
126
120
|
version_requirements: !ruby/object:Gem::Requirement
|
127
121
|
requirements:
|
128
122
|
- - "~>"
|
129
123
|
- !ruby/object:Gem::Version
|
130
|
-
version: 0.16
|
124
|
+
version: '0.16'
|
131
125
|
- !ruby/object:Gem::Dependency
|
132
126
|
name: sinatra
|
133
|
-
requirement: !ruby/object:Gem::Requirement
|
134
|
-
requirements:
|
135
|
-
- - "~>"
|
136
|
-
- !ruby/object:Gem::Version
|
137
|
-
version: '1.0'
|
138
|
-
type: :development
|
139
|
-
prerelease: false
|
140
|
-
version_requirements: !ruby/object:Gem::Requirement
|
141
|
-
requirements:
|
142
|
-
- - "~>"
|
143
|
-
- !ruby/object:Gem::Version
|
144
|
-
version: '1.0'
|
145
|
-
- !ruby/object:Gem::Dependency
|
146
|
-
name: tilt
|
147
127
|
requirement: !ruby/object:Gem::Requirement
|
148
128
|
requirements:
|
149
129
|
- - ">="
|
150
130
|
- !ruby/object:Gem::Version
|
151
|
-
version: 1.
|
152
|
-
- - "
|
131
|
+
version: '1.0'
|
132
|
+
- - "<"
|
153
133
|
- !ruby/object:Gem::Version
|
154
|
-
version: '
|
134
|
+
version: '3'
|
155
135
|
type: :development
|
156
136
|
prerelease: false
|
157
137
|
version_requirements: !ruby/object:Gem::Requirement
|
158
138
|
requirements:
|
159
139
|
- - ">="
|
160
140
|
- !ruby/object:Gem::Version
|
161
|
-
version: 1.
|
162
|
-
- - "
|
141
|
+
version: '1.0'
|
142
|
+
- - "<"
|
163
143
|
- !ruby/object:Gem::Version
|
164
|
-
version: '
|
144
|
+
version: '3'
|
165
145
|
- !ruby/object:Gem::Dependency
|
166
146
|
name: webmock
|
167
147
|
requirement: !ruby/object:Gem::Requirement
|
168
148
|
requirements:
|
169
|
-
- - "
|
149
|
+
- - ">="
|
170
150
|
- !ruby/object:Gem::Version
|
171
|
-
version: 1.22
|
151
|
+
version: '1.22'
|
172
152
|
type: :development
|
173
153
|
prerelease: false
|
174
154
|
version_requirements: !ruby/object:Gem::Requirement
|
175
155
|
requirements:
|
176
|
-
- - "
|
156
|
+
- - ">="
|
177
157
|
- !ruby/object:Gem::Version
|
178
|
-
version: 1.22
|
158
|
+
version: '1.22'
|
179
159
|
- !ruby/object:Gem::Dependency
|
180
160
|
name: faraday
|
181
161
|
requirement: !ruby/object:Gem::Requirement
|
182
162
|
requirements:
|
183
163
|
- - "~>"
|
184
164
|
- !ruby/object:Gem::Version
|
185
|
-
version: 0.
|
165
|
+
version: 0.17.3
|
186
166
|
type: :runtime
|
187
167
|
prerelease: false
|
188
168
|
version_requirements: !ruby/object:Gem::Requirement
|
189
169
|
requirements:
|
190
170
|
- - "~>"
|
191
171
|
- !ruby/object:Gem::Version
|
192
|
-
version: 0.
|
172
|
+
version: 0.17.3
|
193
173
|
- !ruby/object:Gem::Dependency
|
194
174
|
name: faraday_middleware
|
195
175
|
requirement: !ruby/object:Gem::Requirement
|
@@ -225,12 +205,14 @@ executables: []
|
|
225
205
|
extensions: []
|
226
206
|
extra_rdoc_files: []
|
227
207
|
files:
|
208
|
+
- ".github/workflows/ci.yml"
|
228
209
|
- ".gitignore"
|
229
210
|
- ".rubocop.yml"
|
230
211
|
- ".simplecov"
|
231
212
|
- Dockerfile
|
232
213
|
- Gemfile
|
233
214
|
- Gemfile.lock
|
215
|
+
- README.md
|
234
216
|
- bin/jenkins
|
235
217
|
- build.sh
|
236
218
|
- docker-compose.yml
|
@@ -274,7 +256,7 @@ homepage: ''
|
|
274
256
|
licenses:
|
275
257
|
- MIT
|
276
258
|
metadata: {}
|
277
|
-
post_install_message:
|
259
|
+
post_install_message:
|
278
260
|
rdoc_options: []
|
279
261
|
require_paths:
|
280
262
|
- lib
|
@@ -289,9 +271,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
289
271
|
- !ruby/object:Gem::Version
|
290
272
|
version: '0'
|
291
273
|
requirements: []
|
292
|
-
|
293
|
-
|
294
|
-
signing_key:
|
274
|
+
rubygems_version: 3.1.6
|
275
|
+
signing_key:
|
295
276
|
specification_version: 4
|
296
277
|
summary: Paychex API
|
297
278
|
test_files:
|