From c0b82f8e58a5e02f5633d71389218ac0cb56f0b0 Mon Sep 17 00:00:00 2001 From: Yash Parmar <82636823+Yash-1511@users.noreply.github.com> Date: Thu, 7 Mar 2024 15:38:52 +0530 Subject: [PATCH] UPDATE: Twilio tool crdential verification (#2741) --- .../tools/provider/builtin/twilio/twilio.py | 34 +++++++++++-------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/api/core/tools/provider/builtin/twilio/twilio.py b/api/core/tools/provider/builtin/twilio/twilio.py index dbf30962f9..7984d7b3b1 100644 --- a/api/core/tools/provider/builtin/twilio/twilio.py +++ b/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)) \ No newline at end of file