"""Interface for ows-users microservice.""" import backoff import requests import config from src.constants import services as services_consts from src.utils import is_not_found_http_error, log_execution @log_execution @backoff.on_exception(backoff.expo, requests.exceptions.HTTPError, max_tries=3, giveup=is_not_found_http_error) def get_vend_contact_user_roles(vend_contact_id): """Get roles for vend_contact user. Args: vend_contact_id (int): vend_contact id. Returns: dict: information about product. Raises: requests.exceptions.HTTPError: When 400 <= status_code < 600 """ url = services_consts.SERVICE_URL.format( environment=config.ENVIRONMENT, service_name=services_consts.OWS_USERS_SERVICE_NAME, path=services_consts.VEND_CONTACT_USER_ROLES_ENDPOINT.format(vend_contact_id), ) response = requests.get(url) response.raise_for_status() return response.json() @log_execution @backoff.on_exception(backoff.expo, requests.exceptions.HTTPError, max_tries=3, giveup=is_not_found_http_error) def get_user_minimum_details(user_id): """Get minimum details for a user. Args: user_id (str): alw:vend_contact id. Returns: dict: information about product. Raises: requests.exceptions.HTTPError: When 400 <= status_code < 600 """ url = services_consts.SERVICE_URL.format( environment=config.ENVIRONMENT, service_name=services_consts.OWS_USERS_SERVICE_NAME, path=services_consts.USER_MINIMUM_DETAILS.format(user_id), ) response = requests.get(url) response.raise_for_status() return response.json()