from dataclasses import dataclass from typing import Dict from marshmallow import EXCLUDE from external_api.base.clients.auth_strategies.Base import AuthStrategy from aiohttp import BasicAuth @dataclass class FivetranCredentials: clientId: str clientSecret: str class Meta: unknown = EXCLUDE class FivetranAuthStrategy(AuthStrategy): credentials: FivetranCredentials def __init__(self, credentials: FivetranCredentials) -> None: self.credentials = credentials def authorize(self, headers: Dict[str, str]) -> Dict[str, str]: return BasicAuth(self.credentials.clientId, self.credentials.clientSecret)