✨ Add delete_user; refactor delete_item (#594)
This commit is contained in:
@@ -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")
|
||||
|
@@ -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")
|
||||
|
Reference in New Issue
Block a user