Skip to content

Commit 1326c19

Browse files
Revert "fix(auth): corrige fluxo de autenticação"
This reverts commit af6284b.
1 parent af6284b commit 1326c19

4 files changed

Lines changed: 90 additions & 63 deletions

File tree

app/domains/auth/routers/auth_router.py

Lines changed: 12 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,9 @@
1-
from typing import Any
2-
31
from fastapi import APIRouter, Request, status
42
from fastapi.responses import JSONResponse
53

64
from app.core.dependencies import ResponseFactoryDep
75
from app.core.exceptions import AppHTTPException
86
from app.db.exceptions import ResourceAlreadyExistsError
9-
from app.schemas.response import GenericSuccessContent
107

118
from ..dependencies import AuthServiceDep, CurrentUserSessionDep, UserServiceDep
129
from ..exceptions import (
@@ -17,37 +14,22 @@
1714
UserPasswordNotConfiguredError,
1815
)
1916
from ..schemas import (
20-
LoginResponse,
2117
RefreshSessionRequest,
2218
RegisterUserRequest,
23-
UserCreatedResponse,
2419
UserLoginRequest,
2520
)
21+
from .swagger_utils import (
22+
get_me_swagger,
23+
login_swagger,
24+
logout_swagger,
25+
refresh_swagger,
26+
register_swagger,
27+
)
2628

2729
auth_router = APIRouter()
2830

2931

30-
register_responses: dict[int | str, dict[str, Any]] = {
31-
status.HTTP_201_CREATED: {
32-
"model": UserCreatedResponse,
33-
"description": "User created successfully.",
34-
}
35-
}
36-
37-
38-
login_responses: dict[str | int, dict[str, Any]] = {
39-
status.HTTP_200_OK: {"description": "Login successful"},
40-
status.HTTP_404_NOT_FOUND: {"description": "User not found"},
41-
status.HTTP_400_BAD_REQUEST: {"description": "Password not configured"},
42-
status.HTTP_401_UNAUTHORIZED: {"description": "Invalid password"},
43-
}
44-
45-
login_response_model = GenericSuccessContent[LoginResponse]
46-
47-
48-
@auth_router.post(
49-
"/login", tags=["Auth"], response_model=login_response_model, responses=login_responses
50-
)
32+
@auth_router.post("/login", tags=["Auth"], **login_swagger)
5133
async def login(
5234
dto: UserLoginRequest, service: AuthServiceDep, response: ResponseFactoryDep
5335
) -> JSONResponse:
@@ -64,7 +46,7 @@ async def login(
6446
) from e
6547

6648

67-
@auth_router.post("/register", tags=["Auth"], responses=register_responses)
49+
@auth_router.post("/register", tags=["Auth"], **register_swagger)
6850
async def register_common_user(
6951
dto: RegisterUserRequest, service: AuthServiceDep, response: ResponseFactoryDep
7052
) -> JSONResponse:
@@ -82,7 +64,7 @@ async def register_common_user(
8264
) from e
8365

8466

