from apollo_utils.service.exceptions import NotFound from typing import Tuple from server import config from server.db.models import Account async def get_account(app_slug: str, user_id: str, raise_account: bool = None) -> Tuple[Account, bool]: if raise_account is None: raise_account = config.RAISE_ON_ABSENT_ACCOUNTS if raise_account: created = False account = await Account.get(app_slug=app_slug, user_id=user_id) if not account: raise NotFound(f"Account for user {user_id} and application {app_slug} is not found.") else: account, created = await Account.get_or_create(user_id=user_id, app_slug=app_slug) return account, created