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.
36
37
38
|
# File 'lib/paychex_api/client.rb', line 36
def authorization
@authorization
end
|
Instance Method Details
#authorize ⇒ Object
62
63
64
65
66
67
68
69
70
71
|
# File 'lib/paychex_api/client.rb', line 62
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
148
149
150
151
152
|
# File 'lib/paychex_api/client.rb', line 148
def default_faraday
Faraday.new(url: config[:prefix]) do |faraday|
faraday_config(faraday)
end
end
|
#faraday_auth ⇒ Object
142
143
144
145
146
|
# File 'lib/paychex_api/client.rb', line 142
def faraday_auth
Faraday.new(url: config[:prefix]) do |faraday|
faraday_auth_config(faraday)
end
end
|
#faraday_auth_config(faraday) ⇒ Object
132
133
134
135
136
137
138
139
140
|
# File 'lib/paychex_api/client.rb', line 132
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
|
92
93
94
95
96
|
# File 'lib/paychex_api/client.rb', line 92
def (faraday)
faraday.[:accept] = 'application/json'
faraday.[:user_agent] = 'Footrest'
faraday
end
|
#faraday_auth_request(faraday) ⇒ Object
86
87
88
89
90
|
# File 'lib/paychex_api/client.rb', line 86
def faraday_auth_request(faraday)
faraday.request :multipart
faraday.request :url_encoded
faraday
end
|
#faraday_config(faraday) ⇒ Object
122
123
124
125
126
127
128
129
130
|
# File 'lib/paychex_api/client.rb', line 122
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
|
98
99
100
101
|
# File 'lib/paychex_api/client.rb', line 98
def (faraday)
faraday.['Content-Type'] = 'application/json'
faraday
end
|
#faraday_default_request(faraday) ⇒ Object
103
104
105
106
|
# File 'lib/paychex_api/client.rb', line 103
def faraday_default_request(faraday)
faraday.request :json
faraday
end
|
#faraday_default_use(faraday) ⇒ Object
78
79
80
81
82
83
84
|
# File 'lib/paychex_api/client.rb', line 78
def faraday_default_use(faraday)
faraday.use Footrest::ParseJson, content_type: /\bjson$/
faraday.use Footrest::RaiseFootrestErrors
faraday.use Footrest::Pagination
faraday.use Footrest::FollowRedirects, limit: 5 if config[:follow_redirects]
faraday
end
|
#faraday_logger(faraday) ⇒ Object
108
109
110
111
112
113
114
115
|
# File 'lib/paychex_api/client.rb', line 108
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
117
118
119
120
|
# File 'lib/paychex_api/client.rb', line 117
def faraday_proxy(faraday)
faraday.proxy PaychexAPI.proxy if PaychexAPI.proxy
faraday
end
|
#refresh_token! ⇒ Object
56
57
58
59
60
|
# File 'lib/paychex_api/client.rb', line 56
def refresh_token!
config.delete(:token)
authorize
connection.[:authorization] = "Bearer #{token}"
end
|
#request(method, &block) ⇒ Object
Override Footrest request for ApiArray support
44
45
46
47
|
# File 'lib/paychex_api/client.rb', line 44
def request(method, &block)
connection.[:authorization] = "Bearer #{token}"
ApiArray.process_response(connection.send(method, &block), self)
end
|
#set_connection(config) ⇒ Object
73
74
75
76
|
# File 'lib/paychex_api/client.rb', line 73
def set_connection(config)
config[:logger] = config[:logging] if config[:logging]
@connection = default_faraday
end
|
#token ⇒ Object
49
50
51
52
53
54
|
# File 'lib/paychex_api/client.rb', line 49
def token
return config[:token] if config[:token].present?
authorize if @authorization.blank? || @authorization['expiration'] <= Time.now - 30.seconds
@authorization['access_token']
end
|