Skip to content

Commit

Permalink
Improve typing and invariant checks for CaseListService
Browse files Browse the repository at this point in the history
  • Loading branch information
swrichards committed Oct 1, 2024
1 parent d74e8aa commit 3190ba6
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 9 deletions.
5 changes: 3 additions & 2 deletions src/open_inwoner/cms/cases/views/cases.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import logging
from typing import Sequence

from django.urls import reverse
from django.utils.functional import cached_property
Expand Down Expand Up @@ -69,8 +70,8 @@ def get_context_data(self, **kwargs):
context["filter_form_enabled"] = config.zaken_filter_enabled

# update ctx with open submissions and cases (possibly fitered)
open_submissions: list[UniformCase] = case_service.get_submissions()
preprocessed_cases: list[UniformCase] = case_service.get_cases()
open_submissions: Sequence[UniformCase] = case_service.get_submissions()
preprocessed_cases: Sequence[UniformCase] = case_service.get_cases()

if config.zaken_filter_enabled:
case_status_frequencies = case_service.get_case_status_frequencies()
Expand Down
16 changes: 9 additions & 7 deletions src/open_inwoner/cms/cases/views/services.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
ZaakTypeStatusTypeConfig,
ZGWApiGroupConfig,
)
from open_inwoner.openzaak.types import UniformCase
from open_inwoner.openzaak.utils import get_user_fetch_parameters, is_zaak_visible

logger = logging.getLogger(__name__)
Expand All @@ -30,12 +29,12 @@ class CaseFilterFormOption(enum.Enum):


@dataclass(frozen=True)
class ZaakWithApiGroup(UniformCase):
class ZaakWithApiGroup:
zaak: Zaak
api_group: ZGWApiGroupConfig

@property
def identification(self):
def identification(self) -> str:
return self.zaak.url

def process_data(self) -> dict:
Expand All @@ -48,7 +47,7 @@ class SubmissionWithApiGroup:
api_group: ZGWApiGroupConfig

@property
def identifier(self):
def identification(self) -> str:
return self.submission.url

def process_data(self) -> dict:
Expand Down Expand Up @@ -87,12 +86,15 @@ def __init__(self, request: HttpRequest):

def get_submissions_for_api_group(
self, group: ZGWApiGroupConfig
) -> list[UniformCase]:
) -> list[OpenSubmission]:
if not group.forms_client:
raise ValueError(f"{group} has no `forms_client`")

return group.forms_client.fetch_open_submissions(
**get_user_fetch_parameters(self.request, check_rsin=False)
)

def get_submissions(self):
def get_submissions(self) -> list[SubmissionWithApiGroup]:
all_api_groups = list(
ZGWApiGroupConfig.objects.exclude(form_service__isnull=True)
)
Expand All @@ -103,7 +105,7 @@ def get_submissions(self):
for group in all_api_groups
]

subs_with_api_group = []
subs_with_api_group: list[SubmissionWithApiGroup] = []
for task in concurrent.futures.as_completed(futures):
try:
group_for_task = all_api_groups[futures.index(task)]
Expand Down

0 comments on commit 3190ba6

Please sign in to comment.