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/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, Users, Workers
Constant Summary
collapse
- API_PATH =
''.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.
34
35
36
|
# File 'lib/paychex_api/client.rb', line 34
def authorization
@authorization
end
|
Instance Method Details
#authorize ⇒ Object
48
49
50
51
52
53
54
55
56
57
|
# File 'lib/paychex_api/client.rb', line 48
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
134
135
136
137
138
|
# File 'lib/paychex_api/client.rb', line 134
def default_faraday
Faraday.new(url: config[:prefix]) do |faraday|
faraday_config(faraday)
end
end
|
#faraday_auth ⇒ Object
128
129
130
131
132
|
# File 'lib/paychex_api/client.rb', line 128
def faraday_auth
Faraday.new(url: config[:prefix]) do |faraday|
faraday_auth_config(faraday)
end
end
|
#faraday_auth_config(faraday) ⇒ Object
118
119
120
121
122
123
124
125
126
|
# File 'lib/paychex_api/client.rb', line 118
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
|
78
79
80
81
82
|
# File 'lib/paychex_api/client.rb', line 78
def (faraday)
faraday.[:accept] = 'application/json'
faraday.[:user_agent] = 'Footrest'
faraday
end
|
#faraday_auth_request(faraday) ⇒ Object
72
73
74
75
76
|
# File 'lib/paychex_api/client.rb', line 72
def faraday_auth_request(faraday)
faraday.request :multipart
faraday.request :url_encoded
faraday
end
|
#faraday_config(faraday) ⇒ Object
108
109
110
111
112
113
114
115
116
|
# File 'lib/paychex_api/client.rb', line 108
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
|
84
85
86
87
|
# File 'lib/paychex_api/client.rb', line 84
def (faraday)
faraday.['Content-Type'] = 'application/json'
faraday
end
|
#faraday_default_request(faraday) ⇒ Object
89
90
91
92
|
# File 'lib/paychex_api/client.rb', line 89
def faraday_default_request(faraday)
faraday.request :json
faraday
end
|
#faraday_default_use(faraday) ⇒ Object
64
65
66
67
68
69
70
|
# File 'lib/paychex_api/client.rb', line 64
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
94
95
96
97
98
99
100
101
|
# File 'lib/paychex_api/client.rb', line 94
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
103
104
105
106
|
# File 'lib/paychex_api/client.rb', line 103
def faraday_proxy(faraday)
faraday.proxy PaychexAPI.proxy if PaychexAPI.proxy
faraday
end
|
#request(method, &block) ⇒ Object
Override Footrest request for ApiArray support
42
43
44
45
46
|
# File 'lib/paychex_api/client.rb', line 42
def request(method, &block)
authorize if @authorization.blank? || @authorization['expiration'] <= Time.now - 30.seconds
connection.[:authorization] = "Bearer #{@authorization['access_token']}"
ApiArray.process_response(connection.send(method, &block), self)
end
|
#set_connection(config) ⇒ Object
59
60
61
62
|
# File 'lib/paychex_api/client.rb', line 59
def set_connection(config)
config[:logger] = config[:logging] if config[:logging]
@connection = default_faraday
end
|