Spaces:
Running
Running
from fastapi import FastAPI, HTTPException | |
from pydantic import BaseModel | |
from typing import List, Optional | |
app = FastAPI() | |
class Task(BaseModel): | |
id: int | |
title: str | |
description: Optional[str] = None | |
done: bool = False | |
tasks: List[Task] = [] | |
def root(): | |
return {"message": "Willkommen bei der ToDo-API! Siehe /tasks"} | |
def get_tasks(): | |
return tasks | |
def create_task(task: Task): | |
if any(t.id == task.id for t in tasks): | |
raise HTTPException(status_code=400, detail="ID existiert bereits.") | |
tasks.append(task) | |
return task | |
def get_task(task_id: int): | |
for task in tasks: | |
if task.id == task_id: | |
return task | |
raise HTTPException(status_code=404, detail="Aufgabe nicht gefunden.") | |
def mark_task_done(task_id: int): | |
for task in tasks: | |
if task.id == task_id: | |
task.done = True | |
return task | |
raise HTTPException(status_code=404, detail="Aufgabe nicht gefunden.") | |
def delete_task(task_id: int): | |
for i, task in enumerate(tasks): | |
if task.id == task_id: | |
del tasks[i] | |
return {"detail": "Aufgabe gelöscht."} | |
raise HTTPException(status_code=404, detail="Aufgabe nicht gefunden.") | |