Skip to content

Commit 5465e62

Browse files
authored
♻️ Remove type ignores and add response_model (fastapi#572)
1 parent 0bfb7f8 commit 5465e62

File tree

3 files changed

+40
-37
lines changed

3 files changed

+40
-37
lines changed
Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from typing import Annotated
1+
from typing import Annotated, Any
22

33
from fastapi import APIRouter, Depends, HTTPException
44
from sqlmodel import Session, select
@@ -9,29 +9,29 @@
99
router = APIRouter()
1010

1111

12-
@router.get("/")
12+
@router.get("/", response_model=list[ItemOut])
1313
def read_items(
1414
session: SessionDep, current_user: CurrentUser, skip: int = 0, limit: int = 100
15-
) -> list[ItemOut]:
15+
) -> Any:
1616
"""
1717
Retrieve items.
1818
"""
1919

2020
if current_user.is_superuser:
2121
statement = select(Item).offset(skip).limit(limit)
22-
return session.exec(statement).all() # type: ignore
22+
return session.exec(statement).all()
2323
else:
2424
statement = (
2525
select(Item)
2626
.where(Item.owner_id == current_user.id)
2727
.offset(skip)
2828
.limit(limit)
2929
)
30-
return session.exec(statement).all() # type: ignore
30+
return session.exec(statement).all()
3131

3232

33-
@router.get("/{id}")
34-
def read_item(session: SessionDep, current_user: CurrentUser, id: int) -> ItemOut:
33+
@router.get("/{id}", response_model=ItemOut)
34+
def read_item(session: SessionDep, current_user: CurrentUser, id: int) -> Any:
3535
"""
3636
Get item by ID.
3737
"""
@@ -40,27 +40,27 @@ def read_item(session: SessionDep, current_user: CurrentUser, id: int) -> ItemOu
4040
raise HTTPException(status_code=404, detail="Item not found")
4141
if not current_user.is_superuser and (item.owner_id != current_user.id):
4242
raise HTTPException(status_code=400, detail="Not enough permissions")
43-
return item # type: ignore
43+
return item
4444

4545

46-
@router.post("/")
46+
@router.post("/", response_model=ItemOut)
4747
def create_item(
4848
*, session: SessionDep, current_user: CurrentUser, item_in: ItemCreate
49-
) -> ItemOut:
49+
) -> Any:
5050
"""
5151
Create new item.
5252
"""
5353
item = Item.from_orm(item_in, update={"owner_id": current_user.id})
5454
session.add(item)
5555
session.commit()
5656
session.refresh(item)
57-
return item # type: ignore
57+
return item
5858

5959

