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