"""API Client for ows-sales-goals.""" import requests SALES_GOALS_STRING = 'salesgoals' class APIClient: """API Client for sales-goals.""" def __init__(self, base_url, session=None): """Initialize APIClient class.""" self.base_url = base_url + '/' + SALES_GOALS_STRING self.session = session def get_territories(self): """Execute a GET against upload-token.""" endpoint = '{}/territories'.format(self.base_url) response = requests.get(endpoint, headers={'session': self.session}) return response.status_code, response.json() def create_sales_goals(self, product_id, data): """Get the territories.""" endpoint = '{}/goals/{}'.format(self.base_url, product_id) response = requests.post( endpoint, headers={'session': self.session}, json={'sales_goals': data} ) return response.status_code, response.json() def get_sales_goals(self, product_id): """Get the territories.""" endpoint = '{}/goals/{}'.format(self.base_url, product_id) response = requests.get(endpoint, headers={'session': self.session}) return response.status_code, response.json() def create_target_market_goal(self, product_id, country_id, data): """Get the territories.""" endpoint = '{}/goals/{}/{}'.format( self.base_url, product_id, country_id) response = requests.post( endpoint, headers={'session': self.session}, json=data) return response.status_code, response.json() def delete_target_market_goal(self, product_id, country_id): """Delete target market goal.""" endpoint = '{}/goals/{}/{}'.format( self.base_url, product_id, country_id) response = requests.delete( endpoint, headers={'session': self.session}) return response.status_code, response.json() def update_target_market_goal(self, product_id, data): """Update target market goal.""" endpoint = '{}/goals/{}'.format( self.base_url, product_id) response = requests.patch( endpoint, headers={'session': self.session}, json=data) return response.status_code, response.json() def upsert_digital_global_projection(self, product_id, data): """Upsert the projection.""" endpoint = '{}/digital/{}'.format( self.base_url, product_id) response = requests.post( endpoint, headers={'session': self.session}, json=data) return response.status_code, response.json() def upsert_digital_territory_projection(self, product_id, data): """Upsert the projection.""" endpoint = '{}/digital/{}/projections'.format( self.base_url, product_id) response = requests.post( endpoint, headers={'session': self.session}, json=data) return response.status_code, response.json()