Skip to content

Commit

Permalink
🐛 Add extra informatie when creating zaakobjects of type 'overige' (#…
Browse files Browse the repository at this point in the history
  • Loading branch information
damm89 authored Oct 24, 2024
1 parent c2cd843 commit d660f63
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 10 deletions.
16 changes: 16 additions & 0 deletions backend/src/zac/core/api/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@
from zac.core.rollen import Rol
from zac.core.services import (
fetch_object,
fetch_objecttype,
fetch_objecttypes,
fetch_rol,
fetch_zaaktype,
Expand Down Expand Up @@ -1590,6 +1591,21 @@ def validate(self, data):
return self.initial_data

def create(self, validated_data):
if validated_data.get("object_type", "") == "overige":
obj = fetch_object(self.initial_data["object"])
if not validated_data.get("object_type_overige"):
validated_data["object_type_overige"] = obj["type"]["name"]
if not validated_data.get("object_type_overige_definitie"):
latest_version = max(obj["type"]["versions"])
validated_data["object_type_overige_definitie"] = {
"url": latest_version,
"schema": ".jsonSchema",
"objectData": ".record.data",
}
if not validated_data.get("relatieomschrijving"):
validated_data[
"relatieomschrijving"
] = f"{obj['type']['name']} van de ZAAK."
related_object = relate_object_to_zaak(validated_data)
return related_object

Expand Down
22 changes: 13 additions & 9 deletions backend/src/zac/core/api/tests/test_zaak_related_objects.py
Original file line number Diff line number Diff line change
Expand Up @@ -135,8 +135,10 @@ def setUpClass(cls):
)

cls.user = SuperUserFactory.create()
cls.obj = deepcopy(OBJECT_1)
cls.obj["type"] = OBJECTTYPE_1
cls.fetch_object_patcher = patch(
"zac.core.api.serializers.fetch_object", return_value=OBJECT_1
"zac.core.api.serializers.fetch_object", return_value=cls.obj
)

def setUp(self):
Expand Down Expand Up @@ -439,6 +441,8 @@ def setUpTestData(cls):
"objectTypeOverige": "Laadpaal uitbreiding",
"objectIdentificatie": {"overigeData": OBJECT_1["record"]["data"]},
}
cls.obj = deepcopy(OBJECT_1)
cls.obj["type"] = OBJECTTYPE_1

def test_not_authenticated(self):
url = reverse("zaakobject-create")
Expand All @@ -456,7 +460,6 @@ def test_authenticated_no_permissions(self):
self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)

@requests_mock.Mocker()
@patch("zac.core.api.serializers.fetch_object", return_value=OBJECT_1)
def test_create_other_permission(self, m, *mocks):
mock_service_oas_get(m, ZRC_ROOT, "zrc")
mock_service_oas_get(m, CATALOGI_ROOT, "ztc")
Expand All @@ -481,12 +484,12 @@ def test_create_other_permission(self, m, *mocks):
self.client.force_authenticate(user=user)
url = reverse("zaakobject-create")

response = self.client.post(url, self.data)
with patch("zac.core.api.serializers.fetch_object", return_value=self.obj):
response = self.client.post(url, self.data)

self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)

@requests_mock.Mocker()
@patch("zac.core.api.serializers.fetch_object", return_value=OBJECT_1)
def test_create_has_perm(self, m, *mocks):
mock_service_oas_get(m, ZRC_ROOT, "zrc")
mock_service_oas_get(m, CATALOGI_ROOT, "ztc")
Expand All @@ -512,12 +515,12 @@ def test_create_has_perm(self, m, *mocks):
self.client.force_authenticate(user=user)
url = reverse("zaakobject-create")

response = self.client.post(url, self.data)
with patch("zac.core.api.serializers.fetch_object", return_value=self.obj):
response = self.client.post(url, self.data)

self.assertEqual(response.status_code, status.HTTP_201_CREATED)

@requests_mock.Mocker()
@patch("zac.core.api.serializers.fetch_object", return_value=OBJECT_1)
def test_create_has_perm_but_zaak_is_closed(self, m, *mocks):
mock_service_oas_get(m, ZRC_ROOT, "zrc")
mock_service_oas_get(m, CATALOGI_ROOT, "ztc")
Expand All @@ -543,12 +546,12 @@ def test_create_has_perm_but_zaak_is_closed(self, m, *mocks):
self.client.force_authenticate(user=user)
url = reverse("zaakobject-create")

response = self.client.post(url, self.data)
with patch("zac.core.api.serializers.fetch_object", return_value=self.obj):
response = self.client.post(url, self.data)

self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)

@requests_mock.Mocker()
@patch("zac.core.api.serializers.fetch_object", return_value=OBJECT_1)
def test_create_has_perm_also_for_closed_zaak(self, m, *mocks):
mock_service_oas_get(m, ZRC_ROOT, "zrc")
mock_service_oas_get(m, CATALOGI_ROOT, "ztc")
Expand Down Expand Up @@ -583,7 +586,8 @@ def test_create_has_perm_also_for_closed_zaak(self, m, *mocks):
self.client.force_authenticate(user=user)
url = reverse("zaakobject-create")

response = self.client.post(url, self.data)
with patch("zac.core.api.serializers.fetch_object", return_value=self.obj):
response = self.client.post(url, self.data)

self.assertEqual(response.status_code, status.HTTP_201_CREATED)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ class IndexZaakObjectenTests(ClearCachesMixin, ESMixin, APITransactionTestCase):
"schemas/ZaakObject",
url=f"{ZAKEN_ROOT}zaakobjecten/f79989d3-9ac4-4c2b-a94e-13191b333444",
zaak=zaak["url"],
informatieobject=f"{OBJECT_ROOT}objecten/d859f08e-6957-44f8-9efb-502d18c28f8f",
object=f"{OBJECT_ROOT}objecten/d859f08e-6957-44f8-9efb-502d18c28f8f",
object_identificatie=dict(),
)

Expand Down

0 comments on commit d660f63

Please sign in to comment.