diff --git a/celerybeat-schedule-shm b/celerybeat-schedule-shm index bafaecf..e52be8e 100644 Binary files a/celerybeat-schedule-shm and b/celerybeat-schedule-shm differ diff --git a/celerybeat-schedule-wal b/celerybeat-schedule-wal index 55c631a..791aaa1 100644 Binary files a/celerybeat-schedule-wal and b/celerybeat-schedule-wal differ diff --git a/core/apps/eggs/serializers/debt.py b/core/apps/eggs/serializers/debt.py index 9e739fc..879f5fa 100644 --- a/core/apps/eggs/serializers/debt.py +++ b/core/apps/eggs/serializers/debt.py @@ -7,6 +7,8 @@ from core.http.models import User from core.apps.eggs.tasks.send_sms import send_sms_msg + + class DebtSerializer(serializers.ModelSerializer): class Meta: model = Debt diff --git a/core/services/sms_service.py b/core/services/sms_service.py index 2f6c72a..b85e35d 100755 --- a/core/services/sms_service.py +++ b/core/services/sms_service.py @@ -21,7 +21,6 @@ class SendService: self.password = password or env("SMS_PASSWORD") self.callback_url = callback_url self.headers = { - "Content-Type": "application/json", "Accept": "application/json", } @@ -33,41 +32,30 @@ class SendService: } def request(self, api_path, data=None, method=None, headers=None): - incoming_data = {"status": "error", "message": "Unknown error"} - url = f"{self.api_url}/{api_path}" + method = method or self.POST final_headers = self.headers.copy() if headers: final_headers.update(headers) try: - # For Eskiz, data should be JSON for Notify API + # Reverting to data=data (form-encoded) as it was working before response = requests.request( method, url, - json=data if method != self.GET else None, + data=data if method != self.GET else None, params=data if method == self.GET else None, headers=final_headers, timeout=10 ) - - if response.status_code == 401: - # Token might be expired, clear cache - cache.delete(self.CACHE_KEY) - - try: - incoming_data = response.json() - except ValueError: - incoming_data = {"status": "error", "message": response.text} - - if response.status_code >= 400: - logger.error(f"Eskiz API Error ({response.status_code}): {incoming_data}") - - except requests.RequestException as error: - logger.error(f"Eskiz Request Exception: {str(error)}") - raise Exception(str(error)) - - return incoming_data + response.raise_for_status() + return response.json() + except requests.exceptions.HTTPError as e: + logger.error(f"SMS API HTTP Error: {e.response.status_code} - {e.response.text}") + return e.response.json() + except Exception as e: + logger.error(f"SMS API Request Exception: {str(e)}") + return {"status": "error", "message": str(e)} def get_token(self): token = cache.get(self.CACHE_KEY) @@ -138,9 +126,9 @@ class SendService: headers = {"Authorization": f"Bearer {token}"} - # Use string "4546" for sender name + # Use integer 4546 for sender name data = { - "from": "4546", + "from": 4546, "mobile_phone": phone_number, "callback_url": self.callback_url, "message": message,