♻️ Remove type ignores and add response_model
(#572)
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
from typing import Annotated
|
||||
from typing import Annotated, Any
|
||||
|
||||
from fastapi import APIRouter, Depends, HTTPException
|
||||
from sqlmodel import Session, select
|
||||
@@ -9,17 +9,17 @@ from app.models import Item, ItemCreate, ItemOut, ItemUpdate
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
@router.get("/")
|
||||
@router.get("/", response_model=list[ItemOut])
|
||||
def read_items(
|
||||
session: SessionDep, current_user: CurrentUser, skip: int = 0, limit: int = 100
|
||||
) -> list[ItemOut]:
|
||||
) -> Any:
|
||||
"""
|
||||
Retrieve items.
|
||||
"""
|
||||
|
||||
if current_user.is_superuser:
|
||||
statement = select(Item).offset(skip).limit(limit)
|
||||
return session.exec(statement).all() # type: ignore
|
||||
return session.exec(statement).all()
|
||||
else:
|
||||
statement = (
|
||||
select(Item)
|
||||
@@ -27,11 +27,11 @@ def read_items(
|
||||
.offset(skip)
|
||||
.limit(limit)
|
||||
)
|
||||
return session.exec(statement).all() # type: ignore
|
||||
return session.exec(statement).all()
|
||||
|
||||
|
||||
@router.get("/{id}")
|
||||
def read_item(session: SessionDep, current_user: CurrentUser, id: int) -> ItemOut:
|
||||
@router.get("/{id}", response_model=ItemOut)
|
||||
def read_item(session: SessionDep, current_user: CurrentUser, id: int) -> Any:
|
||||
"""
|
||||
Get item by ID.
|
||||
"""
|
||||
@@ -40,13 +40,13 @@ def read_item(session: SessionDep, current_user: CurrentUser, id: int) -> ItemOu
|
||||
raise HTTPException(status_code=404, detail="Item not found")
|
||||
if not current_user.is_superuser and (item.owner_id != current_user.id):
|
||||
raise HTTPException(status_code=400, detail="Not enough permissions")
|
||||
return item # type: ignore
|
||||
return item
|
||||
|
||||
|
||||
@router.post("/")
|
||||
@router.post("/", response_model=ItemOut)
|
||||
def create_item(
|
||||
*, session: SessionDep, current_user: CurrentUser, item_in: ItemCreate
|
||||
) -> ItemOut:
|
||||
) -> Any:
|
||||
"""
|
||||
Create new item.
|
||||
"""
|
||||
@@ -54,13 +54,13 @@ def create_item(
|
||||
session.add(item)
|
||||
session.commit()
|
||||
session.refresh(item)
|
||||
return item # type: ignore
|
||||
return item
|
||||
|
||||
|
||||
@router.put("/{id}")
|
||||
@router.put("/{id}", response_model=ItemOut)
|
||||
def update_item(
|
||||
*, session: SessionDep, current_user: CurrentUser, id: int, item_in: ItemUpdate
|
||||
) -> ItemOut:
|
||||
) -> Any:
|
||||
"""
|
||||
Update an item.
|
||||
"""
|
||||
@@ -75,11 +75,11 @@ def update_item(
|
||||
session.add(item)
|
||||
session.commit()
|
||||
session.refresh(item)
|
||||
return item # type: ignore
|
||||
return item
|
||||
|
||||
|
||||
@router.delete("/{id}")
|
||||
def delete_item(session: SessionDep, current_user: CurrentUser, id: int) -> ItemOut:
|
||||
@router.delete("/{id}", response_model=ItemOut)
|
||||
def delete_item(session: SessionDep, current_user: CurrentUser, id: int) -> Any:
|
||||
"""
|
||||
Delete an item.
|
||||
"""
|
||||
@@ -90,4 +90,4 @@ def delete_item(session: SessionDep, current_user: CurrentUser, id: int) -> Item
|
||||
raise HTTPException(status_code=400, detail="Not enough permissions")
|
||||
session.delete(item)
|
||||
session.commit()
|
||||
return item # type: ignore
|
||||
return item
|
||||
|
@@ -69,10 +69,7 @@ def recover_password(email: str, session: SessionDep) -> Message:
|
||||
|
||||
|
||||
@router.post("/reset-password/")
|
||||
def reset_password(
|
||||
session: SessionDep,
|
||||
body: NewPassword,
|
||||
) -> Message:
|
||||
def reset_password(session: SessionDep, body: NewPassword) -> Message:
|
||||
"""
|
||||
Reset password
|
||||
"""
|
||||
|
@@ -18,18 +18,24 @@ from app.utils import send_new_account_email
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
@router.get("/", dependencies=[Depends(get_current_active_superuser)])
|
||||
def read_users(session: SessionDep, skip: int = 0, limit: int = 100) -> List[UserOut]:
|
||||
@router.get(
|
||||
"/",
|
||||
dependencies=[Depends(get_current_active_superuser)],
|
||||
response_model=List[UserOut],
|
||||
)
|
||||
def read_users(session: SessionDep, skip: int = 0, limit: int = 100) -> Any:
|
||||
"""
|
||||
Retrieve users.
|
||||
"""
|
||||
statement = select(User).offset(skip).limit(limit)
|
||||
users = session.exec(statement).all()
|
||||
return users # type: ignore
|
||||
return users
|
||||
|
||||
|
||||
@router.post("/", dependencies=[Depends(get_current_active_superuser)])
|
||||
def create_user(*, session: SessionDep, user_in: UserCreate) -> UserOut:
|
||||
@router.post(
|
||||
"/", dependencies=[Depends(get_current_active_superuser)], response_model=UserOut
|
||||
)
|
||||
def create_user(*, session: SessionDep, user_in: UserCreate) -> Any:
|
||||
"""
|
||||
Create new user.
|
||||
"""
|
||||
@@ -45,7 +51,7 @@ def create_user(*, session: SessionDep, user_in: UserCreate) -> UserOut:
|
||||
send_new_account_email(
|
||||
email_to=user_in.email, username=user_in.email, password=user_in.password
|
||||
)
|
||||
return user # type: ignore
|
||||
return user
|
||||
|
||||
|
||||
# TODO: Refactor when SQLModel has update
|
||||
@@ -73,16 +79,16 @@ def create_user(*, session: SessionDep, user_in: UserCreate) -> UserOut:
|
||||
# return user
|
||||
|
||||
|
||||
@router.get("/me")
|
||||
def read_user_me(session: SessionDep, current_user: CurrentUser) -> UserOut:
|
||||
@router.get("/me", response_model=UserOut)
|
||||
def read_user_me(session: SessionDep, current_user: CurrentUser) -> Any:
|
||||
"""
|
||||
Get current user.
|
||||
"""
|
||||
return current_user # type: ignore
|
||||
return current_user
|
||||
|
||||
|
||||
@router.post("/open")
|
||||
def create_user_open(session: SessionDep, user_in: UserCreateOpen) -> UserOut:
|
||||
@router.post("/open", response_model=UserOut)
|
||||
def create_user_open(session: SessionDep, user_in: UserCreateOpen) -> Any:
|
||||
"""
|
||||
Create new user without the need to be logged in.
|
||||
"""
|
||||
@@ -99,26 +105,26 @@ def create_user_open(session: SessionDep, user_in: UserCreateOpen) -> UserOut:
|
||||
)
|
||||
user_create = UserCreate.from_orm(user_in)
|
||||
user = crud.create_user(session=session, user_create=user_create)
|
||||
return user # type: ignore
|
||||
return user
|
||||
|
||||
|
||||
@router.get("/{user_id}")
|
||||
@router.get("/{user_id}", response_model=UserOut)
|
||||
def read_user_by_id(
|
||||
user_id: int, session: SessionDep, current_user: CurrentUser
|
||||
) -> UserOut:
|
||||
) -> Any:
|
||||
"""
|
||||
Get a specific user by id.
|
||||
"""
|
||||
user = session.get(User, user_id)
|
||||
if user == current_user:
|
||||
return user # type: ignore
|
||||
return user
|
||||
if not current_user.is_superuser:
|
||||
raise HTTPException(
|
||||
# TODO: Review status code
|
||||
status_code=400,
|
||||
detail="The user doesn't have enough privileges",
|
||||
)
|
||||
return user # type: ignore
|
||||
return user
|
||||
|
||||
|
||||
# TODO: Refactor when SQLModel has update
|
||||
|
Reference in New Issue
Block a user