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