Class: PaychexAPI::Client
- Inherits:
-
Footrest::Client
- Object
- Footrest::Client
- PaychexAPI::Client
show all
- Defined in:
- lib/paychex_api/client.rb,
lib/paychex_api/client/users.rb,
lib/paychex_api/client/workers.rb,
lib/paychex_api/client/messages.rb,
lib/paychex_api/client/statuses.rb,
lib/paychex_api/client/companies.rb,
lib/paychex_api/client/purchases.rb,
lib/paychex_api/client/associations.rb,
lib/paychex_api/client/notifications.rb
Defined Under Namespace
Modules: Associations, Companies, Messages, Notifications, Purchases, Statuses, Users, Workers
Constant Summary
collapse
- API_PATH =
''.freeze
- STATUS_PATH =
'/status'.freeze
- COMPANIES_PATH =
'/companies'.freeze
- ASSOCIATIONS_PATH =
'/'.freeze
- ORGANIZATIONS_PATH =
'/organizations'.freeze
- JOB_TITLES_PATH =
'/jobtitles'.freeze
- WORKER_STATUSES_PATH =
'/workerstatuses'.freeze
- MESSAGES_PATH =
'/messages'.freeze
- NOTIFICATIONS_PATH =
'/notifications'.freeze
- WORKERS_PATH =
'/workers'.freeze
- COMMUNICATIONS_PATH =
'/communications'.freeze
- COMPENSATION_PATH =
'/compensation'.freeze
- DIRECT_DEPOSITS_PATH =
'/directdeposits'.freeze
- PAY_PERIODS_PATH =
'/payperiods'.freeze
- PAY_COMPONENTS_PATH =
'/paycomponents'.freeze
- CHECKS_PATH =
'/checks'.freeze
- OAUTH_TOKEN_PATH =
'/auth/oauth/v2/token'.freeze
- USERS_PATH =
'/users'.freeze
- PURCHASES_PATH =
'/purchases'.freeze
Instance Attribute Summary collapse
Instance Method Summary
collapse
Instance Attribute Details
#authorization ⇒ Object
Returns the value of attribute authorization.
35
36
37
|
# File 'lib/paychex_api/client.rb', line 35
def authorization
@authorization
end
|
Instance Method Details
#authorize ⇒ Object
60
61
62
63
64
65
66
67
68
69
|
# File 'lib/paychex_api/client.rb', line 60
def authorize
response = faraday_auth.post(
OAUTH_TOKEN_PATH,
client_id: config[:client_id],
client_secret: config[:client_secret],
grant_type: 'client_credentials'
)
@authorization = response.body
@authorization['expiration'] = Time.now + @authorization['expires_in'].to_i.seconds
end
|
#default_faraday ⇒ Object
146
147
148
149
150
|
# File 'lib/paychex_api/client.rb', line 146
def default_faraday
Faraday.new(url: config[:prefix]) do |faraday|
faraday_config(faraday)
end
end
|
#faraday_auth ⇒ Object
140
141
142
143
144
|
# File 'lib/paychex_api/client.rb', line 140
def faraday_auth
Faraday.new(url: config[:prefix]) do |faraday|
faraday_auth_config(faraday)
end
end
|
#faraday_auth_config(faraday) ⇒ Object
130
131
132
133
134
135
136
137
138
|
# File 'lib/paychex_api/client.rb', line 130
def faraday_auth_config(faraday)
faraday = faraday_logger(faraday)
faraday = faraday_auth_request(faraday)
faraday = faraday_default_use(faraday)
faraday = (faraday)
faraday = faraday_proxy(faraday)
faraday.adapter Faraday.default_adapter
faraday
end
|
90
91
92
93
94
|
# File 'lib/paychex_api/client.rb', line 90
def (faraday)
faraday.[:accept] = 'application/json'
faraday.[:user_agent] = 'Footrest'
faraday
end
|
#faraday_auth_request(faraday) ⇒ Object
84
85
86
87
88
|
# File 'lib/paychex_api/client.rb', line 84
def faraday_auth_request(faraday)
faraday.request :multipart
faraday.request :url_encoded
faraday
end
|
#faraday_config(faraday) ⇒ Object
120
121
122
123
124
125
126
127
128
|
# File 'lib/paychex_api/client.rb', line 120
def faraday_config(faraday)
faraday = faraday_logger(faraday)
faraday = faraday_default_request(faraday)
faraday = faraday_default_use(faraday)
faraday = (faraday)
faraday = faraday_proxy(faraday)
faraday.adapter Faraday.default_adapter
faraday
end
|
96
97
98
99
|
# File 'lib/paychex_api/client.rb', line 96
def (faraday)
faraday.['Content-Type'] = 'application/json'
faraday
end
|
#faraday_default_request(faraday) ⇒ Object
101
102
103
104
|
# File 'lib/paychex_api/client.rb', line 101
def faraday_default_request(faraday)
faraday.request :json
faraday
end
|
#faraday_default_use(faraday) ⇒ Object
76
77
78
79
80
81
82
|
# File 'lib/paychex_api/client.rb', line 76
def faraday_default_use(faraday)
faraday.use ::ParseJson, content_type: /\bjson$/
faraday.use ::
faraday.use ::
faraday.use ::FollowRedirects, limit: 5 if config[:follow_redirects]
faraday
end
|
#faraday_logger(faraday) ⇒ Object
106
107
108
109
110
111
112
113
|
# File 'lib/paychex_api/client.rb', line 106
def faraday_logger(faraday)
if config[:logger] == true
faraday.response :logger
elsif config[:logger]
faraday.use Faraday::Response::Logger, config[:logger]
end
faraday
end
|
#faraday_proxy(faraday) ⇒ Object
115
116
117
118
|
# File 'lib/paychex_api/client.rb', line 115
def faraday_proxy(faraday)
faraday.proxy = PaychexAPI.proxy if PaychexAPI.proxy
faraday
end
|
#refresh_token! ⇒ Object
54
55
56
57
58
|
# File 'lib/paychex_api/client.rb', line 54
def refresh_token!
config.delete(:token)
authorize
connection.[:authorization] = "Bearer #{token}"
end
|
#request(method, &block) ⇒ Object
Override Footrest request for ApiArray support
43
44
45
46
|
# File 'lib/paychex_api/client.rb', line 43
def request(method, &block)
connection.[:authorization] = "Bearer #{token}"
ApiArray.process_response(connection.send(method, &block), self)
end
|
#set_connection(config) ⇒ Object
71
72
73
74
|
# File 'lib/paychex_api/client.rb', line 71
def set_connection(config)
config[:logger] = config[:logging] if config[:logging]
@connection = default_faraday
end
|
#token ⇒ Object
48
49
50
51
52
|
# File 'lib/paychex_api/client.rb', line 48
def token
return config[:token] if config[:token].present?
authorize if @authorization.blank? || @authorization['expiration'] <= Time.now - 30.seconds
@authorization['access_token']
end
|