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
23 changes: 0 additions & 23 deletions apps/backend/src/rhesis/backend/app/crud/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -103,29 +103,6 @@ def delete_endpoint(
)


# Experiment CRUD
def get_experiments(
db: Session,
skip: int = 0,
limit: int = 10,
sort_by: str = "created_at",
sort_order: str = "desc",
filter: str | None = None,
organization_id: str = None,
user_id: str = None,
) -> List[models.Experiment]:
return (
QueryBuilder(db, models.Experiment)
.with_related(include(models.Experiment.project))
.with_organization_filter(organization_id)
.with_visibility_filter(user_id)
.with_odata_filter(filter)
.with_sorting(sort_by, sort_order)
.with_pagination(skip, limit)
.all()
)


# TestSet CRUD
def get_test_set(
db: Session, test_set_id: uuid.UUID, organization_id: str = None, user_id: str = None
Expand Down
35 changes: 35 additions & 0 deletions apps/backend/src/rhesis/backend/app/crud/experiment.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
"""CRUD operations for experiments.

Part of the incremental split of the ``crud`` monolith: ``crud/__init__.py`` still holds
the bulk of the functions, and per-entity modules like this one take over as the code
around them is touched -- see ``apps/backend/AGENTS.md``'s crud-layout rule.
"""

from typing import List

from sqlalchemy.orm import Session

from rhesis.backend.app import models
from rhesis.backend.app.utils.query_utils import QueryBuilder, include


def get_experiments(
db: Session,
skip: int = 0,
limit: int = 10,
sort_by: str = "created_at",
sort_order: str = "desc",
filter: str | None = None,
organization_id: str = None,
user_id: str = None,
) -> List[models.Experiment]:
return (
QueryBuilder(db, models.Experiment)
.with_related(include(models.Experiment.project))
.with_organization_filter(organization_id)
.with_visibility_filter(user_id)
.with_odata_filter(filter)
.with_sorting(sort_by, sort_order)
.with_pagination(skip, limit)
.all()
)
3 changes: 2 additions & 1 deletion apps/backend/src/rhesis/backend/app/routers/experiments.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
from rhesis.backend.app.auth.principal import resolve_principal_from_request
from rhesis.backend.app.auth.rbac import authorize_object, project_id_from_scope
from rhesis.backend.app.auth.user_utils import require_current_user_or_token
from rhesis.backend.app.crud import experiment as experiment_crud
from rhesis.backend.app.crud.project import get_project
from rhesis.backend.app.crud.test_run import get_test_runs
from rhesis.backend.app.dependencies import (
Expand Down Expand Up @@ -81,7 +82,7 @@ def list_experiments(
belonging to other users are excluded.
"""
organization_id, user_id = tenant_context
rows = crud.get_experiments(
rows = experiment_crud.get_experiments(
db,
skip=skip,
limit=limit,
Expand Down
Loading