paychex_api 0.0.3 → 0.0.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
- SHA1:
3
- metadata.gz: 9de0f7cad757b537924ef7f2f44d900c35e5012d
4
- data.tar.gz: d309d3026ae13f12cfb9007522e8740a207278c8
2
+ SHA256:
3
+ metadata.gz: 7251288b681c23b4098ba4bca7f19f0bd41bb734b393aeaf14248dc125bb8858
4
+ data.tar.gz: 9c0ebd502d7bc21e7787f08e850fcd17565171ab36f254b8bde9f8067de54d09
5
5
  SHA512:
6
- metadata.gz: e41269cc0be06d85a2e81a1ea1322ec56c49e887febe6aeb6bb35cada13976a6500085c70f91f9f5033780da7b4d5fedddf1ad4cc0447213652a0bf2600cb3a7
7
- data.tar.gz: bd2845c4f9e0682e580cc1b9a6657702f3771cf195cbae783cad649ab713864709b6cb7dd94a56a2b5b6f8b2a4cf8e556a2e7528eb64249e2a923acde928b36d
6
+ metadata.gz: e9e4f6648e59b1b540043aee20953417e80abad7a50a81517413ab1eb42b77b4e9a424edd1679c7f140e4f77d4f37b8bcd6f6cc1aa0292c3b176b920bd9e4a16
7
+ data.tar.gz: c20be9e0f548f6a9c7ad88404493c26afb077e4b6bae82839696668e51f065c20dc4473b4bf1d65b3067c3247fcf1deeb559236273df49ba28c0b17dee0d140b
data/.gitignore CHANGED
@@ -4,5 +4,5 @@
4
4
  bridge_api.iml
5
5
  .byebug.*
6
6
  .byebug_history
7
- .*.gem
7
+ *.gem
8
8
  coverage
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- paychex_api (0.0.3)
4
+ paychex_api (0.0.4)
5
5
  faraday (~> 0.9.2)
6
6
  faraday_middleware (~> 0.9.2)
7
7
  footrest (>= 0.5.1)
@@ -8,7 +8,7 @@ module PaychexAPI
8
8
  @next_page = nil
9
9
  @prev_page = nil
10
10
 
11
- attr_reader :status, :headers, :members, :links, :metadata
11
+ attr_reader :status, :headers, :members, :links, :metadata, :errors
12
12
  attr_writer :next_page
13
13
 
14
14
  def self.process_response(response, api_client)
@@ -20,6 +20,7 @@ module PaychexAPI
20
20
  @api_client = api_client
21
21
  @links = []
22
22
  @metadata = {}
23
+ @errors = response.body['errors']
23
24
  case response.status
24
25
  when *((200..206).to_a + [302])
25
26
  apply_response_metadata(response)
@@ -3,6 +3,7 @@ require 'faraday'
3
3
  require 'footrest'
4
4
  require 'footrest/http_error'
5
5
  require 'footrest/pagination'
6
+ require 'faraday_middleware'
6
7
  require 'footrest/follow_redirects'
7
8
  require 'footrest/parse_json'
8
9
  require 'base64'
@@ -17,6 +18,7 @@ module PaychexAPI
17
18
  ORGANIZATIONS_PATH = '/organizations'.freeze
18
19
  JOB_TITLES_PATH = '/jobtitles'.freeze
19
20
  WORKER_STATUSES_PATH = '/workerstatuses'.freeze
21
+ NOTIFICATIONS_PATH = '/notifications'.freeze
20
22
  WORKERS_PATH = '/workers'.freeze
21
23
  COMMUNICATIONS_PATH = '/communications'.freeze
22
24
  COMPENSATION_PATH = '/compensation'.freeze
@@ -41,7 +43,7 @@ module PaychexAPI
41
43
  end
42
44
 
43
45
  def authorize
