"""API Client for ows-product-digital.""" import requests URL_STRING = 'product-digital/product/audio' class APIClient: """API Client for ows-product-digital.""" def __init__(self, base_url, session=None): """Initialize APIClient class.""" self.base_url = base_url self.session = session def move(self, product_id, destination_project_id): """Execute a PUT against product-digital to move product to specified project.""" endpoint = '{}/{}/{}'.format(self.base_url, URL_STRING, product_id) return requests.put( endpoint, headers={'session': self.session}, json={'project_id': destination_project_id}) def get(self, product_id): """Execute a GET against product-digital with specified product id.""" endpoint = '{}/{}/{}'.format(self.base_url, URL_STRING, product_id) return requests.get(endpoint, headers={'session': self.session}) def create(self, data): """Execute a POST against product-digital/product/audio.""" endpoint = '{}/{}'.format(self.base_url, URL_STRING) return requests.post(endpoint, headers={'session': self.session}, json=data) def submit(self, product_id): """Execute a PUT against product-digital/product/audio/status.""" endpoint = '{}/{}/{}/status'.format(self.base_url, URL_STRING, product_id) return requests.put(endpoint, headers={'session': self.session}) def unsubmit(self, product_id): """Execute a PUT against product-digital/product/audio/unsubmit.""" endpoint = '{}/{}/{}/unsubmit'.format(self.base_url, URL_STRING, product_id) return requests.put(endpoint, headers={'session': self.session}) def validate(self, product_id): """Execute a GET against 'product_digital/product/audio//validate' with specified product id.""" endpoint = '{}/{}/{}/validate'.format(self.base_url, URL_STRING, product_id) return requests.get(endpoint, headers={'session': self.session, 'Content-Type': 'application/json'})