11from fastapi import APIRouter , Depends , Request , Response
2- from sqlalchemy .ext .asyncio import AsyncSession
32
43from app .api .v1 .deps import require_login
5- from app .core .exceptions import AUTH_001 , AppException
6- from app .db .session import get_db
7- from app .schemas .auth import (
4+ from app .auth .dependencies import get_auth_service
5+ from app .auth .schemas import (
86 AccessTokenResp ,
97 AuthResp ,
108 ChangePasswordReq ,
1715 ResetPasswordReq ,
1816 UserInfo ,
1917)
20- from app .services import auth as auth_service
18+ from app .auth .service import AuthService
19+ from app .core .exceptions import AUTH_001 , AppException
2120
2221router = APIRouter (prefix = "/auth" , tags = ["Auth" ])
2322
2423
2524@router .post ("/email" , response_model = None )
2625async def check_email (
2726 body : EmailCheckReq ,
28- db : AsyncSession = Depends (get_db ),
27+ service : AuthService = Depends (get_auth_service ),
2928) -> None :
30- await auth_service .check_email_duplicate (db , body .email )
29+ await service .check_email_duplicate (body .email )
3130
3231
3332@router .post ("/email/verify" , response_model = None )
3433async def verify_email (
3534 body : EmailVerifyReq ,
36- db : AsyncSession = Depends (get_db ),
35+ service : AuthService = Depends (get_auth_service ),
3736) -> None :
38- await auth_service .send_verification_code (db , body .email )
37+ await service .send_verification_code (body .email )
3938
4039
4140@router .post ("/email/validate" , response_model = EmailValidateResp )
4241async def validate_email (
4342 body : EmailValidateReq ,
44- db : AsyncSession = Depends (get_db ),
43+ service : AuthService = Depends (get_auth_service ),
4544) -> EmailValidateResp :
46- token = await auth_service .validate_verification_code (db , body .email , body .code )
45+ token = await service .validate_verification_code (body .email , body .code )
4746 return EmailValidateResp (verificationToken = token )
4847
4948
5049@router .post ("/user" , response_model = AuthResp )
5150async def register (
5251 body : RegisterReq ,
5352 response : Response ,
54- db : AsyncSession = Depends (get_db ),
53+ service : AuthService = Depends (get_auth_service ),
5554) -> AuthResp :
56- user , access_token , refresh_token = await auth_service .register (db , body )
55+ user , access_token , refresh_token = await service .register (body )
5756 response .set_cookie (
5857 key = "refresh_token" ,
5958 value = refresh_token ,
@@ -67,21 +66,24 @@ async def register(
6766
6867
6968@router .get ("/token" , response_model = AccessTokenResp )
70- async def refresh_token (request : Request ) -> AccessTokenResp :
69+ async def refresh_token (
70+ request : Request ,
71+ service : AuthService = Depends (get_auth_service ),
72+ ) -> AccessTokenResp :
7173 token = request .cookies .get ("refresh_token" )
7274 if not token :
7375 raise AppException (AUTH_001 )
74- access_token = auth_service .refresh_access_token (token )
76+ access_token = service .refresh_access_token (token )
7577 return AccessTokenResp (accessToken = access_token )
7678
7779
7880@router .post ("/user/session" , response_model = AuthResp )
7981async def login (
8082 body : LoginReq ,
8183 response : Response ,
82- db : AsyncSession = Depends (get_db ),
84+ service : AuthService = Depends (get_auth_service ),
8385) -> AuthResp :
84- user , access_token , refresh_token = await auth_service .login (db , body )
86+ user , access_token , refresh_token = await service .login (body )
8587 response .set_cookie (
8688 key = "refresh_token" ,
8789 value = refresh_token ,
@@ -105,15 +107,15 @@ async def logout(
105107@router .patch ("/password" , response_model = None )
106108async def change_password (
107109 body : ChangePasswordReq ,
108- db : AsyncSession = Depends (get_db ),
110+ service : AuthService = Depends (get_auth_service ),
109111 user_id : str = Depends (require_login ),
110112) -> None :
111- await auth_service .change_password (db , user_id , body .oldPassword , body .newPassword )
113+ await service .change_password (user_id , body .oldPassword , body .newPassword )
112114
113115
114116@router .post ("/password" , response_model = None )
115117async def reset_password (
116118 body : ResetPasswordReq ,
117- db : AsyncSession = Depends (get_db ),
119+ service : AuthService = Depends (get_auth_service ),
118120) -> None :
119- await auth_service .reset_password (db , body )
121+ await service .reset_password (body )
0 commit comments