init app
This commit is contained in:
BIN
routers/__pycache__/reminders.cpython-313.pyc
Normal file
BIN
routers/__pycache__/reminders.cpython-313.pyc
Normal file
Binary file not shown.
BIN
routers/__pycache__/tasks.cpython-313.pyc
Normal file
BIN
routers/__pycache__/tasks.cpython-313.pyc
Normal file
Binary file not shown.
53
routers/reminders.py
Normal file
53
routers/reminders.py
Normal file
@@ -0,0 +1,53 @@
|
||||
from fastapi import APIRouter, Depends, HTTPException, Query
|
||||
from sqlalchemy.orm import Session
|
||||
from typing import List
|
||||
|
||||
import crud
|
||||
import models
|
||||
import schemas
|
||||
from database import get_db
|
||||
|
||||
router = APIRouter(
|
||||
prefix="/reminders",
|
||||
tags=["reminders"]
|
||||
)
|
||||
|
||||
@router.post("/", response_model=schemas.Reminder)
|
||||
def create_reminder(reminder: schemas.ReminderCreate, db: Session = Depends(get_db)):
|
||||
# Verify task exists
|
||||
db_task = crud.get_task(db, task_id=reminder.task_id)
|
||||
if not db_task:
|
||||
raise HTTPException(status_code=404, detail="Task not found")
|
||||
|
||||
return crud.create_reminder(db=db, reminder=reminder)
|
||||
|
||||
@router.get("/", response_model=List[schemas.Reminder])
|
||||
def read_reminders(
|
||||
skip: int = 0,
|
||||
limit: int = 100,
|
||||
task_id: int = Query(None, description="Filter by Task ID"),
|
||||
db: Session = Depends(get_db)
|
||||
):
|
||||
reminders = crud.get_reminders(db, skip=skip, limit=limit, task_id=task_id)
|
||||
return reminders
|
||||
|
||||
@router.get("/{reminder_id}", response_model=schemas.Reminder)
|
||||
def read_reminder(reminder_id: int, db: Session = Depends(get_db)):
|
||||
db_reminder = crud.get_reminder(db, reminder_id=reminder_id)
|
||||
if db_reminder is None:
|
||||
raise HTTPException(status_code=404, detail="Reminder not found")
|
||||
return db_reminder
|
||||
|
||||
@router.put("/{reminder_id}", response_model=schemas.Reminder)
|
||||
def update_reminder_endpoint(reminder_id: int, reminder: schemas.ReminderUpdate, db: Session = Depends(get_db)):
|
||||
db_reminder = crud.update_reminder(db, reminder_id=reminder_id, reminder_update=reminder)
|
||||
if db_reminder is None:
|
||||
raise HTTPException(status_code=404, detail="Reminder not found")
|
||||
return db_reminder
|
||||
|
||||
@router.delete("/{reminder_id}")
|
||||
def delete_reminder_endpoint(reminder_id: int, db: Session = Depends(get_db)):
|
||||
success = crud.delete_reminder(db, reminder_id=reminder_id)
|
||||
if not success:
|
||||
raise HTTPException(status_code=404, detail="Reminder not found")
|
||||
return {"message": "Reminder successfully deleted"}
|
||||
49
routers/tasks.py
Normal file
49
routers/tasks.py
Normal file
@@ -0,0 +1,49 @@
|
||||
from fastapi import APIRouter, Depends, HTTPException, Query
|
||||
from sqlalchemy.orm import Session
|
||||
from typing import List
|
||||
|
||||
import crud
|
||||
import models
|
||||
import schemas
|
||||
from database import get_db
|
||||
|
||||
router = APIRouter(
|
||||
prefix="/tasks",
|
||||
tags=["tasks"]
|
||||
)
|
||||
|
||||
@router.post("/", response_model=schemas.Task)
|
||||
def create_task(task: schemas.TaskCreate, db: Session = Depends(get_db)):
|
||||
return crud.create_task(db=db, task=task)
|
||||
|
||||
@router.get("/", response_model=List[schemas.Task])
|
||||
def read_tasks(
|
||||
skip: int = 0,
|
||||
limit: int = 100,
|
||||
telegram_user_id: str = Query(None, description="Filter by Telegram User ID"),
|
||||
status: models.TaskStatus = Query(None, description="Filter by task status"),
|
||||
db: Session = Depends(get_db)
|
||||
):
|
||||
tasks = crud.get_tasks(db, skip=skip, limit=limit, telegram_user_id=telegram_user_id, status=status)
|
||||
return tasks
|
||||
|
||||
@router.get("/{task_id}", response_model=schemas.Task)
|
||||
def read_task(task_id: int, telegram_user_id: str = Query(None, description="Telegram User ID for authorization"), db: Session = Depends(get_db)):
|
||||
db_task = crud.get_task(db, task_id=task_id, telegram_user_id=telegram_user_id)
|
||||
if db_task is None:
|
||||
raise HTTPException(status_code=404, detail="Task not found")
|
||||
return db_task
|
||||
|
||||
@router.put("/{task_id}", response_model=schemas.Task)
|
||||
def update_task_endpoint(task_id: int, task: schemas.TaskUpdate, telegram_user_id: str = Query(None, description="Telegram User ID for authorization"), db: Session = Depends(get_db)):
|
||||
db_task = crud.update_task(db, task_id=task_id, task_update=task, telegram_user_id=telegram_user_id)
|
||||
if db_task is None:
|
||||
raise HTTPException(status_code=404, detail="Task not found or you don't have access")
|
||||
return db_task
|
||||
|
||||
@router.delete("/{task_id}")
|
||||
def delete_task_endpoint(task_id: int, telegram_user_id: str = Query(None, description="Telegram User ID for authorization"), db: Session = Depends(get_db)):
|
||||
success = crud.delete_task(db, task_id=task_id, telegram_user_id=telegram_user_id)
|
||||
if not success:
|
||||
raise HTTPException(status_code=404, detail="Task not found or you don't have access")
|
||||
return {"message": "Task successfully deleted"}
|
||||
Reference in New Issue
Block a user