Исходный код amocrm.manager

from __future__ import annotations

from .auth import OAuthConfig
from .client import AmoCRM

_client: AmoCRM | None = None


[документация] def exchange_code(subdomain: str, code: str, oauth: OAuthConfig) -> None: """Обменять код авторизации на токены и инициализировать глобальный клиент. После успешного обмена глобальный клиент готов к работе; повторный вызов :func:`get_client` вернёт уже созданный экземпляр. Args: subdomain: Поддомен аккаунта AmoCRM (например, ``"mycompany"``). code: Одноразовый код авторизации из callback-запроса OAuth 2.0. oauth: Конфигурация OAuth с реквизитами интеграции и хранилищем токенов. Raises: AmoCRMTokenRefreshError: Если обмен кода на токены завершился ошибкой. """ global _client _client = AmoCRM.from_code(subdomain=subdomain, code=code, oauth=oauth)
[документация] def get_client(subdomain: str, oauth: OAuthConfig) -> AmoCRM: """Вернуть глобальный клиент, создав его из хранилища при первом вызове. При первом вызове создаёт :class:`~amocrm.client.AmoCRM`, загружая токены из ``oauth.storage``. Последующие вызовы возвращают тот же экземпляр. Args: subdomain: Поддомен аккаунта AmoCRM. oauth: Конфигурация OAuth с реквизитами интеграции и хранилищем токенов. Returns: Инициализированный экземпляр :class:`~amocrm.client.AmoCRM`. """ global _client if _client is None: _client = AmoCRM(subdomain=subdomain, oauth=oauth) return _client
[документация] def reset() -> None: """Сбросить глобальный клиент (полезно в тестах).""" global _client _client = None