A python client for typed interactions with the Dayforce API.
Project description
dayforce-client
dayforce-client is a python SDK for interfacing with the Dayforce REST API.
Installation
$ pip3 install dayforce-client
Basic Usage
The main interface to the Dayforce REST API is the Dayforce
class. You can instantiate the Dayforce
class by supplying a few authentication and configuration arguments:
import os
from dayforce_client.client import Dayforce
DAYFORCE_USERNAME = os.environ["DAYFORCE_USERNAME"]
DAYFORCE_PASSWORD = os.environ["DAYFORCE_PASSWORD"]
DAYFORCE_CLIENT_NAMESPACE = os.environ["DAYFORCE_CLIENT_NAMESPACE"]
df = Dayforce(username=DAYFORCE_USERNAME,
password=DAYFORCE_PASSWORD,
client_namespace=DAYFORCE_CLIENT_NAMESPACE)
All get_
methods on the Dayforce
class will return a DayforceReponse
object. A DayforceReponse
object contains the Dayforce
instance used to make the call, the parameters used in the request, and the response received from the API:
resp = df.get_employee_details(xrefcode='12345')
print(resp.client)
print(type(resp.client))
print(resp.params)
print(type(resp.resp))
print(resp.resp.url)
print(resp.resp.status_code)
print(resp.resp.ok)
print(resp.resp.elapsed)
...
Dayforce(username='your-username', client_namespace='your-client-namespace', dayforce_release=57, api_version='V1', url='https://usr57-services.dayforcehcm.com/Api/your-client-namespace/V1')
<class 'dayforce_client.client.Dayforce'>
{}
<class 'requests.models.Response'>
https://usr57-services.dayforcehcm.com/Api/your-client-namespace/V1/Employees/12345
200
True
0:00:00.550066
Query Parameters
Certain methods also accept keyword arguments that will be used as query parameters for the request:
resp = df.get_employee_details(xrefcode='12345', expand='WorkAssignments')
print(resp.resp.url)
Output:
https://usr57-services.dayforcehcm.com/Api/your-client-namespace/V1/Employees/12345?expand=WorkAssignments
Accessing Response Content
Response contents can accessed using .get()
syntax:
resp = df.get_employee_details(xrefcode='12345')
print(resp.get("Data"))
Pagination
Responses can also optionally be paginated using iteration syntax:
for page in df.get_employee_raw_punches():
for raw_punch in page.get("Data"):
print(raw_punch)
Yielding Resource Records
Optionally, you can use the DayforceResponse
.yield_records()
method to handle response pagination and yieliding resource records. The method will paginate the response and iterate through response content to yield single resource records for the given resource and the corresponding DayforceResponse
instance:
for page, employee in df.get_employees().yield_records():
print(employee)
print(page)
...
{'XRefCode': '12345'}
DayforceResponse(client=Dayforce(username='your-username', client_namespace='your-client-namespace', dayforce_release=57, api_version='V1', url='https://usr57-services.dayforcehcm.com/Api/your-client-namespace/V1'), params={}, resp=<Response [200]>)
{'XRefCode': '67891'}
DayforceResponse(client=Dayforce(username='your-username', client_namespace='your-client-namespace', dayforce_release=57, api_version='V1', url='https://usr57-services.dayforcehcm.com/Api/your-client-namespace/V1'), params={}, resp=<Response [200]>)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for dayforce_client-0.1.0a1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 63f3c5afd048eec9f89a3a759a6864eec7edbde267424f93125c4ec80d1ef855 |
|
MD5 | 610dda7296436fad992d09c9a4c80703 |
|
BLAKE2b-256 | 36dba44a39d490a8289b5628e64fcf15fcbb56ff7dbb74a5e675efefdfd053a3 |