Source code for berserk.clients.account

from __future__ import annotations

from typing import cast

from .. import models
from ..types.account import AccountInformation, Preferences
from .base import BaseClient


[docs]class Account(BaseClient): """Client for account-related endpoints."""
[docs] def get(self) -> AccountInformation: """Get your public information. :return: public information about the authenticated user """ path = "/api/account" return cast( AccountInformation, self._r.get(path, converter=models.Account.convert) )
[docs] def get_email(self) -> str: """Get your email address. :return: email address of the authenticated user """ path = "/api/account/email" return self._r.get(path)["email"]
[docs] def get_preferences(self) -> Preferences: """Get your account preferences. :return: preferences of the authenticated user """ path = "/api/account/preferences" return cast(Preferences, self._r.get(path))
[docs] def get_kid_mode(self) -> bool: """Get your kid mode status. :return: current kid mode status """ path = "/api/account/kid" return self._r.get(path)["kid"]
[docs] def set_kid_mode(self, value: bool) -> None: """Set your kid mode status. :param bool value: whether to enable or disable kid mode """ path = "/api/account/kid" params = {"v": value} self._r.post(path, params=params)
[docs] def upgrade_to_bot(self): """Upgrade your account to a bot account. Requires bot:play oauth scope. User cannot have any previously played games. """ path = "/api/bot/account/upgrade" self._r.post(path)