File tree Expand file tree Collapse file tree 5 files changed +22
-43
lines changed
Expand file tree Collapse file tree 5 files changed +22
-43
lines changed Original file line number Diff line number Diff line change 44import firebase_admin .auth
55from ..services .implementations .user_service import UserService
66from ..utilities .db_utils import get_db
7- from ..schemas . user import UserRole
7+ from ..utilities . service_utils import get_user_service
88from functools import wraps
99from typing import Set
1010
@@ -56,15 +56,17 @@ async def get_current_user(
5656def require_roles (allowed_roles : Set [str ]):
5757 def decorator (func ):
5858 @wraps (func )
59- async def wrapper (* args , current_user = Depends (get_current_user ), ** kwargs ):
59+ async def wrapper (
60+ * args ,
61+ current_user = Depends (get_current_user ),
62+ user_service : UserService = Depends (get_user_service ),
63+ ** kwargs
64+ ):
6065 try :
61- # Get user role using the token from current_user
62- user_service = UserService (kwargs .get ('db' ))
6366 user_role = user_service .get_user_role_by_auth_id (
6467 firebase_admin .auth .verify_id_token (current_user ["token" ])["uid" ]
6568 )
6669
67- # Check if user's role is allowed
6870 if user_role not in allowed_roles :
6971 raise HTTPException (
7072 status_code = 403 ,
Load Diff This file was deleted.
Original file line number Diff line number Diff line change 44from ..services .implementations .auth_service import AuthService
55from ..services .implementations .user_service import UserService
66from ..utilities .db_utils import get_db
7+ from ..utilities .service_utils import get_auth_service
78from ..middleware .auth import get_current_user
89import logging
910
1011router = APIRouter (prefix = "/auth" , tags = ["auth" ])
1112
12- def get_auth_service (db : Session = Depends (get_db )):
13- logger = logging .getLogger (__name__ )
14- return AuthService (logger = logger , user_service = UserService (db ))
15-
16-
1713@router .post ("/login" , response_model = AuthResponse )
1814async def login (
1915 credentials : LoginRequest ,
Original file line number Diff line number Diff line change 44from app .schemas .user import UserCreateRequest , UserCreateResponse
55from app .services .implementations .user_service import UserService
66from app .utilities .db_utils import get_db
7+ from app .utilities .service_utils import get_user_service
78
89router = APIRouter (
910 prefix = "/users" ,
1516# allow signup methods other than email (like sign up w Google)??
1617
1718
18- def get_user_service (db : Session = Depends (get_db )):
19- return UserService (db )
20-
21-
2219@router .post ("/" , response_model = UserCreateResponse )
2320async def create_user (
2421 user : UserCreateRequest , user_service : UserService = Depends (get_user_service )
Original file line number Diff line number Diff line change 1+ from fastapi import Depends
2+ from sqlalchemy .orm import Session
3+ from ..services .implementations .user_service import UserService
4+ from ..services .implementations .auth_service import AuthService
5+ from .db_utils import get_db
6+ import logging
7+
8+ def get_user_service (db : Session = Depends (get_db )):
9+ return UserService (db )
10+
11+ def get_auth_service (db : Session = Depends (get_db )):
12+ logger = logging .getLogger (__name__ )
13+ return AuthService (logger = logger , user_service = UserService (db ))
You can’t perform that action at this time.
0 commit comments