Add delete_user; refactor delete_item (#594)

This commit is contained in:
Alejandra
2024-02-13 09:25:58 -05:00
committed by GitHub
parent b4a1da918d
commit a88f637ed8
5 changed files with 58 additions and 7 deletions

View File

@@ -4,7 +4,7 @@ from fastapi import APIRouter, HTTPException
from sqlmodel import select
from app.api.deps import CurrentUser, SessionDep
from app.models import Item, ItemCreate, ItemOut, ItemUpdate
from app.models import Item, ItemCreate, ItemOut, ItemUpdate, Message
router = APIRouter()
@@ -78,8 +78,8 @@ def update_item(
return item
@router.delete("/{id}", response_model=ItemOut)
def delete_item(session: SessionDep, current_user: CurrentUser, id: int) -> Any:
@router.delete("/{id}")
def delete_item(session: SessionDep, current_user: CurrentUser, id: int) -> Message:
"""
Delete an item.
"""
@@ -90,4 +90,4 @@ def delete_item(session: SessionDep, current_user: CurrentUser, id: int) -> Any:
raise HTTPException(status_code=400, detail="Not enough permissions")
session.delete(item)
session.commit()
return item
return Message(message="Item deleted successfully")

View File

@@ -11,6 +11,7 @@ from app.api.deps import (
)
from app.core.config import settings
from app.models import (
Message,
User,
UserCreate,
UserCreateOpen,
@@ -151,3 +152,24 @@ def update_user(
# )
# user = crud.user.update(session, db_obj=user, obj_in=user_in)
# return user
@router.delete("/{user_id}")
def delete_user(
session: SessionDep, current_user: CurrentUser, user_id: int
) -> Message:
"""
Delete a user.
"""
user = session.get(User, user_id)
if not user:
raise HTTPException(status_code=404, detail="User not found")
if not current_user.is_superuser:
raise HTTPException(status_code=400, detail="Not enough permissions")
if user == current_user:
raise HTTPException(
status_code=400, detail="Users are not allowed to delete themselves"
)
session.delete(user)
session.commit()
return Message(message="User deleted successfully")