init: new structure + fix lint errors
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import uuid
|
||||
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
|
||||
from cpv3.modules.jobs.models import Job, JobEvent
|
||||
from cpv3.modules.jobs.repository import JobEventRepository, JobRepository
|
||||
from cpv3.modules.jobs.schemas import (
|
||||
JobCreate,
|
||||
JobEventCreate,
|
||||
JobEventUpdate,
|
||||
JobUpdate,
|
||||
)
|
||||
from cpv3.modules.users.models import User
|
||||
|
||||
|
||||
class JobService:
|
||||
"""Service for job business logic and orchestration."""
|
||||
|
||||
def __init__(self, session: AsyncSession) -> None:
|
||||
self._job_repo = JobRepository(session)
|
||||
self._event_repo = JobEventRepository(session)
|
||||
|
||||
async def list_jobs(self, *, requester: User) -> list[Job]:
|
||||
return await self._job_repo.list_all(requester=requester)
|
||||
|
||||
async def get_job(self, job_id: uuid.UUID) -> Job | None:
|
||||
return await self._job_repo.get_by_id(job_id)
|
||||
|
||||
async def create_job(self, *, requester: User, data: JobCreate) -> Job:
|
||||
return await self._job_repo.create(requester=requester, data=data)
|
||||
|
||||
async def update_job(self, job: Job, data: JobUpdate) -> Job:
|
||||
return await self._job_repo.update(job, data)
|
||||
|
||||
async def deactivate_job(self, job: Job) -> None:
|
||||
await self._job_repo.deactivate(job)
|
||||
|
||||
async def list_job_events(self) -> list[JobEvent]:
|
||||
return await self._event_repo.list_all()
|
||||
|
||||
async def get_job_event(self, event_id: uuid.UUID) -> JobEvent | None:
|
||||
return await self._event_repo.get_by_id(event_id)
|
||||
|
||||
async def create_job_event(self, data: JobEventCreate) -> JobEvent:
|
||||
return await self._event_repo.create(data)
|
||||
|
||||
async def update_job_event(self, event: JobEvent, data: JobEventUpdate) -> JobEvent:
|
||||
return await self._event_repo.update(event, data)
|
||||
|
||||
async def deactivate_job_event(self, event: JobEvent) -> None:
|
||||
await self._event_repo.deactivate(event)
|
||||
Reference in New Issue
Block a user