From 7d5e8de8923be7ec4779d04c81462030ec25b8e8 Mon Sep 17 00:00:00 2001 From: msramalho <19508417+msramalho@users.noreply.github.com> Date: Sun, 26 Feb 2023 21:24:54 +0100 Subject: [PATCH] delete op --- src/db/crud.py | 11 +++++++++-- src/main.py | 10 ++++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/src/db/crud.py b/src/db/crud.py index cf7c7d4..8ff473a 100644 --- a/src/db/crud.py +++ b/src/db/crud.py @@ -1,12 +1,11 @@ from sqlalchemy.orm import Session, load_only - +from loguru import logger from . import models, schemas def get_task(db: Session, task_id: str): return base_query(db).filter(models.Task.id == task_id).first() - def get_tasks(db: Session, skip: int = 0, limit: int = 100): return base_query(db).offset(skip).limit(limit).all() @@ -26,3 +25,11 @@ def create_task(db: Session, task: schemas.TaskCreate): db.commit() db.refresh(db_task) return db_task + + +def delete_task(db: Session, task_id: str, email:str)->bool: + db_task = db.query(models.Task).filter(models.Task.id == task_id, models.Task.author==email).first() + if db_task: + db.delete(db_task) + db.commit() + return db_task is not None \ No newline at end of file diff --git a/src/main.py b/src/main.py index c4499f3..ef56c35 100644 --- a/src/main.py +++ b/src/main.py @@ -89,6 +89,16 @@ def get_status(task_id, access_token:str): }) +@app.delete("/tasks/{task_id}") +def get_status(task_id, access_token:str, db: Session = Depends(get_db)): + email = validate_user_get_email(access_token) + logger.info(f"deleting task {task_id} request by {email}") + return JSONResponse({ + "id": task_id, + "deleted": crud.delete_task(db, task_id, email) + }) + + @app.get("/") def home(): return JSONResponse({"status": "good", "version": VERSION})