from services.auth.api_key_auth_base import ApiKeyAuthBase from services.auth.auth_type import AuthType class ApiKeyAuthFactory: def __init__(self, provider: str, credentials: dict): auth_factory = self.get_apikey_auth_factory(provider) self.auth = auth_factory(credentials) def validate_credentials(self): return self.auth.validate_credentials() @staticmethod def get_apikey_auth_factory(provider: str) -> type[ApiKeyAuthBase]: match provider: case AuthType.FIRECRAWL: from services.auth.firecrawl.firecrawl import FirecrawlAuth return FirecrawlAuth case AuthType.JINA: from services.auth.jina.jina import JinaAuth return JinaAuth case _: raise ValueError("Invalid provider")