|
|
|
@ -1,4 +1,5 @@
|
|
|
|
|
import json
|
|
|
|
|
from ast import literal_eval
|
|
|
|
|
from datetime import datetime, timezone
|
|
|
|
|
|
|
|
|
|
from clicksend_client import ApiClient
|
|
|
|
@ -69,41 +70,32 @@ class Sender(BaseSender):
|
|
|
|
|
messages = messages[:MAX_BATCH_SIZE]
|
|
|
|
|
|
|
|
|
|
try:
|
|
|
|
|
response = (
|
|
|
|
|
SMSApi(client)
|
|
|
|
|
.sms_send_post(
|
|
|
|
|
SmsMessageCollection(
|
|
|
|
|
messages=[
|
|
|
|
|
SmsMessage(
|
|
|
|
|
**{
|
|
|
|
|
"from": settings.SMS_SETTINGS[
|
|
|
|
|
"clicksend_sender_id"
|
|
|
|
|
],
|
|
|
|
|
"body": message.text,
|
|
|
|
|
"to": message.recipient,
|
|
|
|
|
"source": "shiftregister",
|
|
|
|
|
"custom_string": message.key,
|
|
|
|
|
}
|
|
|
|
|
)
|
|
|
|
|
for message in messages
|
|
|
|
|
]
|
|
|
|
|
)
|
|
|
|
|
response = SMSApi(client).sms_send_post(
|
|
|
|
|
SmsMessageCollection(
|
|
|
|
|
messages=[
|
|
|
|
|
SmsMessage(
|
|
|
|
|
_from=settings.SMS_SETTINGS["clicksend_sender_id"],
|
|
|
|
|
body=message.text,
|
|
|
|
|
to=message.recipient,
|
|
|
|
|
source="shiftregister",
|
|
|
|
|
custom_string=message.key,
|
|
|
|
|
)
|
|
|
|
|
for message in messages
|
|
|
|
|
]
|
|
|
|
|
)
|
|
|
|
|
.data
|
|
|
|
|
)
|
|
|
|
|
except ApiException as e:
|
|
|
|
|
if e.body:
|
|
|
|
|
response = e.body
|
|
|
|
|
else:
|
|
|
|
|
raise OutboundMessageError(f"{e.status} {e.reason}")
|
|
|
|
|
raise OutboundMessageError(f"{e.status} {e.reason}")
|
|
|
|
|
|
|
|
|
|
response = json.loads(response)
|
|
|
|
|
data = literal_eval(response)["data"]
|
|
|
|
|
|
|
|
|
|
for message in response.get("messages", []):
|
|
|
|
|
for message in data.get("messages", []):
|
|
|
|
|
if message["status"] == "SUCCESS":
|
|
|
|
|
yield Message(
|
|
|
|
|
message["custom_string"],
|
|
|
|
|
recipient=message["to"],
|
|
|
|
|
sender=message["from"],
|
|
|
|
|
text=message["body"],
|
|
|
|
|
type=MessageType.OUTBOUND,
|
|
|
|
|
created_at=datetime.fromtimestamp(message["date"], timezone.utc),
|
|
|
|
|
)
|
|
|
|
|