"""Interface for the ows-accounting microservice.""" from oto import response from owsrequest import request as requests from feature_fm.constants.error import ERROR_CODE_OWS_ACCOUNTING_REQUEST from feature_fm.constants.ows_services import CONTENT_TYPE from feature_fm.constants.ows_services import OWS_ACCOUNTING def get_average_monthly_net_revenue(account_type, account_id): """Get the average monthly net revenue for a vendor or subaccount. Args: account_type (str): The account type. account_id (int): The account id. Returns: response.Response: Containing the average monthly net revenue. """ path = '/{0}/{1}/average-monthly-net-revenue'.format( account_type, account_id) result = requests.get( OWS_ACCOUNTING, path, headers={'Content-Type': CONTENT_TYPE}) if result.status_code != 200: return response.create_error_response( status=result.status_code, code=ERROR_CODE_OWS_ACCOUNTING_REQUEST, message=result.text) return response.Response(result.json()) def get_budget_caps(): """Get budget caps for all the labels. Returns: response.Response: Containing all the budget caps for all the labels. """ path = '/budget-caps' result = requests.get( OWS_ACCOUNTING, path, headers={'Content-Type': CONTENT_TYPE}) if result.status_code != 200: return response.create_error_response( status=result.status_code, code=ERROR_CODE_OWS_ACCOUNTING_REQUEST, message=result.text ) return response.Response(result.json())