feat: implement ActivityService and TaskService with business logic for activities and tasks

This commit is contained in:
Artem Kashaev
2025-11-27 16:39:49 +05:00
parent 0727c4737b
commit 0ecf1295d8
4 changed files with 334 additions and 2 deletions
+25
View File
@@ -10,10 +10,13 @@ from app.core.config import settings
from app.core.database import get_session
from app.core.security import jwt_service, password_hasher
from app.models.user import User
from app.repositories.activity_repo import ActivityRepository
from app.repositories.deal_repo import DealRepository
from app.repositories.org_repo import OrganizationRepository
from app.repositories.task_repo import TaskRepository
from app.repositories.user_repo import UserRepository
from app.services.auth_service import AuthService
from app.services.activity_service import ActivityService
from app.services.deal_service import DealService
from app.services.organization_service import (
OrganizationAccessDeniedError,
@@ -21,6 +24,7 @@ from app.services.organization_service import (
OrganizationContextMissingError,
OrganizationService,
)
from app.services.task_service import TaskService
from app.services.user_service import UserService
oauth2_scheme = OAuth2PasswordBearer(tokenUrl=f"{settings.api_v1_prefix}/auth/token")
@@ -44,6 +48,14 @@ def get_deal_repository(session: AsyncSession = Depends(get_db_session)) -> Deal
return DealRepository(session=session)
def get_task_repository(session: AsyncSession = Depends(get_db_session)) -> TaskRepository:
return TaskRepository(session=session)
def get_activity_repository(session: AsyncSession = Depends(get_db_session)) -> ActivityRepository:
return ActivityRepository(session=session)
def get_deal_service(repo: DealRepository = Depends(get_deal_repository)) -> DealService:
return DealService(repository=repo)
@@ -68,6 +80,19 @@ def get_organization_service(
return OrganizationService(repository=repo)
def get_activity_service(
repo: ActivityRepository = Depends(get_activity_repository),
) -> ActivityService:
return ActivityService(repository=repo)
def get_task_service(
task_repo: TaskRepository = Depends(get_task_repository),
activity_repo: ActivityRepository = Depends(get_activity_repository),
) -> TaskService:
return TaskService(task_repository=task_repo, activity_repository=activity_repo)
async def get_current_user(
token: str = Depends(oauth2_scheme),
repo: UserRepository = Depends(get_user_repository),