"""Functions for collections."""
from .session import session_info
from .client import user_logged_in
from .client import oauth2_get, no_token_get

def num_collections() -> int:
    """Compute the number of collections available for the current session."""
    anon_id = session_info()["anon_id"]
    all_collections = no_token_get(
        f"auth/user/collections/{anon_id}/list").either(
            lambda _err: [], lambda colls: colls)
    if user_logged_in():
        all_collections = all_collections + oauth2_get(
            "auth/user/collections/list").either(
                lambda _err: [], lambda colls: colls)
    return len(all_collections)
