Skip to content

Commit

Permalink
[#1764] Limit haalcentraal api requests to subset of available fields
Browse files Browse the repository at this point in the history
  • Loading branch information
pi-sigma committed Dec 14, 2023
1 parent 295c967 commit 00aff2b
Show file tree
Hide file tree
Showing 6 changed files with 35 additions and 106 deletions.
3 changes: 2 additions & 1 deletion src/open_inwoner/accounts/tests/test_profile_views.py
Original file line number Diff line number Diff line change
Expand Up @@ -699,6 +699,7 @@ def setUp(self):
self.expected_response.gender,
self.expected_response.street,
self.expected_response.get_housenumber(),
# self.expected_response.housenumbersuffix,
self.expected_response.postal_code,
self.expected_response.city,
# self.expected_response.country,
Expand Down Expand Up @@ -767,7 +768,7 @@ def test_wrong_date_format_shows_birthday_none_brp_v_1_3(self, m):
content=self.load_binary_mock("personen_1.3.yaml"),
)
m.get(
"https://personen/api/brp/ingeschrevenpersonen/999993847?fields=geslachtsaanduiding,naam,geboorte,verblijfplaats",
"https://personen/api/brp/ingeschrevenpersonen/999993847?fields=geslachtsaanduiding,naam.voornamen,naam.geslachtsnaam,naam.voorletters,naam.voorvoegsel,verblijfplaats.straat,verblijfplaats.huisletter,verblijfplaats.huisnummertoevoeging,verblijfplaats.woonplaats,verblijfplaats.postcode,verblijfplaats.land.omschrijving,geboorte.datum.datum,geboorte.plaats.omschrijving",
status_code=200,
json={
"naam": {
Expand Down
34 changes: 26 additions & 8 deletions src/open_inwoner/haalcentraal/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,12 @@ def fetch_data(self, user_bsn: str) -> Optional[dict]:
request_kwargs=dict(
headers=headers,
params={
"fields": "geslachtsaanduiding,naam,geboorte,verblijfplaats"
"fields": "geslachtsaanduiding,"
"naam.voornamen,naam.geslachtsnaam,naam.voorletters,naam.voorvoegsel,"
"verblijfplaats.straat,verblijfplaats.huisletter,"
"verblijfplaats.huisnummertoevoeging,verblijfplaats.woonplaats,"
"verblijfplaats.postcode,verblijfplaats.land.omschrijving,"
"geboorte.datum.datum,geboorte.plaats.omschrijving"
},
verify=False,
),
Expand All @@ -91,6 +96,7 @@ def parse_data(self, data: dict) -> Optional[BRPData]:
brp = BRPData(
first_name=glom(data, "naam.voornamen", default=""),
infix=glom(data, "naam.voorvoegsel", default=""),
initials=glom(data, "naam.voorletters", default=""),
last_name=glom(data, "naam.geslachtsnaam", default=""),
street=glom(data, "verblijfplaats.straat", default=""),
housenumber=str(glom(data, "verblijfplaats.huisnummer", default="")),
Expand All @@ -99,13 +105,12 @@ def parse_data(self, data: dict) -> Optional[BRPData]:
data, "verblijfplaats.huisnummertoevoeging", default=""
),
city=glom(data, "verblijfplaats.woonplaats", default=""),
postal_code=glom(data, "verblijfplaats.postcode", default=""),
country=glom(data, "verblijfplaats.land.omschrijving", default=""),
birthday=self.glom_date(data, "geboorte.datum.datum", default=None),
# extra fields
initials=glom(data, "naam.voorletters", default=""),
birth_place=glom(data, "geboorte.plaats.omschrijving", default=""),
gender=glom(data, "geslachtsaanduiding", default=""),
postal_code=glom(data, "verblijfplaats.postcode", default=""),
country=glom(data, "verblijfplaats.land.omschrijving", default=""),
)
return brp

Expand All @@ -120,7 +125,21 @@ def fetch_data(self, user_bsn: str) -> Optional[dict]:
operation_id="GetPersonen",
url=url,
data={
"fields": ["geslacht", "naam", "geboorte", "verblijfplaats"],
"fields": [
"naam.geslachtsnaam",
"naam.voorletters",
"naam.voornamen",
"naam.voorvoegsel",
"geslacht.omschrijving",
"geboorte.plaats.omschrijving",
"geboorte.datum.datum",
"verblijfplaats.verblijfadres.officieleStraatnaam",
"verblijfplaats.verblijfadres.huisnummer",
"verblijfplaats.verblijfadres.huisletter",
"verblijfplaats.verblijfadres.huisnummertoevoeging",
"verblijfplaats.verblijfadres.postcode",
"verblijfplaats.verblijfadres.woonplaats",
],
"type": "RaadpleegMetBurgerservicenummer",
"burgerservicenummer": [user_bsn],
},
Expand All @@ -143,6 +162,7 @@ def parse_data(self, data: dict) -> Optional[BRPData]:
first_name=glom(data, "naam.voornamen", default=""),
infix=glom(data, "naam.voorvoegsel", default=""),
last_name=glom(data, "naam.geslachtsnaam", default=""),
initials=glom(data, "naam.voorletters", default=""),
street=glom(
data, "verblijfplaats.verblijfadres.officieleStraatnaam", default=""
),
Expand All @@ -156,12 +176,10 @@ def parse_data(self, data: dict) -> Optional[BRPData]:
data, "verblijfplaats.verblijfadres.huisnummertoevoeging", default=""
),
city=glom(data, "verblijfplaats.verblijfadres.woonplaats", default=""),
postal_code=glom(data, "verblijfplaats.verblijfadres.postcode", default=""),
birthday=self.glom_date(data, "geboorte.datum.datum", default=None),
# extra fields
initials=glom(data, "naam.voorletters", default=""),
birth_place=glom(data, "geboorte.plaats.omschrijving", default=""),
gender=glom(data, "geslacht.omschrijving", default=""),
postal_code=glom(data, "verblijfplaats.verblijfadres.postcode", default=""),
# we don't have country in 2.x (address defaults to Nederland)
# country=glom(data, "verblijfplaats.land.omschrijving", default=""),
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,52 +6,19 @@
},
"geslachtsaanduiding": "vrouw",
"naam": {
"aanhef": "Geachte mevrouw Kooyman",
"aanschrijfwijze": "M. de Kooyman",
"gebruikInLopendeTekst": "mevrouw de Kooyman",
"aanduidingNaamgebruik": "eigen",
"voornamen": "Merel",
"voorletters": "M.",
"voorvoegsel": "de",
"geslachtsnaam": "Kooyman"
},
"verblijfplaats": {
"functieAdres": "woonadres",
"adresseerbaarObjectIdentificatie": "0518010000631274",
"nummeraanduidingIdentificatie": "0518200000631273",
"korteNaam": "King Olivereiland",
"datumIngangGeldigheid": {
"datum": "2011-11-01",
"jaar": 2011,
"maand": 11,
"dag": 1
},
"gemeenteVanInschrijving": {
"code": "0518",
"omschrijving": "'s-Gravenhage"
},
"datumAanvangAdreshouding": {
"datum": "2001-02-15",
"jaar": 2001,
"maand": 2,
"dag": 15
},
"datumInschrijvingInGemeente": {
"datum": "2001-02-15",
"jaar": 2001,
"maand": 2,
"dag": 15
},
"adresregel1": "King Olivereiland 64",
"adresregel2": "2551JV 's-Gravenhage",
"straat": "King Olivereiland",
"huisnummer": 64,
"postcode": "2551JV",
"woonplaats": "'s-Gravenhage"
},
"geboorte": {
"plaats": { "code": "0545", "omschrijving": "Leerdam" },
"land": { "code": "6030", "omschrijving": "Nederland" },
"datum": { "datum": "1982-04-10", "jaar": 1982, "maand": 4, "dag": 10 }
"plaats": { "omschrijving": "Leerdam" },
"datum": { "datum": "1982-04-10" }
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,84 +3,28 @@
"personen": [
{
"geslacht": {
"code": "V",
"omschrijving": "vrouw"
},
"naam": {
"aanduidingNaamgebruik": {
"code": "E",
"omschrijving": "eigen geslachtsnaam"
},
"voornamen": "Merel",
"geslachtsnaam": "Kooyman",
"voorletters": "M.",
"voorvoegsel": "de",
"volledigeNaam": "Merel Kooyman"
"voorvoegsel": "de"
},
"geboorte": {
"land": {
"code": "6030",
"omschrijving": "Nederland"
},
"plaats": {
"code": "0545",
"omschrijving": "Leerdam"
},
"datum": {
"type": "Datum",
"datum": "1982-04-10",
"langFormaat": "10 april 1982"
"datum": "1982-04-10"
}
},
"verblijfplaats": {
"type": "Adres",
"verblijfadres": {
"officieleStraatnaam": "King Olivereiland",
"korteStraatnaam": "King Olivereiland",
"huisnummer": 64,
"postcode": "2551JV",
"woonplaats": "'s-Gravenhage",
"inOnderzoek": {
"aanduidingBijHuisnummer": true,
"huisletter": true,
"huisnummer": true,
"huisnummertoevoeging": true,
"officieleStraatnaam": true,
"postcode": true,
"korteStraatnaam": true,
"woonplaats": true,
"datumIngangOnderzoek": {
"type": "Datum",
"datum": "2001-02-20",
"langFormaat": "20 februari 2001"
}
}
},
"functieAdres": {
"code": "W",
"omschrijving": "woonadres"
},
"adresseerbaarObjectIdentificatie": "0518010000781379",
"nummeraanduidingIdentificatie": "0518200000781378",
"datumVan": {
"type": "Datum",
"datum": "2001-02-15",
"langFormaat": "15 februari 2001"
},
"datumIngangGeldigheid": {
"type": "Datum",
"datum": "2009-11-01",
"langFormaat": "1 november 2009"
},
"inOnderzoek": {
"type": true,
"datumIngangOnderzoek": {
"type": "Datum",
"datum": "2001-02-20",
"langFormaat": "20 februari 2001"
},
"nummeraanduidingIdentificatie": true,
"adresseerbaarObjectIdentificatie": true
"woonplaats": "'s-Gravenhage"
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion src/open_inwoner/haalcentraal/tests/mixins.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ def _setUpMocks_v_1_3(self, m):
content=self.load_binary_mock("personen_1.3.yaml"),
)
m.get(
"https://personen/api/brp/ingeschrevenpersonen/999993847?fields=geslachtsaanduiding,naam,geboorte,verblijfplaats",
"https://personen/api/brp/ingeschrevenpersonen/999993847?fields=geslachtsaanduiding,naam.voornamen,naam.geslachtsnaam,naam.voorletters,naam.voorvoegsel,verblijfplaats.straat,verblijfplaats.huisletter,verblijfplaats.huisnummertoevoeging,verblijfplaats.woonplaats,verblijfplaats.postcode,verblijfplaats.land.omschrijving,geboorte.datum.datum,geboorte.plaats.omschrijving",
status_code=200,
json=self.load_json_mock("ingeschrevenpersonen.999993847_1.3.json"),
)
Expand Down
3 changes: 1 addition & 2 deletions src/open_inwoner/templates/pages/profile/me.html
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,8 @@ <h1 class="h1 tabled__title">{% trans "Welkom" %}, {{ user.first_name }}</h1>
<h2 class="h2 title" id="personal-overview">{% trans "Persoonlijke gegevens" %}
<div class="tabled__item--force-right tabled__item--mobile-big">
{% button href="profile:edit" text=_("Bewerken") icon="edit" transparent=True %}
{% if user.is_digid_user_with_brp and view.config.my_data %}
{% button href="profile:data" text=_("My details") icon="info" transparent=True icon_outlined=True %}
{% elif not user.is_digid_user %}
{% if not user.is_digid_user %}
{% button href="password_change" text=_("Password") icon="key" transparent=True %}
{% endif %}
</div>
Expand Down

0 comments on commit 00aff2b

Please sign in to comment.