From 3fae0c9ff2e8f53bbf300792a647b913bbf6d115 Mon Sep 17 00:00:00 2001 From: Innokentii Konstantinov Date: Thu, 9 Jun 2022 15:48:43 +0400 Subject: [PATCH] Fix always error message for cloud notifications --- engine/apps/public_api/views/phone_notifications.py | 9 +++++++-- engine/apps/twilioapp/models/phone_call.py | 3 ++- engine/apps/twilioapp/models/sms_message.py | 5 +++-- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/engine/apps/public_api/views/phone_notifications.py b/engine/apps/public_api/views/phone_notifications.py index e63b3f14..f9f96f74 100644 --- a/engine/apps/public_api/views/phone_notifications.py +++ b/engine/apps/public_api/views/phone_notifications.py @@ -32,6 +32,7 @@ class MakeCallView(APIView): response_data = {} organization = self.request.auth.organization + logger.info(f"Making cloud call. Email {serializer.validated_data['email']}") user = organization.users.filter( email=serializer.validated_data["email"], _verified_phone_number__isnull=False ).first() @@ -41,9 +42,11 @@ class MakeCallView(APIView): try: PhoneCall.make_grafana_cloud_call(user, serializer.validated_data["message"]) - except TwilioRestException: + except TwilioRestException as e: + logger.info(f"Making cloud call. Twilio exception {str(e)}") return Response(status=status.HTTP_503_SERVICE_UNAVAILABLE, data=response_data) except PhoneCall.PhoneCallsLimitExceeded: + logger.info(f"Making cloud call. PhoneCallsLimitExceeded") return Response(status=status.HTTP_400_BAD_REQUEST, data={"error": "limit-exceeded"}) return Response(status=status.HTTP_200_OK, data=response_data) @@ -73,9 +76,11 @@ class SendSMSView(APIView): try: SMSMessage.send_grafana_cloud_sms(user, serializer.validated_data["message"]) - except TwilioRestException: + except TwilioRestException as e: + logger.info(f"Sending cloud sms. Twilio exception {str(e)}") return Response(status=status.HTTP_503_SERVICE_UNAVAILABLE, data=response_data) except SMSMessage.SMSLimitExceeded: + logger.info(f"Sending cloud sms. PhoneCallsLimitExceeded") return Response(status=status.HTTP_400_BAD_REQUEST, data={"error": "limit-exceeded"}) return Response(status=status.HTTP_200_OK, data=response_data) diff --git a/engine/apps/twilioapp/models/phone_call.py b/engine/apps/twilioapp/models/phone_call.py index 1b5348ed..64b4304e 100644 --- a/engine/apps/twilioapp/models/phone_call.py +++ b/engine/apps/twilioapp/models/phone_call.py @@ -169,7 +169,8 @@ class PhoneCall(models.Model): except requests.exceptions.RequestException as e: logger.warning(f"Unable to make call through cloud. Request exception {str(e)}") raise PhoneCall.CloudSendError("Unable to make call through cloud: request failed") - + if response.status_code == status.HTTP_200_OK: + logger.info("Make cloud call successfully") if response.status_code == status.HTTP_400_BAD_REQUEST and response.json().get("error") == "limit-exceeded": raise PhoneCall.PhoneCallsLimitExceeded("Organization calls limit exceeded") elif response.status_code == status.HTTP_404_NOT_FOUND: diff --git a/engine/apps/twilioapp/models/sms_message.py b/engine/apps/twilioapp/models/sms_message.py index 6d70592a..00e98e4b 100644 --- a/engine/apps/twilioapp/models/sms_message.py +++ b/engine/apps/twilioapp/models/sms_message.py @@ -134,8 +134,9 @@ class SMSMessage(models.Model): except requests.exceptions.RequestException as e: logger.warning(f"Unable to send SMS through cloud. Request exception {str(e)}") raise SMSMessage.CloudSendError("Unable to send SMS through cloud: request failed") - - if response.status_code == status.HTTP_400_BAD_REQUEST and response.json().get("error") == "limit-exceeded": + if response.status_code == status.HTTP_200_OK: + logger.info("Sent cloud sms successfully") + elif response.status_code == status.HTTP_400_BAD_REQUEST and response.json().get("error") == "limit-exceeded": raise SMSMessage.SMSLimitExceeded("Organization sms limit exceeded") elif response.status_code == status.HTTP_404_NOT_FOUND: raise SMSMessage.CloudSendError("Unable to send SMS through cloud: user not found")