import secrets
import hashlib


def create_invite_token():
    """
    Creates:
    - raw token (send in email/url)
    - hashed token (store in DB)
    """

    raw_token = secrets.token_urlsafe(32)

    hashed_token = hashlib.sha256(
        raw_token.encode()
    ).hexdigest()

    return {
        "raw_token": raw_token,
        "hashed_token": hashed_token
    }


def decode_invite_token(token: str):
    """
    Converts incoming raw token
    into hashed token for DB lookup
    """

    return hashlib.sha256(
        token.encode()
    ).hexdigest()