From e6d02479935c182069acdb8824d5e5d5e9f2c33c Mon Sep 17 00:00:00 2001 From: bart-maykin Date: Tue, 19 Nov 2024 18:15:53 +0100 Subject: [PATCH] :sparkles: [#256] added klantcontact filters to retrieve klantcontact based on betrokkene -> partij uuid/url --- .../api/filterset/klantcontacten.py | 17 +++++++++++++++++ .../components/klantinteracties/openapi.yaml | 11 +++++++++++ 2 files changed, 28 insertions(+) diff --git a/src/openklant/components/klantinteracties/api/filterset/klantcontacten.py b/src/openklant/components/klantinteracties/api/filterset/klantcontacten.py index 13b3c69f..70d4e275 100644 --- a/src/openklant/components/klantinteracties/api/filterset/klantcontacten.py +++ b/src/openklant/components/klantinteracties/api/filterset/klantcontacten.py @@ -28,6 +28,14 @@ class KlantcontactFilterSet(FilterSet): help_text=_("Zoek klantcontact object op basis van het betrokkene uuid."), field_name="betrokkene__uuid", ) + had_betrokkene__was_partij__url = filters.CharFilter( + help_text=_("Zoek klantcontact object op basis van de partij url."), + method="filter_partij_url", + ) + had_betrokkene__was_partij__uuid = filters.UUIDFilter( + help_text=_("Zoek klantcontact object op basis van de partij uuid."), + field_name="betrokkene__partij__uuid", + ) onderwerpobject__url = filters.CharFilter( help_text=_("Zoek klantcontact object op basis van het onderwerpobject url."), method="filter_onderwerpobject_url", @@ -54,6 +62,8 @@ class Meta: fields = ( "had_betrokkene__url", "had_betrokkene__uuid", + "had_betrokkene__was_partij__url", + "had_betrokkene__was_partij__uuid", "onderwerpobject__uuid", "onderwerpobject__url", "onderwerpobject__onderwerpobjectidentificator_code_objecttype", @@ -82,6 +92,13 @@ def filter_betrokkene_url(self, queryset, name, value): except ValueError: return queryset.none() + def filter_partij_url(self, queryset, name, value): + try: + url_uuid = uuid.UUID(value.rstrip("/").split("/")[-1]) + return queryset.filter(betrokkene__partij__uuid=url_uuid) + except ValueError: + return queryset.none() + def filter_onderwerpobject_url(self, queryset, name, value): try: url_uuid = uuid.UUID(value.rstrip("/").split("/")[-1]) diff --git a/src/openklant/components/klantinteracties/openapi.yaml b/src/openklant/components/klantinteracties/openapi.yaml index 6575bb24..4437faac 100644 --- a/src/openklant/components/klantinteracties/openapi.yaml +++ b/src/openklant/components/klantinteracties/openapi.yaml @@ -1582,6 +1582,17 @@ paths: type: string format: uuid description: Zoek klantcontact object op basis van het betrokkene uuid. + - in: query + name: hadBetrokkene__wasPartij__url + schema: + type: string + description: Zoek klantcontact object op basis van de partij url. + - in: query + name: hadBetrokkene__wasPartij__uuid + schema: + type: string + format: uuid + description: Zoek klantcontact object op basis van de partij uuid. - in: query name: indicatieContactGelukt schema: