From 2a44ee9f0f8338829a71c9103809ca2912c5ff05 Mon Sep 17 00:00:00 2001 From: Shariq Ansari Date: Sat, 11 Jan 2025 13:11:50 +0530 Subject: [PATCH] fix: verify credentials --- .../crm_exotel_settings.py | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/crm/fcrm/doctype/crm_exotel_settings/crm_exotel_settings.py b/crm/fcrm/doctype/crm_exotel_settings/crm_exotel_settings.py index dbaf1341..c72fc5e9 100644 --- a/crm/fcrm/doctype/crm_exotel_settings/crm_exotel_settings.py +++ b/crm/fcrm/doctype/crm_exotel_settings/crm_exotel_settings.py @@ -1,9 +1,24 @@ # Copyright (c) 2025, Frappe Technologies Pvt. Ltd. and contributors # For license information, please see license.txt -# import frappe +import frappe +import requests +from frappe import _ from frappe.model.document import Document class CRMExotelSettings(Document): - pass + def validate(self): + self.verify_credentials() + + def verify_credentials(self): + if self.enabled: + response = requests.get( + "https://api.exotel.com/v1/Accounts/{sid}".format(sid=self.account_sid), + auth=(self.api_key, self.get_password("api_token")), + ) + if response.status_code != 200: + frappe.throw( + _(f"Please enter valid exotel Account SID, API key & API token: {response.reason}"), + title=_("Invalid credentials"), + )