def test_convert_empty_instances(self): original_dict = { "key": OrderedDict(), "nested_dict": { "nested_key": OrderedDict(), }, } expected_dict = { "key": None, "nested_dict": { "nested_key": None, }, } convert_empty_instances(original_dict) self.assertEqual(original_dict, expected_dict)
def convert_response_to_nationaliteit_historie_dict(response): dict_object = xmltodict.parse(response.content) antwoord_dict_object = dict_object["soapenv:Envelope"]["soapenv:Body"][ "ns:npsLa01" ]["ns:antwoord"]["ns:object"]["ns:inp.heeftAlsNationaliteit"] nationaliteit_historie_dict = { "aanduidingBijzonderNederlanderschap": antwoord_dict_object[ "ns:historieMaterieel" ]["ns:aanduidingStrijdigheidNietigheid"], "datumIngangGeldigheid": { "dag": int( antwoord_dict_object["ns:historieMaterieel"]["StUF:tijdvakGeldigheid"][ "StUF:beginGeldigheid" ][settings.OPENPERSONEN_DAY_START : settings.OPENPERSONEN_DAY_END] ), "datum": antwoord_dict_object["ns:historieMaterieel"][ "StUF:tijdvakGeldigheid" ]["StUF:beginGeldigheid"], "jaar": int( antwoord_dict_object["ns:historieMaterieel"]["StUF:tijdvakGeldigheid"][ "StUF:beginGeldigheid" ][settings.OPENPERSONEN_YEAR_START : settings.OPENPERSONEN_YEAR_END] ), "maand": int( antwoord_dict_object["ns:historieMaterieel"]["StUF:tijdvakGeldigheid"][ "StUF:beginGeldigheid" ][settings.OPENPERSONEN_MONTH_START : settings.OPENPERSONEN_MONTH_END] ), }, "nationaliteit": {"code": "0000", "omschrijving": "Nederland"}, "redenOpname": { "code": antwoord_dict_object["ns:historieFormeelRelatie"][ "ns:inp.redenVerkrijging" ], "omschrijving": RedenCodeAndOmschrijving.get_omschrijving_from_code( antwoord_dict_object["ns:historieFormeelRelatie"][ "ns:inp.redenVerkrijging" ] ), }, "inOnderzoek": { "aanduidingBijzonderNederlanderschap": bool( antwoord_dict_object["ns:historieMaterieel"][ "ns:aanduidingStrijdigheidNietigheid" ] ), "nationaliteit": True, "redenOpname": bool( antwoord_dict_object["ns:historieFormeelRelatie"][ "ns:inp.redenVerkrijging" ] ), "datumIngangOnderzoek": { "dag": 0, "datum": "string", "jaar": 0, "maand": 0, }, }, "geheimhoudingPersoonsgegevens": True, "datumEindeGeldigheid": { "dag": int( antwoord_dict_object["ns:historieMaterieel"]["StUF:tijdvakGeldigheid"][ "StUF:eindGeldigheid" ][settings.OPENPERSONEN_DAY_START : settings.OPENPERSONEN_DAY_END] ), "datum": antwoord_dict_object["ns:historieMaterieel"][ "StUF:tijdvakGeldigheid" ]["StUF:eindGeldigheid"], "jaar": int( antwoord_dict_object["ns:historieMaterieel"]["StUF:tijdvakGeldigheid"][ "StUF:eindGeldigheid" ][settings.OPENPERSONEN_YEAR_START : settings.OPENPERSONEN_YEAR_END] ), "maand": int( antwoord_dict_object["ns:historieMaterieel"]["StUF:tijdvakGeldigheid"][ "StUF:eindGeldigheid" ][settings.OPENPERSONEN_MONTH_START : settings.OPENPERSONEN_MONTH_END] ), }, "redenBeeindigen": { "code": antwoord_dict_object["ns:historieFormeelRelatie"][ "ns:inp.redenVerlies" ], "omschrijving": RedenCodeAndOmschrijving.get_omschrijving_from_code( antwoord_dict_object["ns:historieFormeelRelatie"]["ns:inp.redenVerlies"] ), }, "indicatieNationaliteitBeeindigd": True, } convert_empty_instances(nationaliteit_historie_dict) return nationaliteit_historie_dict
def get_kind_instance_dict(instance_xml_dict): kind_dict = { "burgerservicenummer": instance_xml_dict.get("inp.bsn", "string"), "geheimhoudingPersoonsgegevens": instance_xml_dict.get("inp.indicatieGeheim", "string"), "naam": { "geslachtsnaam": instance_xml_dict.get("geslachtsnaam", "string"), "voorletters": instance_xml_dict.get("voorletters", "string"), "voornamen": instance_xml_dict.get("voornamen", "string"), "voorvoegsel": instance_xml_dict.get("voorvoegselGeslachtsnaam", "string"), "inOnderzoek": { "geslachtsnaam": any([ "Persoonsgegevens" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "voornamen": any([ "Persoonsgegevens" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "voorvoegsel": any([ "Persoonsgegevens" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "datumIngangOnderzoek": { "dag": None, "datum": None, "jaar": None, "maand": None, }, }, }, "geboorte": { "datum": { "dag": int( instance_xml_dict.get( "geboortedatum", "19000101")[settings.OPENPERSONEN_DAY_START:settings. OPENPERSONEN_DAY_END]) if instance_xml_dict.get("geboortedatum") and not isinstance(instance_xml_dict["geboortedatum"], dict) else None, "datum": convert_datum_to_proper_date_format( instance_xml_dict.get("geboortedatum", "19000101")) if instance_xml_dict.get("geboortedatum") and not isinstance(instance_xml_dict["geboortedatum"], dict) else None, "jaar": int( instance_xml_dict.get( "geboortedatum", "19000101")[settings.OPENPERSONEN_YEAR_START:settings. OPENPERSONEN_YEAR_END]) if instance_xml_dict.get("geboortedatum") and not isinstance(instance_xml_dict["geboortedatum"], dict) else None, "maand": int( instance_xml_dict.get( "geboortedatum", "19000101")[settings.OPENPERSONEN_MONTH_START:settings. OPENPERSONEN_MONTH_END]) if instance_xml_dict.get("geboortedatum") and not isinstance(instance_xml_dict["geboortedatum"], dict) else None, }, "land": { "code": instance_xml_dict.get("inp.geboorteLand"), "omschrijving": CountryCodeAndOmschrijving.get_omschrijving_from_code( instance_xml_dict.get("inp.geboorteLand", 0)) if instance_xml_dict.get("inp.geboorteLand") and not isinstance(instance_xml_dict.get("inp.geboorteLand"), dict) else None, }, "plaats": { "code": GemeenteCodeAndOmschrijving.get_code_from_omschrijving( instance_xml_dict.get("inp.geboorteplaats", 0)) if not isinstance(instance_xml_dict.get("inp.geboorteplaats"), dict) else 0, "omschrijving": instance_xml_dict.get("inp.geboorteplaats", "string"), }, "inOnderzoek": { "datum": any([ "Persoonsgegevens" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "land": any([ "Persoonsgegevens" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "plaats": any([ "Persoonsgegevens" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "datumIngangOnderzoek": { "dag": None, "datum": None, "jaar": None, "maand": None, }, }, }, "leeftijd": calculate_age(instance_xml_dict.get("geboortedatum", "string")), "inOnderzoek": { "burgerservicenummer": any([ "Persoonsgegevens" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get("inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "datumIngangOnderzoek": { "dag": None, "datum": None, "jaar": None, "maand": None, }, }, } convert_empty_instances(kind_dict) return kind_dict
def convert_response_to_verblijfs_titel_historie_dict(response): dict_object = xmltodict.parse(response.content) antwoord_dict_object = dict_object["soapenv:Envelope"]["soapenv:Body"][ "ns:npsLa01" ]["ns:antwoord"]["ns:object"]["ns:historieMaterieel"] verblijfs_titel_dict = { "aanduiding": { "code": "0000", "omschrijving": antwoord_dict_object["ns:vbt.aanduidingVerblijfstitel"], }, "datumEinde": { "dag": int( antwoord_dict_object["StUF:tijdvakGeldigheid"]["StUF:beginGeldigheid"][ settings.OPENPERSONEN_DAY_START : settings.OPENPERSONEN_DAY_END ] ), "datum": antwoord_dict_object["StUF:tijdvakGeldigheid"][ "StUF:beginGeldigheid" ], "jaar": int( antwoord_dict_object["StUF:tijdvakGeldigheid"]["StUF:beginGeldigheid"][ settings.OPENPERSONEN_YEAR_START : settings.OPENPERSONEN_YEAR_END ] ), "maand": int( antwoord_dict_object["StUF:tijdvakGeldigheid"]["StUF:beginGeldigheid"][ settings.OPENPERSONEN_MONTH_START : settings.OPENPERSONEN_MONTH_END ] ), }, "datumIngang": { "dag": int( antwoord_dict_object["StUF:tijdvakGeldigheid"]["StUF:eindGeldigheid"][ settings.OPENPERSONEN_DAY_START : settings.OPENPERSONEN_DAY_END ] ), "datum": antwoord_dict_object["StUF:tijdvakGeldigheid"][ "StUF:eindGeldigheid" ], "jaar": int( antwoord_dict_object["StUF:tijdvakGeldigheid"]["StUF:eindGeldigheid"][ settings.OPENPERSONEN_YEAR_START : settings.OPENPERSONEN_YEAR_END ] ), "maand": int( antwoord_dict_object["StUF:tijdvakGeldigheid"]["StUF:eindGeldigheid"][ settings.OPENPERSONEN_MONTH_START : settings.OPENPERSONEN_MONTH_END ] ), }, "inOnderzoek": { "aanduiding": bool(antwoord_dict_object["ns:vbt.aanduidingVerblijfstitel"]), "datumEinde": bool( antwoord_dict_object["StUF:tijdvakGeldigheid"]["StUF:eindGeldigheid"] ), "datumIngang": bool( antwoord_dict_object["StUF:tijdvakGeldigheid"]["StUF:beginGeldigheid"] ), "datumIngangOnderzoek": { "dag": 0, "datum": "string", "jaar": 0, "maand": 0, }, }, "geheimhoudingPersoonsgegevens": True, } convert_empty_instances(verblijfs_titel_dict) return verblijfs_titel_dict
def get_persoon_instance_dict(instance_xml_dict): ingeschreven_persoon_dict = { "burgerservicenummer": instance_xml_dict.get("inp.bsn", "string"), "geheimhoudingPersoonsgegevens": instance_xml_dict.get("inp.indicatieGeheim", "string"), "naam": { "geslachtsnaam": instance_xml_dict.get("geslachtsnaam", "string"), "voorletters": instance_xml_dict.get("voorletters", "string"), "voornamen": instance_xml_dict.get("voornamen", "string"), "voorvoegsel": instance_xml_dict.get("voorvoegselGeslachtsnaam", "string"), "inOnderzoek": { "geslachtsnaam": any([ "Persoonsgegevens" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "voornamen": any([ "Persoonsgegevens" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "voorvoegsel": any([ "Persoonsgegevens" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "datumIngangOnderzoek": { "dag": None, "datum": None, "jaar": None, "maand": None, }, }, "aanduidingNaamgebruik": instance_xml_dict.get("aanduidingNaamgebruik", "string"), }, "geboorte": { "datum": { "dag": int( instance_xml_dict.get( "geboortedatum", "19000101")[settings.OPENPERSONEN_DAY_START:settings. OPENPERSONEN_DAY_END]) if instance_xml_dict.get("geboortedatum") and not isinstance(instance_xml_dict["geboortedatum"], dict) else None, "datum": convert_datum_to_proper_date_format( instance_xml_dict.get("geboortedatum")) if instance_xml_dict.get("geboortedatum") and not isinstance(instance_xml_dict["geboortedatum"], dict) else None, "jaar": int( instance_xml_dict.get( "geboortedatum", "19000101")[settings.OPENPERSONEN_YEAR_START:settings. OPENPERSONEN_YEAR_END]) if instance_xml_dict.get("geboortedatum") and not isinstance(instance_xml_dict["geboortedatum"], dict) else None, "maand": int( instance_xml_dict.get( "geboortedatum", "19000101")[settings.OPENPERSONEN_MONTH_START:settings. OPENPERSONEN_MONTH_END]) if instance_xml_dict.get("geboortedatum") and not isinstance(instance_xml_dict["geboortedatum"], dict) else None, }, "land": { "code": instance_xml_dict.get("inp.geboorteLand"), "omschrijving": CountryCodeAndOmschrijving.get_omschrijving_from_code( instance_xml_dict.get("inp.geboorteLand")) if instance_xml_dict.get("inp.geboorteLand") and not isinstance(instance_xml_dict.get("inp.geboorteLand"), dict) else None, }, "plaats": { "code": GemeenteCodeAndOmschrijving.get_code_from_omschrijving( instance_xml_dict.get("inp.geboorteplaats", 0)) if not isinstance(instance_xml_dict.get("inp.geboorteplaats"), dict) else 0, "omschrijving": instance_xml_dict.get("inp.geboorteplaats", "string"), }, "inOnderzoek": { "datum": any([ "Persoonsgegevens" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "land": any([ "Persoonsgegevens" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "plaats": any([ "Persoonsgegevens" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "datumIngangOnderzoek": { "dag": None, "datum": None, "jaar": None, "maand": None, }, }, }, "geslachtsaanduiding": instance_xml_dict.get("geslachtsaanduiding", "string"), "leeftijd": calculate_age(instance_xml_dict.get("geboortedatum", "string")), "datumEersteInschrijvingGBA": { "dag": int( instance_xml_dict.get("inp.datumInschrijving", "19000101") [settings.OPENPERSONEN_DAY_START:settings.OPENPERSONEN_DAY_END] ) if instance_xml_dict.get("inp.datumInschrijving") and not isinstance(instance_xml_dict["inp.datumInschrijving"], dict) else None, "datum": convert_datum_to_proper_date_format( instance_xml_dict.get("inp.datumInschrijving")) if instance_xml_dict.get("inp.datumInschrijving") and not isinstance(instance_xml_dict["inp.datumInschrijving"], dict) else None, "jaar": int( instance_xml_dict.get( "inp.datumInschrijving", "19000101")[settings.OPENPERSONEN_YEAR_START:settings. OPENPERSONEN_YEAR_END]) if instance_xml_dict.get("inp.datumInschrijving") and not isinstance(instance_xml_dict["inp.datumInschrijving"], dict) else None, "maand": int( instance_xml_dict.get( "inp.datumInschrijving", "19000101")[settings.OPENPERSONEN_MONTH_START:settings. OPENPERSONEN_MONTH_END]) if instance_xml_dict.get("inp.datumInschrijving") and not isinstance( instance_xml_dict["inp.datumInschrijving"], dict) else None, }, "kiesrecht": { "europeesKiesrecht": instance_xml_dict.get("ing.aanduidingEuropeesKiesrecht") == "2", "uitgeslotenVanKiesrecht": instance_xml_dict.get("ing.aanduidingUitgeslotenKiesrecht") == "A", "einddatumUitsluitingEuropeesKiesrecht": { "dag": None, "datum": None, "jaar": None, "maand": None, }, "einddatumUitsluitingKiesrecht": { "dag": None, "datum": None, "jaar": None, "maand": None, }, }, "inOnderzoek": { "burgerservicenummer": any([ "Persoonsgegevens" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get("inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "geslachtsaanduiding": any([ "Persoonsgegevens" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get("inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "datumIngangOnderzoek": { "dag": None, "datum": None, "jaar": None, "maand": None, }, }, "nationaliteit": [{ "aanduidingBijzonderNederlanderschap": instance_xml_dict.get("inp.aanduidingBijzonderNederlanderschap", "string") if not isinstance( instance_xml_dict.get( "inp.aanduidingBijzonderNederlanderschap"), dict, ) else 1, "datumIngangGeldigheid": { "dag": int( instance_xml_dict.get("inp.heeftAlsNationaliteit", {}).get( "inp.datumVerkrijging", "19000101")[settings.OPENPERSONEN_DAY_START:settings. OPENPERSONEN_DAY_END]) if instance_xml_dict.get("inp.heeftAlsNationaliteit", {}).get("inp.datumVerkrijging") and not isinstance( instance_xml_dict.get("inp.heeftAlsNationaliteit", {})["inp.datumVerkrijging"], dict, ) else None, "datum": convert_datum_to_proper_date_format( instance_xml_dict.get("inp.heeftAlsNationaliteit", {}).get("inp.datumVerkrijging")) if instance_xml_dict.get("inp.heeftAlsNationaliteit", {}).get("inp.datumVerkrijging") and not isinstance( instance_xml_dict.get("inp.heeftAlsNationaliteit", {})["inp.datumVerkrijging"], dict, ) else None, "jaar": int( instance_xml_dict.get("inp.heeftAlsNationaliteit", {}).get( "inp.datumVerkrijging", "19000101")[settings.OPENPERSONEN_YEAR_START:settings. OPENPERSONEN_YEAR_END]) if instance_xml_dict.get("inp.heeftAlsNationaliteit", {}).get("inp.datumVerkrijging") and not isinstance( instance_xml_dict.get("inp.heeftAlsNationaliteit", {})["inp.datumVerkrijging"], dict, ) else None, "maand": int( instance_xml_dict.get("inp.heeftAlsNationaliteit", {}).get( "inp.datumVerkrijging", "19000101")[settings.OPENPERSONEN_MONTH_START:settings. OPENPERSONEN_MONTH_END]) if instance_xml_dict.get("inp.heeftAlsNationaliteit", {}).get("inp.datumVerkrijging") and not isinstance( instance_xml_dict.get("inp.heeftAlsNationaliteit", {})["inp.datumVerkrijging"], dict, ) else None, }, "nationaliteit": { "code": instance_xml_dict.get("inp.heeftAlsNationaliteit", {}).get("gerelateerde", {}).get("code"), "omschrijving": instance_xml_dict.get("inp.heeftAlsNationaliteit", {}).get("gerelateerde", {}).get("omschrijving"), }, "redenOpname": { "code": instance_xml_dict.get("inp.heeftAlsNationaliteit", {}).get( "inp.redenVerkrijging", ".") if not isinstance( instance_xml_dict.get("inp.heeftAlsNationaliteit", {}).get("inp.redenVerkrijging"), dict, ) else "string", "omschrijving": RedenCodeAndOmschrijving.get_omschrijving_from_code( instance_xml_dict.get("inp.heeftAlsNationaliteit", {}).get( "inp.redenVerkrijging", 0)) if not isinstance( instance_xml_dict.get("inp.heeftAlsNationaliteit", {}).get("inp.redenVerkrijging"), dict, ) else 0, }, "inOnderzoek": { "aanduidingBijzonderNederlanderschap": any([ "aanduidingBijzonderNederlanderschap" == in_onderzoek.get( "elementnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "nationaliteit": any([ "Nationaliteit" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "redenOpname": False, "datumIngangOnderzoek": { "dag": None, "datum": None, "jaar": None, "maand": None, }, }, }], "opschortingBijhouding": { "reden": instance_xml_dict.get("inp.redenOpschortingBijhouding", "string"), "datum": { "dag": int( instance_xml_dict.get( "inp.datumOpschortingBijhouding", "19000101")[settings.OPENPERSONEN_DAY_START:settings. OPENPERSONEN_DAY_END]) if instance_xml_dict.get("inp.datumOpschortingBijhouding") and not isinstance( instance_xml_dict.get("inp.datumOpschortingBijhouding"), dict) else None, "datum": convert_datum_to_proper_date_format( instance_xml_dict.get("inp.datumOpschortingBijhouding")) if instance_xml_dict.get("inp.datumOpschortingBijhouding") and not isinstance( instance_xml_dict.get("inp.datumOpschortingBijhouding"), dict) else None, "jaar": int( instance_xml_dict.get( "inp.datumOpschortingBijhouding", "19000101")[settings.OPENPERSONEN_YEAR_START:settings. OPENPERSONEN_YEAR_END]) if instance_xml_dict.get("inp.datumOpschortingBijhouding") and not isinstance( instance_xml_dict.get("inp.datumOpschortingBijhouding"), dict) else None, "maand": int( instance_xml_dict.get( "inp.datumOpschortingBijhouding", "19000101")[settings.OPENPERSONEN_MONTH_START:settings. OPENPERSONEN_MONTH_END]) if instance_xml_dict.get("inp.datumOpschortingBijhouding") and not isinstance( instance_xml_dict.get("inp.datumOpschortingBijhouding"), dict) else None, }, }, "overlijden": { "indicatieOverleden": instance_xml_dict.get("inp.redenOpschortingBijhouding") == "O", "datum": { "dag": int( instance_xml_dict.get( "overlijdensdatum", "19000101")[settings.OPENPERSONEN_DAY_START:settings. OPENPERSONEN_DAY_END]) if instance_xml_dict.get("overlijdensdatum") and not isinstance(instance_xml_dict["overlijdensdatum"], dict) else None, "datum": convert_datum_to_proper_date_format( instance_xml_dict.get("overlijdensdatum")) if instance_xml_dict.get("overlijdensdatum") and not isinstance(instance_xml_dict["overlijdensdatum"], dict) else None, "jaar": int( instance_xml_dict.get( "overlijdensdatum", "19000101")[settings.OPENPERSONEN_YEAR_START:settings. OPENPERSONEN_YEAR_END]) if instance_xml_dict.get("overlijdensdatum") and not isinstance(instance_xml_dict["overlijdensdatum"], dict) else None, "maand": int( instance_xml_dict.get( "overlijdensdatum", "19000101")[settings.OPENPERSONEN_MONTH_START:settings. OPENPERSONEN_MONTH_END]) if instance_xml_dict.get("overlijdensdatum") and not isinstance(instance_xml_dict["overlijdensdatum"], dict) else None, }, "land": { "code": instance_xml_dict.get("inp.overlijdenLand") if not isinstance(instance_xml_dict.get("overlijdensdatum"), dict) else None, "omschrijving": CountryCodeAndOmschrijving.get_omschrijving_from_code( instance_xml_dict.get("inp.overlijdenLand")) if instance_xml_dict.get("inp.overlijdenLand") and not isinstance(instance_xml_dict.get("inp.overlijdenLand"), dict) else None, }, "plaats": { "code": GemeenteCodeAndOmschrijving.get_code_from_omschrijving( instance_xml_dict.get("inp.overlijdenplaats", 0)) if not isinstance(instance_xml_dict.get("inp.overlijdenplaats"), dict) else 0, "omschrijving": (instance_xml_dict.get("inp.overlijdenplaats", "string")), }, "inOnderzoek": { "datum": any([ "Overlijden" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "land": any([ "Overlijden" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "plaats": any([ "Overlijden" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "datumIngangOnderzoek": { "dag": None, "datum": None, "jaar": None, "maand": None, }, }, }, "verblijfplaats": { "functieAdres": "woonadres", "huisletter": instance_xml_dict.get("verblijfsadres", {}).get("aoa.huisletter", "string"), "huisnummer": instance_xml_dict.get("verblijfsadres", {}).get("aoa.huisnummer", "string"), "huisnummertoevoeging": instance_xml_dict.get("verblijfsadres", {}).get("aoa.huisnummertoevoeging", "string"), "aanduidingBijHuisnummer": None, "identificatiecodeNummeraanduiding": instance_xml_dict.get("verblijfsadres", {}).get("aoa.identificatie", "string"), "naamOpenbareRuimte": instance_xml_dict.get("verblijfsadres", {}).get("gor.openbareRuimteNaam", "string"), "postcode": instance_xml_dict.get("verblijfsadres", {}).get("aoa.postcode", "string"), "woonplaatsnaam": instance_xml_dict.get("verblijfsadres", {}).get("wpl.woonplaatsNaam", "string"), "identificatiecodeAdresseerbaarObject": instance_xml_dict.get("verblijfsadres", {}).get("wpl.identificatie", "string"), "indicatieVestigingVanuitBuitenland": True, "locatiebeschrijving": instance_xml_dict.get("verblijfsadres", {}).get("inp.locatiebeschrijving", "string"), "straatnaam": instance_xml_dict.get("verblijfsadres", {}).get("gor.straatnaam", "string"), "vanuitVertrokkenOnbekendWaarheen": True, "datumAanvangAdreshouding": { "dag": int( instance_xml_dict.get("verblijfsadres", {}).get( "begindatumVerblijf", "19000101")[settings.OPENPERSONEN_DAY_START:settings. OPENPERSONEN_DAY_END]) if instance_xml_dict.get("verblijfsadres", {}).get("begindatumVerblijf") and not isinstance( instance_xml_dict.get("verblijfsadres", {})["begindatumVerblijf"], dict, ) else None, "datum": convert_datum_to_proper_date_format( instance_xml_dict.get("verblijfsadres", {}).get("begindatumVerblijf")) if instance_xml_dict.get("verblijfsadres", {}).get("begindatumVerblijf") and not isinstance( instance_xml_dict.get("verblijfsadres", {})["begindatumVerblijf"], dict, ) else None, "jaar": int( instance_xml_dict.get("verblijfsadres", {}).get( "begindatumVerblijf", "19000101")[settings.OPENPERSONEN_YEAR_START:settings. OPENPERSONEN_YEAR_END]) if instance_xml_dict.get("verblijfsadres", {}).get("begindatumVerblijf") and not isinstance( instance_xml_dict.get("verblijfsadres", {})["begindatumVerblijf"], dict, ) else None, "maand": int( instance_xml_dict.get("verblijfsadres", {}).get( "begindatumVerblijf", "19000101")[settings.OPENPERSONEN_MONTH_START:settings. OPENPERSONEN_MONTH_END]) if instance_xml_dict.get("verblijfsadres", {}).get("begindatumVerblijf") and not isinstance( instance_xml_dict.get("verblijfsadres", {})["begindatumVerblijf"], dict, ) else None, }, "datumIngangGeldigheid": { "dag": int( instance_xml_dict.get("inp.verblijftIn", {}).get( "gerelateerde", {}).get("ingangsdatumObject", "19000101") [settings.OPENPERSONEN_DAY_START:settings. OPENPERSONEN_DAY_END]) if instance_xml_dict.get("inp.verblijftIn", {}).get( "gerelateerde", {}).get("ingangsdatumObject") and not isinstance( instance_xml_dict.get("inp.verblijftIn", {}).get( "gerelateerde", {})["ingangsdatumObject"], dict, ) else None, "datum": convert_datum_to_proper_date_format( instance_xml_dict.get("inp.verblijftIn", {}).get( "gerelateerde", {}).get("ingangsdatumObject")) if instance_xml_dict.get("inp.verblijftIn", {}).get( "gerelateerde", {}).get("ingangsdatumObject") and not isinstance( instance_xml_dict.get("inp.verblijftIn", {}).get( "gerelateerde", {})["ingangsdatumObject"], dict, ) else None, "jaar": int( instance_xml_dict.get("inp.verblijftIn", {}).get( "gerelateerde", {}).get("ingangsdatumObject", "19000101") [settings.OPENPERSONEN_YEAR_START:settings. OPENPERSONEN_YEAR_END]) if instance_xml_dict.get("inp.verblijftIn", {}).get( "gerelateerde", {}).get("ingangsdatumObject") and not isinstance( instance_xml_dict.get("inp.verblijftIn", {}).get( "gerelateerde", {})["ingangsdatumObject"], dict, ) else None, "maand": int( instance_xml_dict.get("inp.verblijftIn", {}).get( "gerelateerde", {}).get("ingangsdatumObject", "19000101") [settings.OPENPERSONEN_MONTH_START:settings. OPENPERSONEN_MONTH_END]) if instance_xml_dict.get("inp.verblijftIn", {}).get( "gerelateerde", {}).get("ingangsdatumObject") and not isinstance( instance_xml_dict.get("inp.verblijftIn", {}).get( "gerelateerde", {})["ingangsdatumObject"], dict, ) else None, }, "datumInschrijvingInGemeente": { "dag": None, "datum": None, "jaar": None, "maand": None, }, "datumVestigingInNederland": { "dag": None, "datum": None, "jaar": None, "maand": None, }, "gemeenteVanInschrijving": { "code": instance_xml_dict.get("inp.verblijftIn", {}).get("gerelateerde", {}).get("gemeenteCode"), "omschrijving": instance_xml_dict.get("inp.verblijftIn", {}).get("gerelateerde", {}).get("gemeenteNaam"), }, "landVanwaarIngeschreven": { "code": "", "omschrijving": "" }, "verblijfBuitenland": { "adresRegel1": instance_xml_dict.get("sub.verblijfBuitenland", {}).get("sub.adresBuitenland1"), "adresRegel2": instance_xml_dict.get("sub.verblijfBuitenland", {}).get("sub.adresBuitenland2"), "adresRegel3": instance_xml_dict.get("sub.verblijfBuitenland", {}).get("sub.adresBuitenland3"), "vertrokkenOnbekendWaarheen": True, "land": { "code": instance_xml_dict.get("sub.verblijfBuitenland", {}).get("lnd.landcode"), "omschrijving": CountryCodeAndOmschrijving.get_omschrijving_from_code( instance_xml_dict.get("sub.verblijfBuitenland", {}).get("lnd.landcode", 0)) if not isinstance( instance_xml_dict.get("sub.verblijfBuitenland", {}).get("lnd.landcode"), dict, ) else None, }, }, "inOnderzoek": { "aanduidingBijHuisnummer": False, "datumAanvangAdreshouding": False, "datumIngangGeldigheid": False, "datumInschrijvingInGemeente": False, "datumVestigingInNederland": False, "functieAdres": False, "gemeenteVanInschrijving": False, "huisletter": any([ "Verblijfplaats" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "huisnummer": any([ "Verblijfplaats" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "huisnummertoevoeging": any([ "Verblijfplaats" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "identificatiecodeNummeraanduiding": any([ "Verblijfplaats" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "identificatiecodeAdresseerbaarObject": any([ "Verblijfplaats" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "landVanwaarIngeschreven": any([ "Verblijfplaats" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "locatiebeschrijving": any([ "Verblijfplaats" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "naamOpenbareRuimte": any([ "Verblijfplaats" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "postcode": any([ "Verblijfplaats" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "straatnaam": any([ "Verblijfplaats" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "verblijfBuitenland": any([ "Verblijfplaats" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "woonplaatsnaam": any([ "Verblijfplaats" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "datumIngangOnderzoek": { "dag": None, "datum": None, "jaar": None, "maand": None, }, }, }, "gezagsverhouding": { "indicatieCurateleRegister": instance_xml_dict.get("ing.indicatieCurateleRegister", False), "indicatieGezagMinderjarige": instance_xml_dict.get("ing.indicatieGezagMinderjarige", False), "inOnderzoek": { "indicatieCurateleRegister": any([ "Gezagsverhouding" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "indicatieGezagMinderjarige": any([ "Gezagsverhouding" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "datumIngangOnderzoek": { "dag": None, "datum": None, "jaar": None, "maand": None, }, }, }, "verblijfstitel": { "aanduiding": { "code": instance_xml_dict.get("vbt.aanduidingVerblijfstitel"), "omschrijving": None, }, "datumEinde": { "dag": int( instance_xml_dict.get( "ing.datumVerliesVerblijfstitel", "19000101")[settings.OPENPERSONEN_DAY_START:settings. OPENPERSONEN_DAY_END]) if instance_xml_dict.get("ing.datumVerliesVerblijfstitel") and not isinstance( instance_xml_dict["ing.datumVerliesVerblijfstitel"], dict, ) else None, "datum": convert_datum_to_proper_date_format( instance_xml_dict.get("ing.datumVerliesVerblijfstitel", "19000101")) if instance_xml_dict.get("ing.datumVerliesVerblijfstitel") and not isinstance( instance_xml_dict["ing.datumVerliesVerblijfstitel"], dict, ) else None, "jaar": int( instance_xml_dict.get( "ing.datumVerliesVerblijfstitel", "19000101")[settings.OPENPERSONEN_YEAR_START:settings. OPENPERSONEN_YEAR_END]) if instance_xml_dict.get("ing.datumVerliesVerblijfstitel") and not isinstance( instance_xml_dict["ing.datumVerliesVerblijfstitel"], dict, ) else None, "maand": int( instance_xml_dict.get( "ing.datumVerliesVerblijfstitel", "19000101")[settings.OPENPERSONEN_MONTH_START:settings. OPENPERSONEN_MONTH_END]) if instance_xml_dict.get("ing.datumVerliesVerblijfstitel") and not isinstance( instance_xml_dict["ing.datumVerliesVerblijfstitel"], dict, ) else None, }, "datumIngang": { "dag": int( instance_xml_dict.get( "ing.datumVerkrijgingVerblijfstitel", "19000101")[settings.OPENPERSONEN_DAY_START:settings. OPENPERSONEN_DAY_END]) if instance_xml_dict.get("ing.datumVerkrijgingVerblijfstitel") and not isinstance( instance_xml_dict["ing.datumVerkrijgingVerblijfstitel"], dict, ) else None, "datum": convert_datum_to_proper_date_format( instance_xml_dict.get("ing.datumVerkrijgingVerblijfstitel", "19000101")) if instance_xml_dict.get("ing.datumVerkrijgingVerblijfstitel") and not isinstance( instance_xml_dict["ing.datumVerkrijgingVerblijfstitel"], dict, ) else None, "jaar": int( instance_xml_dict.get( "ing.datumVerkrijgingVerblijfstitel", "19000101")[settings.OPENPERSONEN_YEAR_START:settings. OPENPERSONEN_YEAR_END]) if instance_xml_dict.get("ing.datumVerkrijgingVerblijfstitel") and not isinstance( instance_xml_dict["ing.datumVerkrijgingVerblijfstitel"], dict, ) else None, "maand": int( instance_xml_dict.get( "ing.datumVerkrijgingVerblijfstitel", "19000101")[settings.OPENPERSONEN_MONTH_START:settings. OPENPERSONEN_MONTH_END]) if instance_xml_dict.get("ing.datumVerkrijgingVerblijfstitel") and not isinstance( instance_xml_dict["ing.datumVerkrijgingVerblijfstitel"], dict, ) else None, }, "inOnderzoek": { "aanduiding": any([ "aanduidingVerblijfstitel" == in_onderzoek.get( "elementnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "datumEinde": False, "datumIngang": False, "datumIngangOnderzoek": { "dag": None, "datum": None, "jaar": None, "maand": None, }, }, }, "reisdocumenten": [], } kinderen_info = instance_xml_dict["inp.heeftAlsKinderen"] ouders_info = instance_xml_dict["inp.heeftAlsOuders"] partners_info = instance_xml_dict["inp.heeftAlsEchtgenootPartner"] if not isinstance(kinderen_info, list): kinderen_info = [kinderen_info] if not isinstance(ouders_info, list): ouders_info = [ouders_info] if not isinstance(partners_info, list): partners_info = [partners_info] ingeschreven_persoon_dict["kinderen"] = [] ingeschreven_persoon_dict["ouders"] = [] ingeschreven_persoon_dict["partners"] = [] for kind_info in kinderen_info: if "gerelateerde" in kind_info: ingeschreven_persoon_dict["kinderen"].append( get_kind_instance_dict(kind_info["gerelateerde"])) for ouder_info in ouders_info: if "gerelateerde" in ouder_info: ingeschreven_persoon_dict["ouders"].append( get_ouder_instance_dict(ouder_info["gerelateerde"])) partners_title = None partners_last_name_prefix = None partners_last_name = None partners_date = None for partner_info in partners_info: if "gerelateerde" in partner_info: ingeschreven_persoon_dict["partners"].append( get_partner_instance_dict(partner_info["gerelateerde"])) if (not partners_last_name or (partner_info.get("datumOntbinding") and partners_date and partners_date > partner_info["datumSluiting"]) or (partner_info.get("datumOntbinding") is None and partners_date and partners_date < partner_info["datumSluiting"])): ( partners_title, partners_last_name_prefix, partners_last_name, partners_date, ) = _get_partner_info(partner_info) ingeschreven_persoon_dict["naam"]["aanhef"] = get_aanhef( instance_xml_dict.get("voorvoegselGeslachtsnaam"), instance_xml_dict.get("geslachtsnaam"), partners_last_name_prefix, partners_last_name, instance_xml_dict.get("aanduidingNaamgebruik"), instance_xml_dict.get("geslachtsaanduiding"), instance_xml_dict.get("adellijkeTitelPredikaat"), partners_title, ) ingeschreven_persoon_dict["naam"]["aanschrijfwijze"] = get_aanschrijfwijze( instance_xml_dict.get("voorvoegselGeslachtsnaam"), instance_xml_dict.get("geslachtsnaam"), instance_xml_dict.get("voornamen"), partners_last_name_prefix, partners_last_name, instance_xml_dict.get("aanduidingNaamgebruik"), instance_xml_dict.get("geslachtsaanduiding"), instance_xml_dict.get("adellijkeTitelPredikaat"), partners_title, ) ingeschreven_persoon_dict["naam"][ "gebruikInLopendeTekst"] = get_gebruik_in_lopende_tekst( instance_xml_dict.get("voorvoegselGeslachtsnaam"), instance_xml_dict.get("geslachtsnaam"), partners_last_name_prefix, partners_last_name, instance_xml_dict.get("aanduidingNaamgebruik"), instance_xml_dict.get("geslachtsaanduiding"), instance_xml_dict.get("adellijkeTitelPredikaat"), partners_title, ) convert_empty_instances(ingeschreven_persoon_dict) return ingeschreven_persoon_dict
def convert_response_to_verblijf_plaats_historie_dict(response): dict_object = xmltodict.parse(response.content) antwoord_dict_object = dict_object["soapenv:Envelope"]["soapenv:Body"][ "ns:npsLa01"]["ns:antwoord"]["ns:object"]["ns:inp.verblijftIn"][ "ns:historieFormeelRelatie"]["ns:gerelateerde"][ "ns:adresAanduidingGrp"] verblijf_plaats_dict = { "functieAdres": "woonadres", "huisletter": antwoord_dict_object["ns:aoa.huisletter"], "huisnummer": antwoord_dict_object["ns:aoa.huisnummer"], "huisnummertoevoeging": antwoord_dict_object["ns:aoa.huisnummertoevoeging"], "aanduidingBijHuisnummer": "tegenover", "identificatiecodeNummeraanduiding": "0518200000366054", "naamOpenbareRuimte": antwoord_dict_object["ns:gor.openbareRuimteNaam"], "postcode": antwoord_dict_object["ns:aoa.postcode"], "woonplaatsnaam": antwoord_dict_object["ns:wpl.woonplaatsNaam"], "identificatiecodeAdresseerbaarObject": "0518200000366054", "indicatieVestigingVanuitBuitenland": True, "locatiebeschrijving": "Naast de derde brug", "straatnaam": "string", "vanuitVertrokkenOnbekendWaarheen": True, "datumAanvangAdreshouding": { "dag": 0, "datum": "string", "jaar": 0, "maand": 0, }, "datumIngangGeldigheid": { "dag": 0, "datum": "string", "jaar": 0, "maand": 0, }, "datumInschrijvingInGemeente": { "dag": 0, "datum": "string", "jaar": 0, "maand": 0, }, "datumVestigingInNederland": { "dag": 0, "datum": "string", "jaar": 0, "maand": 0, }, "gemeenteVanInschrijving": { "code": "0000", "omschrijving": "Nederland" }, "landVanwaarIngeschreven": { "code": "0000", "omschrijving": "Nederland" }, "verblijfBuitenland": { "adresRegel1": "string", "adresRegel2": "string", "adresRegel3": "string", "vertrokkenOnbekendWaarheen": True, "land": { "code": "0000", "omschrijving": "Nederland" }, }, "inOnderzoek": { "aanduidingBijHuisnummer": True, "datumAanvangAdreshouding": True, "datumIngangGeldigheid": True, "datumInschrijvingInGemeente": True, "datumVestigingInNederland": True, "functieAdres": True, "gemeenteVanInschrijving": True, "huisletter": bool(antwoord_dict_object["ns:aoa.huisletter"]), "huisnummer": bool(antwoord_dict_object["ns:aoa.huisnummer"]), "huisnummertoevoeging": bool(antwoord_dict_object["ns:aoa.huisnummertoevoeging"]), "identificatiecodeNummeraanduiding": True, "identificatiecodeAdresseerbaarObject": True, "landVanwaarIngeschreven": True, "locatiebeschrijving": True, "naamOpenbareRuimte": bool(antwoord_dict_object["ns:gor.openbareRuimteNaam"]), "postcode": bool(antwoord_dict_object["ns:aoa.postcode"]), "straatnaam": True, "verblijfBuitenland": True, "woonplaatsnaam": bool(antwoord_dict_object["ns:wpl.woonplaatsNaam"]), "datumIngangOnderzoek": { "dag": 0, "datum": "string", "jaar": 0, "maand": 0, }, }, "datumTot": { "dag": 0, "datum": "string", "jaar": 0, "maand": 0 }, "geheimhoudingPersoonsgegevens": True, } convert_empty_instances(verblijf_plaats_dict) return verblijf_plaats_dict