60-
@router.put("/{id}")
60+
@router.put("/{id}", response_model=ItemOut)
6161
def update_item(
6262
*, session: SessionDep, current_user: CurrentUser, id: int, item_in: ItemUpdate
63-
) -> ItemOut:
63+
) -> Any:
6464
"""
6565
Update an item.
6666
"""
@@ -75,11 +75,11 @@ def update_item(
7575
session.add(item)
7676
session.commit()
7777
session.refresh(item)
78-
return item # type: ignore
78+
return item
7979

8080

81-
@router.delete("/{id}")
82-
def delete_item(session: SessionDep, current_user: CurrentUser, id: int) -> ItemOut:
81+
@router.delete("/{id}", response_model=ItemOut)
82+
def delete_item(session: SessionDep, current_user: CurrentUser, id: int) -> Any:
8383
"""
8484
Delete an item.
8585
"""
@@ -90,4 +90,4 @@ def delete_item(session: SessionDep, current_user: CurrentUser, id: int) -> Item
9090
raise HTTPException(status_code=400, detail="Not enough permissions")
9191
session.delete(item)
9292
session.commit()
93-
return item # type: ignore
93+
return item

src/backend/app/app/api/api_v1/endpoints/login.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -69,10 +69,7 @@ def recover_password(email: str, session: SessionDep) -> Message:
6969

7070

7171
@router.post("/reset-password/")
72-
def reset_password(
73-
session: SessionDep,
74-
body: NewPassword,
75-
) -> Message:
72+
def reset_password(session: SessionDep, body: NewPassword) -> Message:
7673
"""
7774
Reset password
7875
"""

src/backend/app/app/api/api_v1/endpoints/users.py

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -18,18 +18,24 @@
1818
router = APIRouter()
1919

2020

21-
@router.get("/", dependencies=[Depends(get_current_active_superuser)])
22-
def read_users(session: SessionDep, skip: int = 0, limit: int = 100) -> List[UserOut]:
21+
@router.get(
22+
"/",
23+
dependencies=[Depends(get_current_active_superuser)],
24+
response_model=List[UserOut],
25+
)
26+
def read_users(session: SessionDep, skip: int = 0, limit: int = 100) -> Any:
2327
"""
2428
Retrieve users.
2529
"""
2630
statement = select(User).offset(skip).limit(limit)
2731
users = session.exec(statement).all()
28-
return users # type: ignore
32+
return users
2933

3034

31-
@router.post("/", dependencies=[Depends(get_current_active_superuser)])
32-
def create_user(*, session: SessionDep, user_in: UserCreate) -> UserOut:
35+
@router.post(
36+
"/", dependencies=[Depends(get_current_active_superuser)], response_model=UserOut
37+
)
38+
def create_user(*, session: SessionDep, user_in: UserCreate) -> Any:
3339
"""
3440
Create new user.
3541
"""
@@ -45,7 +51,7 @@ def create_user(*, session: SessionDep, user_in: UserCreate) -> UserOut:
4551
send_new_account_email(
4652
email_to=user_in.email, username=user_in.email, password=user_in.password
4753
)
48-
return user # type: ignore
54+
return user
4955

5056

5157
# TODO: Refactor when SQLModel has update
@@ -73,16 +79,16 @@ def create_user(*, session: SessionDep, user_in: UserCreate) -> UserOut:
7379
# return user
7480

7581

76-
@router.get("/me")
77-
def read_user_me(session: SessionDep, current_user: CurrentUser) -> UserOut:
82+
@router.get("/me", response_model=UserOut)
83+
def read_user_me(session: SessionDep, current_user: CurrentUser) -> Any:
7884
"""
7985
Get current user.
8086
"""
81-
return current_user # type: ignore
87+
return current_user
8288

8389

84-
@router.post("/open")
85-
def create_user_open(session: SessionDep, user_in: UserCreateOpen) -> UserOut:
90+
@router.post("/open", response_model=UserOut)
91+
def create_user_open(session: SessionDep, user_in: UserCreateOpen) -> Any:
8692
"""
8793
Create new user without the need to be logged in.
8894
"""
@@ -99,26 +105,26 @@ def create_user_open(session: SessionDep, user_in: UserCreateOpen) -> UserOut:
99105
)
100106
user_create = UserCreate.from_orm(user_in)
101107
user = crud.create_user(session=session, user_create=user_create)
102-
return user # type: ignore
108+
return user
103109

104110

105-
@router.get("/{user_id}")
111+
@router.get("/{user_id}", response_model=UserOut)
106112
def read_user_by_id(
107113
user_id: int, session: SessionDep, current_user: CurrentUser
108-
) -> UserOut:
114+
) -> Any:
109115
"""
110116
Get a specific user by id.
111117
"""
112118
user = session.get(User, user_id)
113119
if user == current_user:
114-
return user # type: ignore
120+
return user
115121
if not current_user.is_superuser:
116122
raise HTTPException(
117123
# TODO: Review status code
118124
status_code=400,
119125
detail="The user doesn't have enough privileges",
120126
)
121-
return user # type: ignore
127+
return user
122128

123129

124130
# TODO: Refactor when SQLModel has update

0 commit comments

Comments
 (0)