"""API Client for ows-abacus-schedule.""" import requests class AbacusScheduleAPIClient: """API Client for ows-abacus-schedule.""" def __init__(self, base_url, headers): """Initialize ows_abacus_schedule_APIClient class.""" self.base_url = base_url self.headers = headers def get_hello(self): """GET /hello .""" endpoint = '{}/hello'.format(self.base_url) return requests.get(endpoint, headers=self.headers) def get_schedule_by_id(self, schedule_id): """GET /schedule/{schedule_id} .""" endpoint = '{}/schedule/{}'.format(self.base_url, schedule_id) return requests.get(endpoint, headers=self.headers) def get_schedule_by_target_type(self, target_type, target_id, params=None): """GET /schedules/{target_type}/{target_id}/ .""" endpoint = '{}/schedules/{}/{}'.format(self.base_url, target_type, target_id) return requests.get(endpoint, headers=self.headers, params=params) def get_schedule_attachments_by_schedule_id(self, schedule_id): """GET /schedule/{schedule_id}/schedule-attachments/ .""" endpoint = '{}/schedule/{}/schedule-attachments'.format( self.base_url, schedule_id ) return requests.get(endpoint, headers=self.headers) def get_schedule_attachments_by_attachment_id(self, schedule_attachment_id): """GET /schedule-attachment/{schedule_attachment_id}/ .""" endpoint = '{}/schedule-attachment/{}'.format( self.base_url, schedule_attachment_id ) return requests.get(endpoint, headers=self.headers) def delete_schedule_attachments_by_attachment_id(self, schedule_attachment_id): """DELETE /schedule-attachment/{schedule_attachment_id}/ .""" endpoint = '{}/schedule-attachment/{}'.format( self.base_url, schedule_attachment_id ) return requests.delete(endpoint, headers=self.headers) def post_schedule(self, body): """POST /schedule .""" endpoint = '{}/schedule'.format(self.base_url) return requests.post(endpoint, json=body, headers=self.headers) def put_schedule(self, schedule_id, body): """PUT /schedule .""" endpoint = '{}/schedule/{}'.format(self.base_url, schedule_id) return requests.put(endpoint, json=body, headers=self.headers) def put_schedule_attachments_by_id_and_target(self, schedule_id, target_type, body): """PUT /schedule/{schedule_id}/{target_type}/schedule-attachments/ .""" endpoint = '{}/schedule/{}/{}/schedule-attachments/'.format( self.base_url, schedule_id, target_type ) return requests.put(endpoint, json=body, headers=self.headers)