feat: добавлен сервис управления пользователями
All checks were successful
Lint project / lint (push) Successful in 55s
All checks were successful
Lint project / lint (push) Successful in 55s
- Создан файл services.py в директории lkeep/apps/auth. - Определен класс UserService для управления пользователями. - Реализован метод register_user для регистрации нового пользователя. - Использованы зависимости UserManager и AuthHandler. - Добавлены необходимые импорты из модулей schemas, managers и handlers.
This commit is contained in:
parent
aec3f41f4f
commit
d3b2f4d71a
48
lkeep/apps/auth/services.py
Normal file
48
lkeep/apps/auth/services.py
Normal file
@ -0,0 +1,48 @@
|
||||
"""
|
||||
Проект: Lkeep
|
||||
Автор: Иван Ашихмин
|
||||
Год: 2025
|
||||
Специально для проекта "Код на салфетке"
|
||||
https://pressanybutton.ru/category/servis-na-fastapi/
|
||||
"""
|
||||
|
||||
from fastapi import Depends
|
||||
|
||||
from lkeep.apps.auth.handlers import AuthHandler
|
||||
from lkeep.apps.auth.managers import UserManager
|
||||
from lkeep.apps.auth.schemas import CreateUser, RegisterUser, UserReturnData
|
||||
|
||||
|
||||
class UserService:
|
||||
"""
|
||||
Класс для управления пользователями.
|
||||
"""
|
||||
|
||||
def __init__(
|
||||
self, manager: UserManager = Depends(UserManager), handler: AuthHandler = Depends(AuthHandler)
|
||||
) -> None:
|
||||
"""
|
||||
Инициализирует экземпляр класса, используя зависимости для управления пользователями и авторизации.
|
||||
|
||||
:param manager: Управитель пользователей, отвечающий за CRUD-операции над пользователями.
|
||||
:type manager: UserManager
|
||||
:param handler: Обработчик аутентификации и авторизации, который используется для проверки доступа к ресурсам.
|
||||
:type handler: AuthHandler
|
||||
"""
|
||||
self.manager = manager
|
||||
self.handler = handler
|
||||
|
||||
async def register_user(self, user: RegisterUser) -> UserReturnData:
|
||||
"""
|
||||
Регистрирует нового пользователя в системе.
|
||||
|
||||
:param user: Данные для регистрации пользователя.
|
||||
:type user: RegisterUser
|
||||
:return: Данные зарегистрированного пользователя.
|
||||
:rtype: UserReturnData
|
||||
"""
|
||||
hashed_password = await self.handler.get_password_hash(user.password)
|
||||
|
||||
new_user = CreateUser(email=user.email, hashed_password=hashed_password)
|
||||
|
||||
return await self.manager.create_user(user=new_user)
|
Loading…
x
Reference in New Issue
Block a user