Skip to content
Open
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: 8 additions & 15 deletions contract_api/application/services/service_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,25 +59,18 @@ def get_service_filters(self, request: GetServiceFiltersRequest) -> dict[str, li
return {"values": filters_data}

def get_services(self, request: GetServicesRequest) -> dict[str, list | int]:
limit = request.limit
page = request.page
sort = request.sort
order = request.order
filters = request.filter
q = request.q

services = self._service_repo.get_filtered_services(
limit=limit,
page=page,
sort=sort,
order=order,
filters=filters,
q=q
limit=request.limit,
page=request.page,
sort=request.sort,
order=request.order,
filters=request.filter,
q=request.q
)

total_count = self._service_repo.get_filtered_services_count(
filters=filters,
q=q
filters=request.filter,
q=request.q
)

return {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
from contract_api.domain.factory.organization_factory import OrganizationFactory
from contract_api.domain.models.org_group import OrgGroupDomain, NewOrgGroupDomain
from contract_api.domain.models.organization import OrganizationDomain, NewOrganizationDomain
from contract_api.infrastructure.models import OrgGroup, Organization, Service
from contract_api.infrastructure.models import OrgGroup, Organization, Service, ServiceEndpoint
from contract_api.infrastructure.repositories.base_repository import BaseRepository


Expand All @@ -26,13 +26,16 @@ def get_groups(self, org_id: str, group_id: str = None) -> list[OrgGroupDomain]:
return OrganizationFactory.org_groups_from_db_model(groups_db)

def get_organizations_with_curated_services(self) -> list[OrganizationDomain]:
query = select(
Organization
).join(
Service, Organization.org_id == Service.org_id
).where(
Service.is_curated == True
).distinct()
query = (
select(Organization)
.join(Service, Organization.org_id == Service.org_id)
.join(ServiceEndpoint, ServiceEndpoint.service_row_id == Service.row_id)
.where(
Service.is_curated == True,
ServiceEndpoint.is_available == True,
)
.distinct()
)

result = self.session.execute(query)
organizations_db = result.scalars().all()
Expand Down
Loading