"""Interface to the ows-account microservice.""" import json from json import JSONDecodeError from owsrequest import request from owsresponse import response, status from product_review.constants import error, services from product_review.util import exception as exception_util def get_vendor_company_brand(vendor_id): """Get company brand for requested vendor.""" company_brand_response: response.Response = request.get( services.OWS_ACCOUNT, f"/vendor/brand/{vendor_id}", ) if company_brand_response.status_code == status.OK: return company_brand_response.text error_text = company_brand_response.text error_json = None try: error_json = json.loads(error_text) except JSONDecodeError: pass if company_brand_response.status_code != status.OK: exception_util.raise_exception_for_ows_response( status=company_brand_response.status_code, code=error.OWS_ACCOUNT_ERROR_CODE, message=json.dumps(error_json) if error_json is not None else error_text, ) def get_vendor(vendor_id): """Get vendor data.""" ows_response = request.get(services.OWS_ACCOUNT, f"/vendor/{vendor_id}") if ows_response.status_code == status.OK: return ows_response.json() exception_util.raise_exception_for_ows_response( status=ows_response.status_code, code=error.OWS_ACCOUNT_ERROR_CODE, message=ows_response.text, ) def get_vendor_document(vendor_id): """Get vendor document.""" ows_response = request.get(services.OWS_ACCOUNT, f"/vendor/{vendor_id}/document") if ows_response.status_code == status.OK: return ows_response.json() exception_util.raise_exception_for_ows_response( status=ows_response.status_code, code=error.OWS_ACCOUNT_ERROR_CODE, message=ows_response.text, ) def get_vendor_assigned_reviewer(vendor_id): """Get vendor assigned reviewer.""" ows_response = request.get( services.OWS_ACCOUNT, f"/vendor/{vendor_id}/assigned-reviewer" ) if ows_response.status_code == status.OK: return ows_response.json() exception_util.raise_exception_for_ows_response( status=ows_response.status_code, code=error.OWS_ACCOUNT_ERROR_CODE, message=ows_response.text, ) def get_vendor_assigned_to(vendor_id): """Get vendor assigned to.""" ows_response = request.get(services.OWS_ACCOUNT, f"/vendor/{vendor_id}/assigned-to") if ows_response.status_code == status.OK: return ows_response.json() exception_util.raise_exception_for_ows_response( status=ows_response.status_code, code=error.OWS_ACCOUNT_ERROR_CODE, message=ows_response.text, )