from __future__ import annotations from urllib.parse import urlencode from src import config from src.api_client.dsp import DeezerApiClient from src.enums import ServiceType from ..schemas import DeezerCallbackRequestSchema from .base import BaseDSPAuthorizer __all__ = ["DeezerAuthorizer"] class DeezerAuthorizer(BaseDSPAuthorizer[DeezerApiClient]): service_type = ServiceType.deezer callback_schema = DeezerCallbackRequestSchema() def get_auth_url(self) -> str: params = urlencode( { "app_id": config.DEEZER_APP_ID, "redirect_uri": self.get_callback_uri(), "perms": ",".join(config.DEEZER_PERMS), } ) return f"{DeezerApiClient.base_auth_url}/auth.php?{params}"