Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ ipython_config.py

# pdm
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
# pdm recommends including project-wide configuration in pdm.toml, but excluding .pdm-python.
# pdm recommends including projects-wide configuration in pdm.toml, but excluding .pdm-python.
# https://pdm-project.org/en/latest/usage/project/#working-with-version-control
# pdm.lock
# pdm.toml
Expand All @@ -126,7 +126,7 @@ ipython_config.py
.pixi/*
!.pixi/config.toml

# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-projects/pdm
__pypackages__/

# Celery stuff
Expand Down Expand Up @@ -159,11 +159,11 @@ ENV/
env.bak/
venv.bak/

# Spyder project settings
# Spyder projects settings
.spyderproject
.spyproject

# Rope project settings
# Rope projects settings
.ropeproject

# mkdocs documentation
Expand Down
14 changes: 8 additions & 6 deletions backend/api/api_v1/projects/list_views.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
AuthUserByAccessTokenDep,
PaginationPageDep,
PaginationSizeDep,
ProjectPaginationServiceDep,
ProjectServiceDep,
)
from dependencies.auth import get_auth_user_by_access_token
Expand All @@ -11,6 +12,7 @@
ProjectWithRenderCreate,
ProjectWithRenderResponse,
)
from services.projects.project_pagination import ProjectPaginationService

router = APIRouter()

Expand All @@ -24,11 +26,11 @@
],
)
async def get_public_projects(
project_service: ProjectServiceDep,
project_pagination_service: ProjectPaginationService,
size: PaginationSizeDep = 10,
page: PaginationPageDep = 1,
) -> ProjectResponseList:
return await project_service.get_public_projects(
return await project_pagination_service.get_public_projects(
size=size,
page=page,
)
Expand Down Expand Up @@ -56,12 +58,12 @@ async def create_project(
status_code=status.HTTP_200_OK,
)
async def get_current_user_projects(
project_service: ProjectServiceDep,
project_pagination_service: ProjectPaginationServiceDep,
user_id: AuthUserByAccessTokenDep,
size: PaginationSizeDep = 10,
page: PaginationPageDep = 1,
) -> ProjectResponseList:
return await project_service.get_user_projects(
return await project_pagination_service.get_user_projects(
user_id=user_id,
size=size,
page=page,
Expand All @@ -77,12 +79,12 @@ async def get_current_user_projects(
],
)
async def get_user_public_projects(
project_service: ProjectServiceDep,
project_pagination_service: ProjectPaginationServiceDep,
user_id: int,
size: PaginationSizeDep = 10,
page: PaginationPageDep = 1,
) -> ProjectResponseList:
return await project_service.get_user_public_projects(
return await project_pagination_service.get_user_public_projects(
user_id=user_id,
size=size,
page=page,
Expand Down
10 changes: 9 additions & 1 deletion backend/dependencies/annotations.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@
from schemas.auth import LoginRequest
from services.auth import AuthService
from services.file_uploader import FileUploader
from services.project import ProjectService
from services.projects.project import ProjectService
from services.projects.project_pagination import ProjectPaginationService
from services.tag import TagService
from services.user import UserService

Expand All @@ -21,6 +22,7 @@
from dependencies.services import (
get_auth_service,
get_input_file_uploader,
get_project_pagination_service,
get_project_service,
get_tag_service,
get_user_service,
Expand Down Expand Up @@ -67,6 +69,12 @@
Depends(get_project_service),
]

ProjectPaginationServiceDep = Annotated[
ProjectPaginationService,
Depends(get_project_pagination_service),
]


RenderRepositoryDep = Annotated[
RenderRepository,
Depends(get_render_repository),
Expand Down
18 changes: 17 additions & 1 deletion backend/dependencies/services.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,9 @@
from infrastructure.minio.client import MinioClient
from services.auth import AuthService
from services.file_uploader import FileUploader
from services.project import ProjectService
from services.projects.access_validator import ProjectAccessValidatorService
from services.projects.project import ProjectService
from services.projects.project_pagination import ProjectPaginationService
from services.tag import TagService
from services.user import UserService

Expand Down Expand Up @@ -61,12 +63,26 @@ async def get_project_service(
Depends(get_unit_of_work),
],
) -> AsyncGenerator[ProjectService]:
project_access_validator = ProjectAccessValidatorService(unit_of_work)
project_service = ProjectService(
unit_of_work,
project_access_validator,
)
yield project_service


async def get_project_pagination_service(
unit_of_work: Annotated[
UnitOfWork,
Depends(get_unit_of_work),
],
) -> AsyncGenerator[ProjectPaginationService]:
project_pagination_service = ProjectPaginationService(
unit_of_work,
)
yield project_pagination_service


async def get_tag_service(
unit_of_work: Annotated[
UnitOfWork,
Expand Down
8 changes: 4 additions & 4 deletions backend/infrastructure/database/repositories/project.py
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ async def update_project_status(self, project_id: int) -> Project | None:
project.status = RenderStatus.completed.value # type: ignore[assignment]
await self.session.flush()
logger.debug(
"Updated project status in transaction, transaction_id=%s, project_id=%s, status=%s", # noqa: E501
"Updated projects status in transaction, transaction_id=%s, project_id=%s, status=%s", # noqa: E501
id(self.session),
project_id,
project.status,
Expand All @@ -106,7 +106,7 @@ async def create_project(
self.session.add(project)
await self.session.flush()
logger.debug(
"Created project in transaction, transaction_id=%s, project_id=%s, name=%s, source_file_id=%s, visibility=%s", # noqa: E501
"Created projects in transaction, transaction_id=%s, project_id=%s, name=%s, source_file_id=%s, visibility=%s", # noqa: E501
id(self.session),
project.id,
project.name,
Expand All @@ -131,7 +131,7 @@ async def partial_update_project(

await self.session.flush()
logger.debug(
"Updated project in transaction, transaction_id=%s, project_id=%s, name=%s, source_file_id=%s, visibility=%s", # noqa: E501
"Updated projects in transaction, transaction_id=%s, project_id=%s, name=%s, source_file_id=%s, visibility=%s", # noqa: E501
id(self.session),
project.id,
project.name,
Expand All @@ -145,7 +145,7 @@ async def delete_by_id(self, project_id: int) -> None:
await self.session.execute(stmt)
await self.session.flush()
logger.debug(
"Deleted project in transaction, transaction_id=%s, project_id=%s",
"Deleted projects in transaction, transaction_id=%s, project_id=%s",
id(self.session),
project_id,
)
8 changes: 4 additions & 4 deletions backend/infrastructure/kafka/consumer.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
from core.interfaces.kafka import AbstractKafkaConsumer, AbstractKafkaProducer
from core.logging import get_logger
from schemas.event import DLQMessage, RenderGeneratedEvent
from services.project import ProjectService
from services.projects.render_generate_handler import RenderGenerateHandlerService

from infrastructure.database.core import session_factory
from infrastructure.database.unit_of_work import UnitOfWork
Expand Down Expand Up @@ -123,15 +123,15 @@ async def consume_render_generated(message: ConsumerRecord) -> None:
async with (
session_factory() as session,
UnitOfWork(session) as unit_of_work,
ProjectService(unit_of_work) as project_service,
RenderGenerateHandlerService(unit_of_work) as render_generate_handler_service,
minio_session.create_client(
"s3",
**settings.minio.config,
) as client,
MinioClient(client) as s3_client,
):
await project_service.update_project_status(project_id)
await project_service.handle_render_generated(
await render_generate_handler_service.update_project_status(project_id)
await render_generate_handler_service.handle_render_generated(
render_generated_event,
s3_client,
)
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
"""switch render project to projects table
"""switch render projects to projects table

Revision ID: ad7f1ef7f078
Revises: e926ed845570
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
"""remove project optional description constraint
"""remove projects optional description constraint

Revision ID: da1780a42a65
Revises: 11f4a9085334
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
"""add render project table
"""add render projects table

Revision ID: e926ed845570
Revises: 3f72bb9a1698
Expand Down
Loading
Loading