"""API Client for ows-blacklist-manager.""" import requests URL_STRING = 'blacklist-manager' class APIClient: """API Client for ows-blacklist-manager.""" def __init__(self, base_url, session=None): """Initialize APIClient class.""" self.base_url = base_url self.session = session def get_url(self, url): """Execute a GET against provided url.""" return requests.get(url) def get_blacklist_reasons(self): """Execute a GET against blacklist-reasons.""" endpoint = '{}/{}/blacklist-reasons'.format(self.base_url, URL_STRING) return requests.get(endpoint, headers={'session': self.session}) def get_blacklist_words(self): """Execute a GET against blacklist-words.""" endpoint = '{}/{}/blacklist-words'.format(self.base_url, URL_STRING) return requests.get(endpoint, params={'page_limit': 20000}, headers={ 'session': self.session}) def get_blacklist_words_export(self): """Execute a GET against blacklist-words/export.""" endpoint = '{}/{}/blacklist-words/export'.format(self.base_url, URL_STRING) return requests.get(endpoint, headers={'session': self.session}) def create_blacklist_reason(self, data): """Execute a POST against blacklist-reason.""" endpoint = '{}/{}/blacklist-reason'.format(self.base_url, URL_STRING) return requests.post(endpoint, headers={'session': self.session}, json=data) def update_blacklist_reason(self, blacklist_id, data): """Execute a PUT against blacklist-reason.""" endpoint = '{}/{}/blacklist-reason/{}'.format(self.base_url, URL_STRING, blacklist_id) return requests.put(endpoint, headers={'session': self.session}, json=data) def create_blacklist_word(self, data): """Execute a POST against blacklist-word.""" endpoint = '{}/{}/blacklist-word'.format(self.base_url, URL_STRING) return requests.post(endpoint, headers={'session': self.session}, json=data) def update_blacklist_word(self, word_id, data): """Execute a PUT against blacklist-word.""" endpoint = '{}/{}/blacklist-word/{}'.format(self.base_url, URL_STRING, word_id) return requests.put(endpoint, headers={'session': self.session}, json=data) def delete_blacklist_word(self, word_id): """Execute a DELETE against blacklist-word.""" endpoint = '{}/{}/blacklist-word/{}'.format(self.base_url, URL_STRING, word_id) return requests.delete(endpoint, headers={'session': self.session}) def validate_product_for_blacklisting(self, product_id): """Execute a GET against validate.""" endpoint = '{}/{}/validate/{}'.format(self.base_url, URL_STRING, product_id) return requests.get(endpoint, headers={'session': self.session})