This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user