85-
@auth_router.post("/refresh", tags=["Auth"])
67+
@auth_router.post("/refresh", tags=["Auth"], **refresh_swagger)
8668
async def refresh(
8769
dto: RefreshSessionRequest,
8870
current_user: CurrentUserSessionDep,
@@ -111,7 +93,7 @@ async def refresh(
11193
) from e
11294

11395

114-
@auth_router.post("/logout", tags=["Auth"])
96+
@auth_router.post("/logout", tags=["Auth"], **logout_swagger)
11597
async def logout(
11698
user_session: CurrentUserSessionDep,
11799
response: ResponseFactoryDep,
@@ -125,7 +107,7 @@ async def logout(
125107
)
126108

127109

128-
@auth_router.get("/me", tags=["Auth"])
110+
@auth_router.get("/me", tags=["Auth"], **get_me_swagger)
129111
async def get_me(
130112
user_session: CurrentUserSessionDep, service: UserServiceDep, response: ResponseFactoryDep
131113
) -> JSONResponse:

app/domains/auth/routers/permission_router.py

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,23 @@
1212
ReplacePermissionDTO,
1313
UpdatePermissionDTO,
1414
)
15+
from .swagger_utils import (
16+
add_perm_to_roles_swagger,
17+
create_perm_swagger,
18+
delete_perm_swagger,
19+
get_perm_roles_swagger,
20+
get_perm_swagger,
21+
list_perms_swagger,
22+
replace_perm_swagger,
23+
update_perm_swagger,
24+
)
1525

1626
permission_router = APIRouter()
1727

1828

1929
@permission_router.post(
20-
"/", tags=["Permissions"], dependencies=[require_permission("permission:create")]
30+
"/", tags=["Permissions"], dependencies=[require_permission("permission:create")],
31+
**create_perm_swagger,
2132
)
2233
async def create_permission(
2334
dto: CreatePermissionDTO,
@@ -36,7 +47,8 @@ async def create_permission(
3647

3748

3849
@permission_router.get(
39-
"/", tags=["Permissions"], dependencies=[require_permission("permission:list")]
50+
"/", tags=["Permissions"], dependencies=[require_permission("permission:list")],
51+
**list_perms_swagger,
4052
)
4153
async def get_permissions(
4254
service: PermissionServiceDep,
@@ -47,7 +59,8 @@ async def get_permissions(
4759

4860

4961
@permission_router.get(
50-
"/{id}", tags=["Permissions"], dependencies=[require_permission("permission:read")]
62+
"/{id}", tags=["Permissions"], dependencies=[require_permission("permission:read")],
63+
**get_perm_swagger,
5164
)
5265
async def get_permission_by_id(
5366
id: int,
@@ -64,7 +77,8 @@ async def get_permission_by_id(
6477

6578

6679
@permission_router.put(
67-
"/{id}", tags=["Permissions"], dependencies=[require_permission("permission:replace")]
80+
"/{id}", tags=["Permissions"], dependencies=[require_permission("permission:replace")],
81+
**replace_perm_swagger,
6882
)
6983
async def replace_permission(
7084
id: int,
@@ -83,7 +97,8 @@ async def replace_permission(
8397

8498

8599
@permission_router.patch(
86-
"/{id}", tags=["Permissions"], dependencies=[require_permission("permission:update")]
100+
"/{id}", tags=["Permissions"], dependencies=[require_permission("permission:update")],
101+
**update_perm_swagger,
87102
)
88103
async def update_permission(
89104
id: int,
@@ -102,7 +117,8 @@ async def update_permission(
102117

103118

104119
@permission_router.delete(
105-
"/{id}", tags=["Permissions"], dependencies=[require_permission("permission:delete")]
120+
"/{id}", tags=["Permissions"], dependencies=[require_permission("permission:delete")],
121+
**delete_perm_swagger,
106122
)
107123
async def delete_permission(
108124
id: int,
@@ -126,6 +142,7 @@ async def delete_permission(
126142
"/{id}/roles",
127143
tags=["Permissions", "Roles"],
128144
dependencies=[require_permission("permission:read_roles")],
145+
**get_perm_roles_swagger,
129146
)
130147
async def get_permission_roles(
131148
id: int,
@@ -145,6 +162,7 @@ async def get_permission_roles(
145162
"/{id}/roles",
146163
tags=["Permissions", "Roles"],
147164
dependencies=[require_permission("permission:add_to_roles")],
165+
**add_perm_to_roles_swagger,
148166
)
149167
async def add_permission_to_roles(
150168
id: int,

app/domains/auth/routers/role_router.py

Lines changed: 30 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,31 @@
1-
from typing import Any
2-
31
from fastapi import APIRouter, status
42
from fastapi.responses import JSONResponse
53

64
from app.core.dependencies import ResponseFactoryDep
75
from app.core.exceptions import AppHTTPException
86
from app.db.exceptions import ResourceAlreadyExistsError
9-
from app.schemas.response import GenericSuccessContent
107

118
from ..dependencies import CurrentUserSessionDep, RoleServiceDep, require_permission
12-
from ..entities import Role as RoleEntity
139
from ..schemas import AddRolePermissionsDTO, CreateRoleDTO, ReplaceRoleDTO, UpdateRoleDTO
10+
from .swagger_utils import (
11+
add_role_perms_swagger,
12+
create_role_swagger,
13+
delete_role_swagger,
14+
get_role_perms_swagger,
15+
get_role_swagger,
16+
list_roles_swagger,
17+
replace_role_swagger,
18+
update_role_swagger,
19+
)
1420

1521
role_router = APIRouter()
1622

17-
post_role_responses: dict[int | str, dict[str, Any]] = {
18-
status.HTTP_201_CREATED: {"description": "Role created successfully"},
19-
status.HTTP_409_CONFLICT: {"description": "Role with this name already exists"},
20-
}
21-
2223

2324
@role_router.post(
2425
"/",
2526
tags=["Roles"],
26-
response_model=GenericSuccessContent[RoleEntity],
27-
responses=post_role_responses,
2827
dependencies=[require_permission("role:create")],
28+
**create_role_swagger,
2929
)
3030
async def create_role(
3131
dto: CreateRoleDTO,
@@ -49,11 +49,8 @@ async def create_role(
4949
@role_router.get(
5050
"/",
5151
tags=["Roles"],
52-
response_model=GenericSuccessContent[list[RoleEntity]],
53-
responses={
54-
status.HTTP_200_OK: {"description": "List of all roles"},
55-
},
5652
dependencies=[require_permission("role:list")],
53+
**list_roles_swagger,
5754
)
5855
async def get_roles(
5956
_auth: CurrentUserSessionDep, service: RoleServiceDep, response: ResponseFactoryDep
@@ -65,7 +62,10 @@ async def get_roles(
6562
)
6663

6764

68-
@role_router.get("/{id}", tags=["Roles"], dependencies=[require_permission("role:read")])
65+
@role_router.get(
66+
"/{id}", tags=["Roles"], dependencies=[require_permission("role:read")],
67+
**get_role_swagger,
68+
)
6969
async def get_role(
7070
id: int, _auth: CurrentUserSessionDep, service: RoleServiceDep, response: ResponseFactoryDep
7171
) -> JSONResponse:
@@ -80,7 +80,10 @@ async def get_role(
8080
)
8181

8282

83-
@role_router.put("/{id}", tags=["Roles"], dependencies=[require_permission("role:replace")])
83+
@role_router.put(
84+
"/{id}", tags=["Roles"], dependencies=[require_permission("role:replace")],
85+
**replace_role_swagger,
86+
)
8487
async def replace_role(
8588
id: int,
8689
dto: ReplaceRoleDTO,
@@ -99,7 +102,10 @@ async def replace_role(
99102
)
100103

101104

102-
@role_router.patch("/{id}", tags=["Roles"], dependencies=[require_permission("role:update")])
105+
@role_router.patch(
106+
"/{id}", tags=["Roles"], dependencies=[require_permission("role:update")],
107+
**update_role_swagger,
108+
)
103109
async def update_role(
104110
id: int,
105111
dto: UpdateRoleDTO,
@@ -118,7 +124,10 @@ async def update_role(
118124
)
119125

120126

121-
@role_router.delete("/{id}", tags=["Roles"], dependencies=[require_permission("role:delete")])
127+
@role_router.delete(
128+
"/{id}", tags=["Roles"], dependencies=[require_permission("role:delete")],
129+
**delete_role_swagger,
130+
)
122131
async def delete_role(
123132
id: int,
124133
_auth: CurrentUserSessionDep,
@@ -140,6 +149,7 @@ async def delete_role(
140149
"/{id}/permissions",
141150
tags=["Roles", "Permissions"],
142151
dependencies=[require_permission("role:read_permissions")],
152+
**get_role_perms_swagger,
143153
)
144154
async def get_role_permissions(
145155
id: int,
@@ -159,6 +169,7 @@ async def get_role_permissions(
159169
"/{id}/permissions",
160170
tags=["Roles", "Permissions"],
161171
dependencies=[require_permission("role:add_permissions")],
172+
**add_role_perms_swagger,
162173
)
163174
async def add_role_permissions(
164175
id: int,

app/domains/auth/routers/user_router.py

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,25 @@
77
from app.core.exceptions import AppHTTPException
88
from app.db.exceptions import ResourceAlreadyExistsError, ResourceNotFoundError
99
from app.domains.auth.dependencies import CurrentUserSessionDep, UserServiceDep, require_permission
10-
from app.schemas.response import GenericSuccessContent
1110

12-
from ..entities import User
1311
from ..schemas import AddUserRolesDTO, CreateUserDTO, ReplaceUserDTO, UpdateUserDTO
12+
from .swagger_utils import (
13+
add_user_roles_swagger,
14+
create_user_swagger,
15+
get_user_swagger,
16+
list_users_swagger,
17+
replace_user_swagger,
18+
update_user_swagger,
19+
)
1420

1521
user_router = APIRouter()
1622

1723

1824
@user_router.post(
1925
"/",
2026
tags=["Users"],
21-
response_model=GenericSuccessContent[User],
2227
dependencies=[require_permission("user:create")],
28+
**create_user_swagger,
2329
)
2430
async def create_user(
2531
dto: CreateUserDTO,
@@ -40,8 +46,8 @@ async def create_user(
4046
@user_router.get(
4147
"/",
4248
tags=["Users"],
43-
response_model=GenericSuccessContent[list[User]],
4449
dependencies=[require_permission("user:list")],
50+
**list_users_swagger,
4551
)
4652
async def get_users(
4753
_auth: CurrentUserSessionDep, service: UserServiceDep, response: ResponseFactoryDep
@@ -52,7 +58,10 @@ async def get_users(
5258
)
5359

5460

55-
@user_router.get("/{id}", tags=["Users"], dependencies=[require_permission("user:read")])
61+
@user_router.get(
62+
"/{id}", tags=["Users"], dependencies=[require_permission("user:read")],
63+
**get_user_swagger,
64+
)
5665
async def get_user(
5766
id: UUID, _auth: CurrentUserSessionDep, service: UserServiceDep, response: ResponseFactoryDep
5867
) -> JSONResponse:
@@ -64,7 +73,10 @@ async def get_user(
6473
return response.success(data=user.to_response_dict(), status_code=status.HTTP_200_OK)
6574

6675

67-
@user_router.put("/{id}", tags=["Users"], dependencies=[require_permission("user:replace")])
76+
@user_router.put(
77+
"/{id}", tags=["Users"], dependencies=[require_permission("user:replace")],
78+
**replace_user_swagger,
79+
)
6880
async def replace_user(
6981
id: UUID,
7082
dto: ReplaceUserDTO,
@@ -83,7 +95,10 @@ async def replace_user(
8395
)
8496

8597

86-
@user_router.patch("/{id}", tags=["Users"], dependencies=[require_permission("user:update")])
98+
@user_router.patch(
99+
"/{id}", tags=["Users"], dependencies=[require_permission("user:update")],
100+
**update_user_swagger,
101+
)
87102
async def update_user(
88103
id: UUID,
89104
dto: UpdateUserDTO,
@@ -103,7 +118,8 @@ async def update_user(
103118

104119

105120
@user_router.post(
106-
"/{id}/roles", tags=["users", "Roles"], dependencies=[require_permission("user:add_roles")]
121+
"/{id}/roles", tags=["users", "Roles"], dependencies=[require_permission("user:add_roles")],
122+
**add_user_roles_swagger,
107123
)
108124
async def add_user_roles(
109125
id: UUID,

0 commit comments

Comments
 (0)