Переглянути джерело

UPDATE: Twilio tool crdential verification (#2741)

Yash Parmar 1 рік тому
батько
коміт
c0b82f8e58
1 змінених файлів з 19 додано та 15 видалено
  1. 19 15
      api/core/tools/provider/builtin/twilio/twilio.py

+ 19 - 15
api/core/tools/provider/builtin/twilio/twilio.py

@@ -1,5 +1,8 @@
 from typing import Any
 
+from twilio.base.exceptions import TwilioRestException
+from twilio.rest import Client
+
 from core.tools.errors import ToolProviderCredentialValidationError
 from core.tools.provider.builtin_tool_provider import BuiltinToolProviderController
 
@@ -7,19 +10,20 @@ from core.tools.provider.builtin_tool_provider import BuiltinToolProviderControl
 class TwilioProvider(BuiltinToolProviderController):
     def _validate_credentials(self, credentials: dict[str, Any]) -> None:
         try:
-            """
-            SendMessageTool().fork_tool_runtime(
-                meta={
-                    "credentials": credentials,
-                }
-            ).invoke(
-                user_id="",
-                tool_parameters={
-                    "message": "Credential validation message",
-                    "to_number": "+14846624384",
-                },
-            )
-            """
-            pass
+            # Extract credentials
+            account_sid = credentials["account_sid"]
+            auth_token = credentials["auth_token"]
+            from_number = credentials["from_number"]
+            
+            # Initialize twilio client
+            client = Client(account_sid, auth_token)
+
+            # fetch account
+            client.api.accounts(account_sid).fetch()
+
+        except TwilioRestException as e:
+            raise ToolProviderCredentialValidationError(f"Twilio API error: {e.msg}") from e
+        except KeyError as e:
+            raise ToolProviderCredentialValidationError(f"Missing required credential: {e}") from e
         except Exception as e:
-            raise ToolProviderCredentialValidationError(str(e))
+            raise ToolProviderCredentialValidationError(str(e))