-
Notifications
You must be signed in to change notification settings - Fork 0
/
task_api.py
43 lines (38 loc) · 1.6 KB
/
task_api.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import click
import requests
API_URL = 'http://127.0.0.1:5000/todos'
@click.group()
def cli():
"""Простое CLI-приложение для взаимодействия с API."""
pass
@cli.command()
def fetch_tasks():
"""Получить список задач из внешнего API."""
response = requests.get(API_URL)
if response.status_code == 200:
tasks = response.json()
for task in tasks:
status = "✔️" if task['completed'] else "❌"
click.echo(f"{task['id']}: {status} {task['title']}")
else:
click.echo(f"Ошибка при получении данных: {response.status_code}")
@cli.command()
@click.argument('title')
def create_task(title):
"""Создать новую задачу в API."""
# Сначала получим текущие задачи, чтобы определить следующий ID
response = requests.get(API_URL)
print(response)
if response.status_code == 200:
tasks = response.json()
new_id = max([task['id'] for task in tasks]) + 1 if tasks else 1
new_task = {"id": new_id, "title": title, "completed": False}
create_response = requests.post(API_URL, json=new_task)
if create_response.status_code == 201:
click.echo(f"Задача '{title}' создана.")
else:
click.echo(f"Ошибка при создании задачи: {create_response.status_code}")
else:
click.echo(f"Ошибка при получении данных: {response.status_code}")
if __name__ == "__main__":
cli()