feat: Роли. Добавлены RolesService и RolesRouter
This commit is contained in:
parent
7cb2b21227
commit
b581ffd003
23
api/app/controllers/roles_router.py
Normal file
23
api/app/controllers/roles_router.py
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
from fastapi import APIRouter, Depends
|
||||||
|
from sqlalchemy.ext.asyncio import AsyncSession
|
||||||
|
|
||||||
|
from app.database.session import get_db
|
||||||
|
from app.domain.entities.role import RoleEntity
|
||||||
|
from app.infrastructure.dependencies import require_admin
|
||||||
|
from app.infrastructure.roles_service import RolesService
|
||||||
|
|
||||||
|
router = APIRouter()
|
||||||
|
|
||||||
|
|
||||||
|
@router.get(
|
||||||
|
'/',
|
||||||
|
response_model=list[RoleEntity],
|
||||||
|
summary='Return all roles',
|
||||||
|
description='Return all roles',
|
||||||
|
)
|
||||||
|
async def get_all_roles(
|
||||||
|
db: AsyncSession = Depends(get_db),
|
||||||
|
user=Depends(require_admin),
|
||||||
|
):
|
||||||
|
roles_service = RolesService(db)
|
||||||
|
return await roles_service.get_all_roles()
|
||||||
24
api/app/infrastructure/roles_service.py
Normal file
24
api/app/infrastructure/roles_service.py
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
from sqlalchemy.ext.asyncio import AsyncSession
|
||||||
|
|
||||||
|
from app.application.roles_repository import RolesRepository
|
||||||
|
from app.domain.entities.role import RoleEntity
|
||||||
|
from app.domain.models import Role
|
||||||
|
|
||||||
|
|
||||||
|
class RolesService:
|
||||||
|
def __init__(self, db: AsyncSession):
|
||||||
|
self.roles_repository = RolesRepository(db)
|
||||||
|
|
||||||
|
async def get_all_roles(self) -> list[RoleEntity]:
|
||||||
|
roles = await self.roles_repository.get_all()
|
||||||
|
return [
|
||||||
|
self.model_to_entity(role)
|
||||||
|
for role in roles
|
||||||
|
]
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def model_to_entity(role: Role) -> RoleEntity:
|
||||||
|
return RoleEntity(
|
||||||
|
id=role.id,
|
||||||
|
title=role.title,
|
||||||
|
)
|
||||||
@ -8,9 +8,9 @@ from app.application.roles_repository import RolesRepository
|
|||||||
from app.application.users_repository import UsersRepository
|
from app.application.users_repository import UsersRepository
|
||||||
from app.domain.entities.change_password import ChangePasswordEntity
|
from app.domain.entities.change_password import ChangePasswordEntity
|
||||||
from app.domain.entities.register import RegisterEntity
|
from app.domain.entities.register import RegisterEntity
|
||||||
from app.domain.entities.role import RoleEntity
|
|
||||||
from app.domain.entities.user import UserEntity
|
from app.domain.entities.user import UserEntity
|
||||||
from app.domain.models import User, Role
|
from app.domain.models import User
|
||||||
|
from app.infrastructure.roles_service import RolesService
|
||||||
|
|
||||||
|
|
||||||
class UsersService:
|
class UsersService:
|
||||||
@ -27,7 +27,7 @@ class UsersService:
|
|||||||
)
|
)
|
||||||
|
|
||||||
user_entity = self.model_to_entity(user)
|
user_entity = self.model_to_entity(user)
|
||||||
user_entity.role = self.role_model_to_entity(user.role)
|
user_entity.role = RolesService.model_to_entity(user.role)
|
||||||
|
|
||||||
return user_entity
|
return user_entity
|
||||||
|
|
||||||
@ -37,7 +37,7 @@ class UsersService:
|
|||||||
|
|
||||||
for user in users:
|
for user in users:
|
||||||
user_entity = self.model_to_entity(user)
|
user_entity = self.model_to_entity(user)
|
||||||
user_entity.role = self.role_model_to_entity(user.role)
|
user_entity.role = RolesService.model_to_entity(user.role)
|
||||||
response.append(user_entity)
|
response.append(user_entity)
|
||||||
|
|
||||||
return response
|
return response
|
||||||
@ -151,13 +151,6 @@ class UsersService:
|
|||||||
|
|
||||||
return self.model_to_entity(user_model)
|
return self.model_to_entity(user_model)
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def role_model_to_entity(role: Role) -> RoleEntity:
|
|
||||||
return RoleEntity(
|
|
||||||
id=role.id,
|
|
||||||
title=role.title,
|
|
||||||
)
|
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def is_strong_password(password: str) -> bool:
|
def is_strong_password(password: str) -> bool:
|
||||||
if len(password) < 8:
|
if len(password) < 8:
|
||||||
|
|||||||
@ -9,6 +9,7 @@ from app.controllers.lens_types_router import router as lens_types_router
|
|||||||
from app.controllers.lenses_router import router as lenses_router
|
from app.controllers.lenses_router import router as lenses_router
|
||||||
from app.controllers.patients_router import router as patients_router
|
from app.controllers.patients_router import router as patients_router
|
||||||
from app.controllers.register_routes import router as register_router
|
from app.controllers.register_routes import router as register_router
|
||||||
|
from app.controllers.roles_router import router as roles_router
|
||||||
from app.controllers.scheduled_appointments_router import router as scheduled_appointments_router
|
from app.controllers.scheduled_appointments_router import router as scheduled_appointments_router
|
||||||
from app.controllers.set_content_router import router as set_content_router
|
from app.controllers.set_content_router import router as set_content_router
|
||||||
from app.controllers.sets_router import router as sets_router
|
from app.controllers.sets_router import router as sets_router
|
||||||
@ -35,6 +36,7 @@ def start_app():
|
|||||||
api_app.include_router(lenses_router, prefix=f'{settings.APP_PREFIX}/lenses', tags=['lenses'])
|
api_app.include_router(lenses_router, prefix=f'{settings.APP_PREFIX}/lenses', tags=['lenses'])
|
||||||
api_app.include_router(patients_router, prefix=f'{settings.APP_PREFIX}/patients', tags=['patients'])
|
api_app.include_router(patients_router, prefix=f'{settings.APP_PREFIX}/patients', tags=['patients'])
|
||||||
api_app.include_router(register_router, prefix=f'{settings.APP_PREFIX}/register', tags=['register'])
|
api_app.include_router(register_router, prefix=f'{settings.APP_PREFIX}/register', tags=['register'])
|
||||||
|
api_app.include_router(roles_router, prefix=f'{settings.APP_PREFIX}/roles', tags=['roles'])
|
||||||
api_app.include_router(scheduled_appointments_router, prefix=f'{settings.APP_PREFIX}/scheduled_appointments', tags=['scheduled_appointments'])
|
api_app.include_router(scheduled_appointments_router, prefix=f'{settings.APP_PREFIX}/scheduled_appointments', tags=['scheduled_appointments'])
|
||||||
api_app.include_router(set_content_router, prefix=f'{settings.APP_PREFIX}/set_content', tags=['set_content'])
|
api_app.include_router(set_content_router, prefix=f'{settings.APP_PREFIX}/set_content', tags=['set_content'])
|
||||||
api_app.include_router(sets_router, prefix=f'{settings.APP_PREFIX}/sets', tags=['sets'])
|
api_app.include_router(sets_router, prefix=f'{settings.APP_PREFIX}/sets', tags=['sets'])
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user