|
|
@@ -1,6 +1,6 @@
|
|
|
import os
|
|
|
import requests
|
|
|
-from KdeConnect import KDEConnect
|
|
|
+from .KdeConnect import KDEConnect
|
|
|
|
|
|
from app.schemas.responses import AccessTokenResponse, SMSResponse
|
|
|
|
|
|
@@ -8,24 +8,27 @@ from app.schemas.responses import AccessTokenResponse, SMSResponse
|
|
|
def send_sms_from_api(url: str, login: str, pwd: str, device_name: str):
|
|
|
"""Connect to sms-server API to retreieve sms to be send and send them using kdeconnect-cli"""
|
|
|
# Log in to API get access token
|
|
|
- response = requests.get(
|
|
|
+ response = requests.post(
|
|
|
url + "/auth/access-token",
|
|
|
data={"grant_type": "password", "username": login, "password": pwd},
|
|
|
)
|
|
|
- authentication: AccessTokenResponse = response.json()
|
|
|
+ authentication = AccessTokenResponse.parse_raw(response.content)
|
|
|
headers = {"Authorization": "Bearer " + authentication.access_token}
|
|
|
|
|
|
# List SMS to be send
|
|
|
response = requests.get(url + "/sms/to-send", headers=headers)
|
|
|
- sms_list: list[SMSResponse] = response.json()
|
|
|
+ sms_list: list[SMSResponse] = [SMSResponse.parse_obj(obj) for obj in response.json()]
|
|
|
|
|
|
# Init KDE Connect
|
|
|
kde = KDEConnect(device_name=device_name)
|
|
|
|
|
|
# send sms & update api
|
|
|
for sms in sms_list:
|
|
|
- kde.send_sms(sms.phone_number, sms.content)
|
|
|
- requests.get(url + "/sms/sent-now/" + sms.id, headers=headers)
|
|
|
+ try:
|
|
|
+ kde.send_sms(sms.phone_number, sms.content)
|
|
|
+ requests.get(url + "/sms/sent-now/" + sms.id, headers=headers)
|
|
|
+ except Exception as exc:
|
|
|
+ print(exc)
|
|
|
|
|
|
|
|
|
class InvalidEnvironnementVariable(Exception):
|