Initial commit

This commit is contained in:
Reynir Björnsson 2020-01-23 11:34:57 +01:00
commit bba3d4e411
1 changed files with 59 additions and 0 deletions

59
__init__.py Normal file
View File

@ -0,0 +1,59 @@
import requests
import json
REFRESH_URL = 'https://openapi-login.planday.com/connect/token'
SHIFTS_URL= "https://openapi.planday.com/scheduling/v1/shifts"
class Planday(object):
def __init__(self, client_id, refresh_token):
self.client_id = client_id
self.refresh_token = refresh_token
self.access_token = None
def refresh_access_token(self):
data = {'client_id': self.client_id,
'grant_type': 'refresh_token',
'refresh_token': self.refresh_token}
response = requests.post(REFRESH_URL, data=data)
if response.status_code == 200:
token_data = response.json()
self.access_token = token_data['access_token']
else:
print("Error refreshing access_token", response.status_code, response.text)
def __get(self, url, params={}):
response = requests.get(url, headers=self.get_headers(), params=params)
if response.status_code == 401:
self.refresh_access_token()
response = requests.get(url, headers=self.get_headers(), params=params)
return response
def get_headers(self):
return {'X-ClientId': self.client_id, 'Authorization': 'Bearer {0}'.format(self.access_token)}
def get_shifts(self, to=None, from_=None):
params={}
if to != None:
params['to'] = to
if from_ != None:
params['from'] = from_
response = self.__get(SHIFTS_URL, params=params)
if response.status_code == 200:
return response.json()
else:
print("Error getting shifts", response.status_code, response.text)
def get_employee(self, employee_id):
url = "https://openapi.planday.com/hr/v1/employees/{0}".format(employee_id)
response = self.__get(url)
if response.status_code == 200:
return response.json()
else:
print("Error getting shifts", response.status_code, response.text)
def get_employees(self):
response = self.__get("https://openapi.planday.com/hr/v1/employees/")
if response.status_code == 200:
return response.json()
else:
print("Error getting shifts", response.status_code, response.text)