1234567891011121314151617181920212223242526272829303132333435 |
- from typing import Any
- import requests
- from core.tools.errors import ToolProviderCredentialValidationError
- from core.tools.provider.builtin_tool_provider import BuiltinToolProviderController
- class TrelloProvider(BuiltinToolProviderController):
- def _validate_credentials(self, credentials: dict[str, Any]) -> None:
- """Validate Trello API credentials by making a test API call.
- Args:
- credentials (dict[str, Any]): The Trello API credentials to validate.
- Raises:
- ToolProviderCredentialValidationError: If the credentials are invalid.
- """
- api_key = credentials.get("trello_api_key")
- token = credentials.get("trello_api_token")
- url = f"https://api.trello.com/1/members/me?key={api_key}&token={token}"
- try:
- response = requests.get(url)
- response.raise_for_status() # Raises an HTTPError for bad responses
- except requests.exceptions.HTTPError as e:
- if response.status_code == 401:
- # Unauthorized, indicating invalid credentials
- raise ToolProviderCredentialValidationError("Invalid Trello credentials: Unauthorized.")
- # Handle other potential HTTP errors
- raise ToolProviderCredentialValidationError("Error validating Trello credentials")
- except requests.exceptions.RequestException as e:
- # Handle other exceptions, such as connection errors
- raise ToolProviderCredentialValidationError("Error validating Trello credentials")
|