Skip to content

Commit

Permalink
✨ [#132] added api validation to check if nummeraanduiding_id is give…
Browse files Browse the repository at this point in the history
…n when gegevens groep is filled in
  • Loading branch information
bart-maykin committed Jan 10, 2024
1 parent e50fd60 commit cc4d645
Show file tree
Hide file tree
Showing 5 changed files with 126 additions and 0 deletions.
26 changes: 26 additions & 0 deletions src/openklant/components/contactgegevens/api/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,19 @@ class Meta:
model = Organisatie
gegevensgroep = "adres"

def validate(self, attrs):
if any(attrs.values()):
if not attrs.get("nummeraanduiding_id"):
raise serializers.ValidationError(
{
"nummeraanduiding_id": _(
"nummeraanduiding_id is verplicht wanneer het adres ingevuld is."
),
}
)

return super().validate(attrs)


class OrganisatieSerializer(
NestedGegevensGroepMixin,
Expand Down Expand Up @@ -141,6 +154,19 @@ class Meta:
model = Persoon
gegevensgroep = "adres"

def validate(self, attrs):
if any(attrs.values()):
if not attrs.get("nummeraanduiding_id"):
raise serializers.ValidationError(
{
"nummeraanduiding_id": _(
"nummeraanduiding_id is verplicht wanneer het adres ingevuld is."
),
}
)

return super().validate(attrs)


class PersoonSerializer(
NestedGegevensGroepMixin,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Generated by Django 3.2.23 on 2024-01-10 11:36

from django.db import migrations, models


class Migration(migrations.Migration):
dependencies = [
("contactgegevens", "0001_initial"),
]

operations = [
migrations.AddField(
model_name="organisatie",
name="adres_nummeraanduiding_id",
field=models.CharField(
blank=True,
help_text="Identificatie van het adres bij de Basisregistratie Adressen en Gebouwen.",
max_length=255,
verbose_name="nummeraanduiding ID",
),
),
migrations.AddField(
model_name="persoon",
name="adres_nummeraanduiding_id",
field=models.CharField(
blank=True,
help_text="Identificatie van het adres bij de Basisregistratie Adressen en Gebouwen.",
max_length=255,
verbose_name="nummeraanduiding ID",
),
),
]
16 changes: 16 additions & 0 deletions src/openklant/components/contactgegevens/mixins.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,14 @@


class AdresMixin(models.Model):
adres_nummeraanduiding_id = models.CharField(
_("nummeraanduiding ID"),
help_text=_(
"Identificatie van het adres bij de Basisregistratie Adressen en Gebouwen."
),
max_length=255,
blank=True,
)
adres_adresregel1 = models.CharField(
_("adresregel 1"),
help_text=_(
Expand Down Expand Up @@ -46,11 +54,19 @@ class AdresMixin(models.Model):

adres = GegevensGroepType(
{
"nummeraanduiding_id": adres_nummeraanduiding_id,
"adresregel_1": adres_adresregel1,
"adresregel_2": adres_adresregel2,
"adresregel_3": adres_adresregel3,
"land": adres_land,
},
optional=(
"nummeraanduiding_id",
"adresregel_1",
"adresregel_2",
"adresregel_3",
"land",
),
)

class Meta:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -123,13 +123,39 @@ class Meta:
model = Betrokkene
gegevensgroep = "bezoekadres"

def validate(self, attrs):
if any(attrs.values()):
if not attrs.get("nummeraanduiding_id"):
raise serializers.ValidationError(
{
"nummeraanduiding_id": _(
"nummeraanduiding_id is verplicht wanneer het bezoekadres ingevuld is."
),
}
)

return super().validate(attrs)


class CorrespondentieadresSerializer(GegevensGroepSerializer):
class Meta:
model = Betrokkene
gegevensgroep = "correspondentieadres"
ref_name = "betrokkene correspondentieadres"

def validate(self, attrs):
if any(attrs.values()):
if not attrs.get("nummeraanduiding_id"):
raise serializers.ValidationError(
{
"nummeraanduiding_id": _(
"nummeraanduiding_id is verplicht wanneer het correspondentieadres ingevuld is."
),
}
)

return super().validate(attrs)


class ContactnaamSerializer(GegevensGroepSerializer):
class Meta:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -99,13 +99,39 @@ class Meta:
model = Partij
gegevensgroep = "bezoekadres"

def validate(self, attrs):
if any(attrs.values()):
if not attrs.get("nummeraanduiding_id"):
raise serializers.ValidationError(
{
"nummeraanduiding_id": _(
"nummeraanduiding_id is verplicht wanneer het bezoekadres ingevuld is."
),
}
)

return super().validate(attrs)


class CorrespondentieadresSerializer(GegevensGroepSerializer):
class Meta:
model = Partij
gegevensgroep = "correspondentieadres"
ref_name = "partij correspondentieadres serializer"

def validate(self, attrs):
if any(attrs.values()):
if not attrs.get("nummeraanduiding_id"):
raise serializers.ValidationError(
{
"nummeraanduiding_id": _(
"nummeraanduiding_id is verplicht wanneer het correspondentieadres ingevuld is."
),
}
)

return super().validate(attrs)


class OrganisatieSerializer(serializers.ModelSerializer):
class Meta:
Expand Down

0 comments on commit cc4d645

Please sign in to comment.