44
- response = default_faraday.post(
46
+ response = faraday_auth.post(
45
47
  OAUTH_TOKEN_PATH,
46
48
  client_id: config[:client_id],
47
49
  client_secret: config[:client_secret],
@@ -64,15 +66,25 @@ module PaychexAPI
64
66
  faraday
65
67
  end
66
68
 
67
- def faraday_default_headers(faraday)
69
+ def faraday_auth_request(faraday)
70
+ faraday.request :multipart
71
+ faraday.request :url_encoded
72
+ faraday
73
+ end
74
+
75
+ def faraday_auth_headers(faraday)
68
76
  faraday.headers[:accept] = 'application/json'
69
77
  faraday.headers[:user_agent] = 'Footrest'
70
78
  faraday
71
79
  end
72
80
 
81
+ def faraday_default_headers(faraday)
82
+ faraday.headers['Content-Type'] = 'application/json'
83
+ faraday
84
+ end
85
+
73
86
  def faraday_default_request(faraday)
74
- faraday.request :multipart
75
- faraday.request :url_encoded
87
+ faraday.request :json
76
88
  faraday
77
89
  end
78
90
 
@@ -100,6 +112,22 @@ module PaychexAPI
100
112
  faraday
101
113
  end
102
114
 
115
+ def faraday_auth_config(faraday)
116
+ faraday = faraday_logger(faraday)
117
+ faraday = faraday_auth_request(faraday)
118
+ faraday = faraday_default_use(faraday)
119
+ faraday = faraday_auth_headers(faraday)
120
+ faraday = faraday_proxy(faraday)
121
+ faraday.adapter Faraday.default_adapter
122
+ faraday
123
+ end
124
+
125
+ def faraday_auth
126
+ Faraday.new(url: config[:prefix]) do |faraday|
127
+ faraday_auth_config(faraday)
128
+ end
129
+ end
130
+
103
131
  def default_faraday
104
132
  Faraday.new(url: config[:prefix]) do |faraday|
105
133
  faraday_config(faraday)
@@ -0,0 +1,9 @@
1
+ module PaychexAPI
2
+ class Client
3
+ module Notifications
4
+ def send_notification(notification_id, params = {})
5
+ post("#{API_PATH}#{NOTIFICATIONS_PATH}/#{notification_id}", params)
6
+ end
7
+ end
8
+ end
9
+ end
@@ -1,3 +1,3 @@
1
1
  module PaychexAPI
2
- VERSION = '0.0.3'.freeze unless defined?(PaychexAPI::VERSION)
2
+ VERSION = '0.0.4'.freeze unless defined?(PaychexAPI::VERSION)
3
3
  end
@@ -0,0 +1,13 @@
1
+ require 'test_helper'
2
+ describe PaychexAPI::Client::Notifications do
3
+ before do
4
+ @client = PaychexAPI::Client.new(
5
+ prefix: 'http://test.paychex.com', client_id: 'client_id', client_secret: 'client_secret'
6
+ )
7
+ end
8
+
9
+ it 'should send a notification' do
10
+ response = @client.send_notification('f7f9c815-0d4c-46e5-9434-5cc19470d1ed-3520000031155394')
11
+ expect(response.status).to(eq(200))
12
+ end
13
+ end
@@ -54,6 +54,12 @@ class FakePaychex < Sinatra::Base
54
54
  get_json_data 200, 'organizations.json'
55
55
  end
56
56
 
57
+ # Notifications
58
+
59
+ post %r{/notifications/\S+$} do
60
+ get_json_data 200, 'communications.json'
61
+ end
62
+
57
63
  private
58
64
 
59
65
  def get_json_data(response_code, file_name)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: paychex_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jay Shaffer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-05-09 00:00:00.000000000 Z
11
+ date: 2018-05-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -239,6 +239,7 @@ files:
239
239
  - lib/paychex_api/client.rb
240
240
  - lib/paychex_api/client/associations.rb
241
241
  - lib/paychex_api/client/companies.rb
242
+ - lib/paychex_api/client/notifications.rb
242
243
  - lib/paychex_api/client/workers.rb
243
244
  - lib/paychex_api/version.rb
244
245
  - paychex_api.gemspec
@@ -250,6 +251,7 @@ files:
250
251
  - spec/paychex_api/api_array_spec.rb
251
252
  - spec/paychex_api/client/associations_spec.rb
252
253
  - spec/paychex_api/client/companies_spec.rb
254
+ - spec/paychex_api/client/notifications_spec.rb
253
255
  - spec/paychex_api/client/workers_spec.rb
254
256
  - spec/paychex_api/client_spec.rb
255
257
  - spec/paychex_api/paychex_api_spec.rb
@@ -275,7 +277,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
275
277
  version: '0'
276
278
  requirements: []
277
279
  rubyforge_project:
278
- rubygems_version: 2.6.14
280
+ rubygems_version: 2.7.3
279
281
  signing_key:
280
282
  specification_version: 4
281
283
  summary: Paychex API
@@ -288,9 +290,9 @@ test_files:
288
290
  - spec/paychex_api/api_array_spec.rb
289
291
  - spec/paychex_api/client/associations_spec.rb
290
292
  - spec/paychex_api/client/companies_spec.rb
293
+ - spec/paychex_api/client/notifications_spec.rb
291
294
  - spec/paychex_api/client/workers_spec.rb
292
295
  - spec/paychex_api/client_spec.rb
293
296
  - spec/paychex_api/paychex_api_spec.rb
294
297
  - spec/support/fake_paychex.rb
295
298
  - spec/test_helper.rb
296
- has_rdoc: