Skip to content

Commit 5c56834

Browse files
[#239] Fix createPartij endpoint
1 parent 135d3a1 commit 5c56834

File tree

2 files changed

+28
-12
lines changed

2 files changed

+28
-12
lines changed

src/openklant/components/klantinteracties/api/serializers/partijen.py

+12-3
Original file line numberDiff line numberDiff line change
@@ -370,7 +370,7 @@ class PartijIdentificatorSerializer(
370370
NestedGegevensGroepMixin, serializers.HyperlinkedModelSerializer
371371
):
372372
identificeerde_partij = PartijForeignKeySerializer(
373-
required=True,
373+
required=False,
374374
allow_null=True,
375375
help_text=_("Partij-identificator die hoorde bij een partij."),
376376
source="partij",
@@ -492,8 +492,7 @@ class PartijSerializer(NestedGegevensGroepMixin, PolymorphicSerializer):
492492
vertegenwoordigden = serializers.SerializerMethodField(
493493
help_text=_("Partijen die een andere partijen vertegenwoordigden."),
494494
)
495-
partij_identificatoren = PartijIdentificatorForeignkeySerializer(
496-
read_only=True,
495+
partij_identificatoren = PartijIdentificatorSerializer(
497496
many=True,
498497
source="partijidentificator_set",
499498
help_text=_("Partij-identificatoren die hoorde bij deze partij."),
@@ -737,6 +736,7 @@ def create(self, validated_data):
737736
partij_identificatie = validated_data.pop("partij_identificatie", None)
738737
digitale_adressen = validated_data.pop("digitaaladres_set")
739738
rekeningnummers = validated_data.pop("rekeningnummer_set")
739+
partij_identificatoren = validated_data.pop("partijidentificator_set", [])
740740

741741
if voorkeurs_digitaal_adres := validated_data.pop(
742742
"voorkeurs_digitaal_adres", None
@@ -814,6 +814,15 @@ def create(self, validated_data):
814814
rekeningnummer.partij = partij
815815
rekeningnummer.save()
816816

817+
if partij_identificatoren:
818+
for partij_identificator in partij_identificatoren:
819+
partij_identificator["partij"] = {"uuid": str(partij.uuid)}
820+
partij_identificator_serializer = PartijIdentificatorSerializer(
821+
data=partij_identificator
822+
)
823+
partij_identificator_serializer.is_valid(raise_exception=True)
824+
partij_identificator_serializer.create(partij_identificator)
825+
817826
return partij
818827

819828

src/openklant/components/klantinteracties/api/tests/test_partijen.py

+16-9
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,17 @@ def test_create_partij(self):
131131
"achternaam": "Bozeman",
132132
}
133133
},
134+
"partijIdentificatoren": [
135+
{
136+
"anderePartijIdentificator": "string",
137+
"partijIdentificator": {
138+
"codeObjecttype": "natuurlijk_persoon",
139+
"codeSoortObjectId": "bsn",
140+
"objectId": "296648875",
141+
"codeRegister": "brp",
142+
},
143+
}
144+
],
134145
}
135146

136147
response = self.client.post(list_url, data)
@@ -174,18 +185,14 @@ def test_create_partij(self):
174185
},
175186
)
176187
self.assertEqual(
177-
data["partijIdentificatie"],
188+
data["partijIdentificatoren"][0]["partijIdentificator"],
178189
{
179-
"volledigeNaam": "Phil Bozeman",
180-
"contactnaam": {
181-
"voorletters": "P",
182-
"voornaam": "Phil",
183-
"voorvoegselAchternaam": "",
184-
"achternaam": "Bozeman",
185-
},
190+
"codeObjecttype": "natuurlijk_persoon",
191+
"codeSoortObjectId": "bsn",
192+
"objectId": "296648875",
193+
"codeRegister": "brp",
186194
},
187195
)
188-
189196
with self.subTest("create_partij_without_foreignkey_relations"):
190197
data["nummer"] = "1298329192"
191198
data["digitaleAdressen"] = []

0 commit comments

Comments
 (0)