♻️ Remove type ignores and add response_model (#572)

This commit is contained in:
Alejandra
2023-12-27 13:37:05 -05:00
committed by GitHub
parent 73798ba60c
commit 047e6884be
3 changed files with 40 additions and 37 deletions

View File

@@ -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

View File

@@ -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
"""

View File

@@ -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