trello.py 1.5 KB

1234567891011121314151617181920212223242526272829303132333435
  1. from typing import Any
  2. import requests
  3. from core.tools.errors import ToolProviderCredentialValidationError
  4. from core.tools.provider.builtin_tool_provider import BuiltinToolProviderController
  5. class TrelloProvider(BuiltinToolProviderController):
  6. def _validate_credentials(self, credentials: dict[str, Any]) -> None:
  7. """Validate Trello API credentials by making a test API call.
  8. Args:
  9. credentials (dict[str, Any]): The Trello API credentials to validate.
  10. Raises:
  11. ToolProviderCredentialValidationError: If the credentials are invalid.
  12. """
  13. api_key = credentials.get("trello_api_key")
  14. token = credentials.get("trello_api_token")
  15. url = f"https://api.trello.com/1/members/me?key={api_key}&token={token}"
  16. try:
  17. response = requests.get(url)
  18. response.raise_for_status() # Raises an HTTPError for bad responses
  19. except requests.exceptions.HTTPError as e:
  20. if response.status_code == 401:
  21. # Unauthorized, indicating invalid credentials
  22. raise ToolProviderCredentialValidationError("Invalid Trello credentials: Unauthorized.")
  23. # Handle other potential HTTP errors
  24. raise ToolProviderCredentialValidationError("Error validating Trello credentials")
  25. except requests.exceptions.RequestException as e:
  26. # Handle other exceptions, such as connection errors
  27. raise ToolProviderCredentialValidationError("Error validating Trello credentials")