Назад к задачамПолучайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Junior — Senior
2
Отправка SMS через внешний сервис API
Условие задачи
Код‑ревью: оценить устойчивость реализации и правильность обработки различных HTTP‑статусов.
import requests, json, logging
logger = logging.getLogger(__name__)
def send_sms_via_world(recipient: str, message: str) -> tuple:
auth_url = 'https://my.it.com' + '/api/auth/login?email=it@it.in&password=password'
auth_resp = requests.post(url=auth_url)
token = auth_resp.json().get('access_token')
logger.warning(f'response it 1: {auth_resp.text}')
send_url = 'https://my.it.com' + '/api/send'
payload = {
"type": "sms",
"sender": "Sender",
"body": str(message),
"recipient": str(recipient)
}
hdrs = {
'Authorization': f'Bearer {token}'
}
send_resp = requests.post(url=send_url, headers=hdrs, data=json.dumps(payload))
logger.warning(f'response it 2: {send_resp.text}')
if send_resp.status_code == 200:
return send_url, 0, send_resp.status_code, send_resp.json()
elif send_resp.status_code == 400:
return send_url, 1, send_resp.status_code, 'Bad request'
elif send_resp.status_code == 408:
return send_url, 2, send_resp.status_code, 'Time out in querying'
elif send_resp.status_code == 500:
return send_url, -99, send_resp.status_code, 'Internal Error. Please contact with your administrator.'