This commit is contained in:
2026-08-04 17:11:33 +03:00
parent 8fa72daa6b
commit 4e14972cf6
11 changed files with 106 additions and 70 deletions
+15 -13
View File
@@ -9,14 +9,14 @@ from src.errors.http_errors.errors import Errors
from src.models.configs_read.env import env_settings
from src.models.pydantic_models.model import RefreshTokensCreate, UserOut
from .jwt import Hashes, Jwt
from .jwt import HashService, JwtService
class CurrentUser:
class CurrentUserService:
def __init__(self) -> None:
self.jwt_service=Jwt()
self.hash=Hashes()
self.jwt_service=JwtService()
self.hash=HashService()
self.crud_db_actions=UsersCrudActions()
self.jwt_db_actions=JwtCrudActions()
self.error=Errors()
@@ -147,9 +147,12 @@ class CurrentUser:
expires_at=datetime.now(UTC)+timedelta(days=env_settings.REFRESH_TOKEN_EXPIRE_DAYS),
)
self.jwt_db_actions.create_and_update_token(RefreshTokensCreate.model_dump(new_token_record), old_jti, new_jti)
success = self.jwt_db_actions.create_and_update_token(RefreshTokensCreate.model_dump(new_token_record), old_jti, new_jti)
return (new_access_token,new_refresh_token)
if not success:
raise self.error.not_found_error(detail="Token not found")
return (new_access_token, new_refresh_token)
@@ -163,15 +166,14 @@ class CurrentUser:
try:
jti=UUID(jti)
except (ValueError, TypeError) as e:
except (ValueError, TypeError, AttributeError) as e:
raise self.error.credentials_error(detail="Jwt token is incorrect") from e
current_token = self.jwt_db_actions.get_token_by_id(jti)
if current_token is None:
raise self.error.not_found_error(detail="Refresh Token Not Found")
'''logout by assigning revoked flag'''
return self.jwt_db_actions.logout(jti)
if self.jwt_db_actions.logout(jti):
return True
else:
raise self.error.not_found_error(detail="Refresh Token Not Found")
@@ -186,4 +188,4 @@ class CurrentUser:
return (access_token, refresh_token)
auth=CurrentUser()
auth=CurrentUserService()
+2 -2
View File
@@ -9,7 +9,7 @@ from src.errors.http_errors.errors import Errors
from src.models.configs_read.env import env_settings
'''Hash/Check hash'''
class Hashes:
class HashService:
def __init__(self) -> None:
pass
@@ -25,7 +25,7 @@ class Hashes:
'''jwt'''
class Jwt:
class JwtService:
def __init__(self) -> None:
+18
View File
@@ -0,0 +1,18 @@
from src.database.users.crud import UsersCrudActions
from src.errors.http_errors.errors import Errors
from src.models.pydantic_models.model import UserOut
class CrudService:
def __init__(self) -> None:
self.errors=Errors()
self.crud_db_actions=UsersCrudActions()
def get_user_by_email(self, email:str)->UserOut:
user_entity=self.crud_db_actions.get_user_by_email(email)
if not user_entity:
raise self.errors.not_found_error(detail="User wasn't found")
return UserOut.model_validate(user_entity)
crud_service=CrudService()