def get_username()

in annotation/annotation/microservice_communication/user.py [0:0]


def get_username(callback_url: str, user_id: str, tenant: str, token: str):
    try:
        user_response = requests.get(
            f"{callback_url}/{user_id}",
            headers={
                "X-Current-Tenant": tenant,
                "Authorization": f"Bearer {token}",
            },
            timeout=5,
        )
        if user_response.status_code == 403:
            raise GetUserInfoAccessDenied(
                "Access Denied on request to users microservice "
            )
        if user_response.status_code == 404:
            Logger.info("User %s is not found in 'users'", user_id)
            return ""
        if user_response.status_code != 200:
            raise GetUserInfoException(
                f"Failed request to 'users' microservice: {user_response.text}"
            )
        return user_response.json().get("username")
    except RequestException as exc:
        raise GetUserInfoException(exc)