tasks_manager/backend/routers/task.py

26 lines
916 B
Python

from fastapi import APIRouter, Depends
from sqlalchemy.orm import Session
from .. import crud, schemas
from ..database import SessionLocal
router = APIRouter()
@router.post("/tasks/", response_model=schemas.TaskCreate)
def create_task(task: schemas.TaskCreate, db: Session = Depends(SessionLocal)):
return crud.create_task(db=db, task=task)
@router.get("/tasks/{task_id}", response_model=schemas.TaskCreate)
def read_task(task_id: int, db: Session = Depends(SessionLocal)):
task = crud.get_task(db=db, task_id=task_id)
if task is None:
raise HTTPException(status_code=404, detail="Task not found")
return task
@router.post("/tasks/{task_id}/like")
def like_task(task_id: int, db: Session = Depends(get_db)):
task = crud.get_task(db, task_id)
if task:
task.likes += 1
db.commit()
return task
raise HTTPException(status_code=404, detail="Task not found")