Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 7 additions & 3 deletions crud.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from sqlalchemy.orm import Session
from typing import Optional
import models, schemas


Expand Down Expand Up @@ -29,8 +30,11 @@ def create_task(db:Session, task: schemas.TaskCreate):
def get_task(db:Session, task_id: int):
return db.query(models.Task).filter(models.Task.id == task_id).first()

def get_tasks(db: Session, skip: int = 0, limit: int = 10):
return db.query(models.Task).offset(skip).limit(limit).all()
def get_tasks(db: Session, skip: int = 0, limit: int = 10, completed: Optional[bool] = None):
query = db.query(models.Task)
if completed is not None:
query = query.filter(models.Task.completed == completed)
return query.offset(skip).limit(limit).all()

def update_task(db:Session, task_id: int, data: schemas.TaskUpdate):
db_task = db.query(models.Task).filter(models.Task.id == task_id).first()
Expand Down Expand Up @@ -73,4 +77,4 @@ def delete_user(db: Session, user_id: int):
return None
db.delete(db_user)
db.commit()
return db_user
return db_user
8 changes: 4 additions & 4 deletions routers/tasks.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from fastapi import APIRouter, Depends, HTTPException
from sqlalchemy.orm import Session
from typing import List
from typing import List, Optional
import crud, schemas
from database import get_db

Expand All @@ -12,8 +12,8 @@ def create_task(task: schemas.TaskCreate, db: Session = Depends(get_db)):


@router.get("/", response_model=List[schemas.TaskResponse])
def get_tasks(skip: int = 0, limit: int = 10, db: Session = Depends(get_db)):
return crud.get_tasks(db, skip=skip, limit=limit)
def get_tasks(skip: int = 0, limit: int = 10, completed: Optional[bool] = None, db: Session = Depends(get_db)):
return crud.get_tasks(db, skip=skip, limit=limit, completed=completed)


@router.get("/{task_id}", response_model=schemas.TaskResponse)
Expand All @@ -37,4 +37,4 @@ def delete_task(task_id: int, db: Session = Depends(get_db)):
task = crud.delete_task(db, task_id)
if not task:
raise HTTPException(status_code=404, detail="Task not found")
return {"message": "Task deleted successfully"}
return {"message": "Task deleted successfully"}