26 lines
916 B
Python
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") |