This commit is contained in:
Binary file not shown.
Binary file not shown.
@@ -7,6 +7,8 @@ from core.http.models import User
|
|||||||
from core.apps.eggs.tasks.send_sms import send_sms_msg
|
from core.apps.eggs.tasks.send_sms import send_sms_msg
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class DebtSerializer(serializers.ModelSerializer):
|
class DebtSerializer(serializers.ModelSerializer):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Debt
|
model = Debt
|
||||||
|
|||||||
@@ -21,7 +21,6 @@ class SendService:
|
|||||||
self.password = password or env("SMS_PASSWORD")
|
self.password = password or env("SMS_PASSWORD")
|
||||||
self.callback_url = callback_url
|
self.callback_url = callback_url
|
||||||
self.headers = {
|
self.headers = {
|
||||||
"Content-Type": "application/json",
|
|
||||||
"Accept": "application/json",
|
"Accept": "application/json",
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -33,41 +32,30 @@ class SendService:
|
|||||||
}
|
}
|
||||||
|
|
||||||
def request(self, api_path, data=None, method=None, headers=None):
|
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}"
|
url = f"{self.api_url}/{api_path}"
|
||||||
|
method = method or self.POST
|
||||||
final_headers = self.headers.copy()
|
final_headers = self.headers.copy()
|
||||||
if headers:
|
if headers:
|
||||||
final_headers.update(headers)
|
final_headers.update(headers)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
# For Eskiz, data should be JSON for Notify API
|
# Reverting to data=data (form-encoded) as it was working before
|
||||||
response = requests.request(
|
response = requests.request(
|
||||||
method,
|
method,
|
||||||
url,
|
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,
|
params=data if method == self.GET else None,
|
||||||
headers=final_headers,
|
headers=final_headers,
|
||||||
timeout=10
|
timeout=10
|
||||||
)
|
)
|
||||||
|
response.raise_for_status()
|
||||||
if response.status_code == 401:
|
return response.json()
|
||||||
# Token might be expired, clear cache
|
except requests.exceptions.HTTPError as e:
|
||||||
cache.delete(self.CACHE_KEY)
|
logger.error(f"SMS API HTTP Error: {e.response.status_code} - {e.response.text}")
|
||||||
|
return e.response.json()
|
||||||
try:
|
except Exception as e:
|
||||||
incoming_data = response.json()
|
logger.error(f"SMS API Request Exception: {str(e)}")
|
||||||
except ValueError:
|
return {"status": "error", "message": str(e)}
|
||||||
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
|
|
||||||
|
|
||||||
def get_token(self):
|
def get_token(self):
|
||||||
token = cache.get(self.CACHE_KEY)
|
token = cache.get(self.CACHE_KEY)
|
||||||
@@ -138,9 +126,9 @@ class SendService:
|
|||||||
|
|
||||||
headers = {"Authorization": f"Bearer {token}"}
|
headers = {"Authorization": f"Bearer {token}"}
|
||||||
|
|
||||||
# Use string "4546" for sender name
|
# Use integer 4546 for sender name
|
||||||
data = {
|
data = {
|
||||||
"from": "4546",
|
"from": 4546,
|
||||||
"mobile_phone": phone_number,
|
"mobile_phone": phone_number,
|
||||||
"callback_url": self.callback_url,
|
"callback_url": self.callback_url,
|
||||||
"message": message,
|
"message": message,
|
||||||
|
|||||||
Reference in New Issue
Block a user